- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消除键抖动的各种方法
摘要:单片机控制系统中大多使用控制键来实现控制功能。消除按键瞬间的抖动是设计者必须要考虑的问题。该文介绍了常用的一些对按键进行去抖动处理的硬件和软件方法,来保证微机系统的正确工作。
关键词:单片机;键处理;去抖动
中图分类号:TP334文献标识码:A文章编号:1009-3044(2008)26-1831-03
The Ways of Elimination of Key Jitter
LIU Yan
(The Information Department of Ningxia Vocational Technological Institution, Yinchuan 750002, China)
Abstract: SCM control system ofen be used control keys to achieve control. Elimination of jitter of the key moment must be consider by the designers. In this paper, some of the commonly used of the hardware and software methods to deal with the jitter of keys are Introducted to ensure that computer systems work correctly.
Key words: singlechip; dealing with key; elimination of jitter
1 引言
键盘是由若干按键组成的开关矩阵,他是单片机最简单的输入设备。操作员通过键盘输入数据或命令,实现简单的人际对话。组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,造成如下波形图(图1)所显示的毛刺。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。抖动可能造成一次按键的多次处理问题,所以应采取措施消除抖动的影响。消除办法有多种,下面将对各种消除方式的实现及特点做一探讨。
2 硬件方法
在键开关与单片机接口之间加一个消抖动电路,如双稳电路、单稳电路。在硬件上可采用在,如图2是键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。
电路工作过程如下:按键未按下时,A=0,B=1,输出Q=1,按键按下时,因按键的机械弹性作用的影响,使按键产生抖动,当开关没有稳定到达B端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q不会产生抖动的波形。当开关稳定到达b端时,因A=1,B=0,使Q=0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达A端时,因Q=0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达B端时,因A=0,B=0,使Q=1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。
由于硬件去抖动增加了电路的复杂性,每个按键都要一个去抖动电路,而且硬件方法会增加成本和体积。所以这种方法只适用于键数目较少的场合。
3 软件延时10ms
就是通过延时来等候信号稳定,在信号稳定以后再去识别键码。其过程是在检查到有键按下以后调用延时子程序延时一段时间(5ms~20ms),再检查一次看是否有按键按下。若这一次检查不到,则说明前一次结果为干扰或者抖动。若这一次检查到有按键按下,则说明信号已经稳定,然后判断闭合按键的键码。当闭合按键的键码确定以后,再去检查按键是否释放,待按键释放以后再进行处理,这样就可以消除释放抖动的干扰。
下面是一个4×4矩阵式键盘的去抖动程序:(设行线接至单片机的输入口P1.0~P1.3,列线接至单片机的输出口P1.4~P1.7 ,当键盘上没有键闭合时,所有的行线与列线是断开的,判有无按键按下时,首先使所有的列线为低电平。)
SMKEY: MOV P1,#0FH; 置P1口高4位为“0”、低4位为输入状态
MOV A, P1; 读P1口
ANL A,#0FH;屏蔽高4位
CJNE A,#0FH,HKEY; 有键按下,转HKEY
SJMP SMKEY
文档评论(0)