09-21-22键盘精品文档.pptVIP

  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文档。上传文档
查看更多
;一.键盘概述及设计要点;(1)识键:确定是否有键按下; (2)译键:如有键按下,识别是哪一个键被按下,并 确定相应键值; ;因为按键从开始接上至接触稳定要经过5—10ms的弹跳时间,按键松开时,也有同样的问题。一般按键按下到闭合后再产生一个负的矩形脉冲,但由于在按动按键时,总有一些抖动,因为在负脉冲开始和末尾部位总要出现一些抖动,即毛齿波这种毛齿波将影响微机对按键的识别。除了抖动外,还可能出现有重键,这些都是需要采取一定的措施加以消除。 ;即在开关状态改变时,CPU执行一个延时程序,待电平稳定后再读开关状态信息。 软件去抖动不需额外硬件支持,软件也不复杂,因此在智能仪器中被广泛应用. 例如下例中将开关K的闭合次数,存入寄存器R0中,用软件延时去抖动的程序如下:? ;START:MOV R0,#00H ;清寄存器R0 SETB P1.0 ; P1.0为输入方式 WAITL: MOV A, P1 ;读入开关状态 JB ACC .0 WAITL ;开关闭合否? ACALL D10MS ;是去抖动 INC R0 ;闭合次数加1。WAITH: SETB P1.0 ; P1.0为输入方式 MOV A, P1 ;读入开关状态 JNB ACC .0 WAITH ;开关断开否? ACALL D10MS ;是去抖动 SJMP WAITL ; 循环 程序中, D10MS 为延时10ms的子程序。;硬件去抖动的方法可采用RS触发器或单稳电路,下图为一个双向开关通过防抖动电路后与单片机接口. 图中用二个与非门构成一个RS触发器. 这种方法可直接通过P1.7口读开关位置,程序中不需延时(当下图中开关接通时,P1.7口读0状态,断开时,P1.7 口读1状态。)利用RS触发器的互锁功能去抖动,可得到理想的按键波形,一般用于按键数目较少且需要双向触点接构按键的场合. ;①由于计算机运行速度很快,所以操作者完成单次键入动作时, CPU可能响应多次,引起误动作。通常仍然采用软件的方法来解决按键单次键入的问题,即当CPU测到按键按下的信息时,不立即转入处理程??,而是反复检测按键状态,直到按键被松开才认为是进行了一次按键操作。 ②在某些场合如果把按键的连击加以合理利用,有时会给智能仪器的操作者带来便利。例如,在某些智能仪器中,因设计的按键很少,没有0~9数码键,通常设置INC(加1)键和DEC(减1)键来调整参数,但当调整量较大时,就需多次按这二个键,操作起来十分不便,这时可以利用连击方式,操作者只要按住某个调整键较长时间不放,参数就会不停的加1或减1,给操作者带来很大方便。;当键盘的按键密度较高时,本来希望只有一个键被按下,但因操作不当,可能使双键或多键同时动作,这就是串键, 对此程序应考虑对串键的处理.对串键简单的处理是做无效输入而不予理睬,也可采用双键锁定的原则,即串键时不判断键值,只到按着仅剩下一个才判断键值.;一.独立式键盘;KEY: MOV R0,#0FH ;屏蔽高4位 KEY1: MOV P1, R0 ; MOV A ,P1 ;输入键信息 ANL A,R0 ;屏蔽无用位;二.非编码矩阵键盘;1)行扫描法:①判断有无键按下的方法是首先将行输出0,读列信息,看是否全为1.若不全为1,表示有键按下.②在确认有键闭合后,再判断何键按下,方法是逐行置低电平(输出0),并读入列状态,如果出现非全1状态,那么0状态的行列交叉点就是被按下的键. ③每个键对应一个行号,列号和键值,键值为行号与列号之和.;以扫描方式编程为例介绍 ①判别有无键按下: 首先从P1.0-P1.3行输出“0”,然后从P1.4-P1.7输入列信息,如无键按下,则读入的列信息全为“1”,如有键按下,则读入的列信息不全为“1”,为P1.i(I =4,5,6,7);DECKY:MOV R0,#0F0H ;屏蔽码及P1口控制字 MOV P1, R0 ;各行接地,P1.

文档评论(0)

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

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

1亿VIP精品文档

相关文档