- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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.
您可能关注的文档
最近下载
- 事件与概率(古典概率、条件概率、全概率公式、贝叶斯公式)小题综合解析- 十年(2015-2024)高考真题数学分项汇编(全国).pdf VIP
- (2025)小学生诗词大会竞赛试题及标准答案.docx VIP
- 临建工程施工组织设计.docx VIP
- 儿童吉兰-巴雷综合征谱系疾病与抗糖脂抗体相关性研究进展 .pdf VIP
- 2025年钛铁项目建设总纲及方案.docx
- AB-罗克韦尔PowerFlex755变频器操作说明.pdf
- 幼儿园小班科学活动《颜色变变变》含课件.pptx VIP
- 2025诗词大会精选100题题库(含答案).docx VIP
- 小学诗词大会精选100题题库(含答案).docx VIP
- 8D方法培训教材(158页).pptx VIP
文档评论(0)