常用键盘方案设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常用键盘方案设计

常用键盘方案设计[通用外围专题 大多电子产品中都需要使用到按键作为操作的界面,无论是电子消费品还是专业设备,几乎都不可避免的需要使用键盘。而键盘的实现有很多种方案,这里就目前常用的几种键盘方案进行一下对比。 就笔者所知,常用的方案有:IO键、阵列键、ADC键、触控键、遥控键以及专用接口键盘等。 IO键,就是一个IO口上通过上拉或下拉的方式实现的按键(如图1A所示),这种按键使用相当广泛,优点是程序处理简单,还可以支持直接中断,多键时还可以实现复键功能,但缺点为键数受IO数量的限制,并且由于所占用的IO需要有中断功能,键数还受到支持中断的IO口数量的限制。若有其它外设也需要使用IO中断,将进一步减少可用的IO键数量。最主要的一点,这种方式的IO利用率最低,使得IO资源浪费大,成本较高。所以,IO键适合于在键数不多且要求有独立的中断功能,特别是低功耗应用中使用,当然也可以和其它方案混合使用,比如IO键用于电源开关,而其它方案的键作为开机后的控制键。 Key_case1.gif (15.77 KB) 2010-4-11 12:17 阵列键,是通过一组IO口通过对XY两个方向的若干条线的交叉点进行扫描实现的按键方案。例如6个IO可以通过3*3的组合实现9键(如图1B所示),8个IO更可以达到4*4共16个键,键数超过了占用IO的数量,使有限的IO可以支持更多的键数。另外,阵列键也可以支持中断方式工作,不必持续扫描,也可以用在低功耗方案中。在图中我们可见,只有Y轴4条线拥有中断能力即可实现整个键盘的中断控制,而无须像IO键那样每个键都必须可以中断,这样可以省下可中断的IO资源给其它外设。 阵列键的实现有多种不同的形式,最简单的方式中,只要在XY轴的线交叉点上加按钮就可以实现了,但是这种方式的缺点是会有误判,而且很多的阵列键处理程序多采用优先编码的方案,更会导致按羊头出狗肉的结果。原因不仅分析,为了简单的理解这个错误的产生,可以看图1B的结构来分析一下,假设该图中的键依先行后列,先上后下,先左后右的次顺依次为K1-K9,当X1与Y1交点的键按下后,X1与Y1相连,当扫到Y1列时,X1对应IO的电平改变,可以得到K1按下的结论,但当K1、K2同时按下时,Y1和Y2都与X1相连,而K4此时若也按下的话,X2与Y1相连,这样,X2通过Y1连接到X1,再通过X1连接到Y2,成了X2与Y2也导通,这时K5按与不按就没有区别了。为了防止这种情形的出现,我们通常会在键上串联一个1N4148类的开关二极管(见图1C),以防止上述现象的发生,在这种电路中,对角的二极管与检测导通所需的极性刚好相反,所以不会产生误判。 当然阵列键也有很高级的实现方法,一种经典的方法可以用4个IO实现16个键(见图2C),但是由于这种方法需要轮换的交替扫描上下两个三角矩阵,所以无论是否有键按下,都需要定时对键盘进行扫描,而无法使用中断方式实现,但是如果IO很紧张,需要在开机后使用较多键的应用还是可以采取这种方案的。 Key_case2.gif (15.12 KB) 2010-4-11 12:17 ADC键,是通过ADC实现的模拟键盘,通过一个ADC输入端口上接入不同电阻分压时产生的ADC值不同来区别按下的键(见图2A)。这种方式实现的时候,只要电阻值设计巧妙,两个甚至N个键同时按下也不会与其它任意键或组合所产生的电阻值相同的话,理论上就可以支持复键功能。但由于阻值小的键与阻值大的键同时按下时,大电阻对小电阻阻值的影响太小,所以并不能很容易实现所有键的复键,只能对部分键实现复键功能。另外,参考电压的稳定性甚至潮湿都将影响ADC对键的识别,所以ADC键需要一个容差的问题,即在预定值的正负一个区间内都认为是这个键,否则将很难触发。ADC键的优点是引出线很少,以至于只需要ADC端和地两条线这么简单,适合于键与主机板分离的方案,若是机器的IO很紧张但有空余ADC资源的场合。不过缺点也是显而易见的,ADC要在不停的扫描中,耗电略大,理想的使用方式就是在不用时将它关闭,所以还需要配合至少一个IO键以实现开关控制,当然如果耗电不列为考虑之中,比如设备是交流供电的,那么ADC键是一种很好的省下IO的方法。一般ADC键在不复键的情况下,每路ADC可以达到5、6个键,而其它方案都无法使用单线达到这么多个键。 手机或MP3上广泛使用的触摸屏可以归为触摸键,其实它是一种ADC键的变形,实际上触摸屏就是两张电阻膜,分别有XY两个电阻轴,当笔或手指触到屏幕上的时候,相当于同时在XY两个电阻上产生一个电阻值的变化,分别处理XY两轴的电阻数据,就可以得到触屏上被触区域的座标值了。所以说,触摸屏也可以看作是2维的ADC键。 触摸键,一般是指电容式的指触键,上边提到过,电阻压感式的通常

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档