按键的防抖技术

更新时间:2023-09-25 06:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

键盘,作为向系统操作人员的干预指令的接口,以其特定的按键序列代表着各种确定的操作命令,所以,准确无误的辨认每个键的动作和其所处的状态,是系统能否正常工作的关键。

多数键盘的按键多使用机械式弹性开关,一个电信号通过机械触点的断开,闭合过程完成高低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合及断开的瞬间必然伴随着一连串的抖动,其波形如图所示:

抖动过程的长短是由按键的机械特性决定,一般是10~20ms。 为了使CPU对一次按键动作只确认一次,必须消除抖动的影响,可以从硬件及软件两个方面着手:

(1)、硬件防抖技术

通过硬件电路消除按键过程中的抖动的影响是一种广为采用的措施。这种做法,工作可靠且节省机时,下面介绍两种硬件防抖电路。

① 滤波防抖电路

利用RC积分电路对干扰脉冲的吸收作用,选择好电路的时间常数,就能在按键抖动信号通过此滤波电路时,消除抖动的影响。滤波防抖电路入,如图所示:

+15VR15.1KSW243215.1KR22uF174LS062OUT

由图可知,当按键SW2按下时,电容C两端的电压钧为0,非门输出为1。当SW2按下的时候,由于C两端电压不可能产生突变。尽管在触点接触的过程中可能会出现抖动,只要适当选却R1,R2和C值,即可保证电容C两端的充电电压波动不会超过非门的开启电压(TTL为0.8V),非门的输出将维持高电平。同理,在触点K断开的时候,由于电容C经过R2放电,C两端的放电电压波动不会超过门的关闭电压,因此,门的输出也不会改变。总之,只要R1,R2,C的时间常数选择适当,确保电容C由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动的影响。

② 双稳态防抖电路

用两个非门构成一个RS触发器,即可构成双稳态防抖电路,其原理电路如图:

+5VR14.7KU1A1A(ON)74LS0023QOUTK 4U1B74LS006Q#5R34.7K+5VB(OFF)

设按键K未按下时,建K与A端(ON)接通。此时,RS触发器的Q端为高电平1,致使Q#端为低电平0,。此信号引至U1A与非门的输入端,将其锁住,使其固定输出为1。每当开关K被按动时,由于机械开关具有弹性,在A端形成一连串的抖动波形。而Q#端在K到达B之前失重为0。这时,无论A处出现怎么样的电压(0或1),Q端恒为1。只有当K到达B端,使B端为0,RS触发器发生反转,Q#变为高电平,导致Q降低为0,并锁住U1B,使其输出恒为1.。此时,即使B处出现抖动波形,也不会影响Q#端的输出,从而保证Q端恒为0。同理,在释放按键的过程中,只要一接通A,Q端就升至为1。只要开关K不再与B端接触,双稳态电路的输出将维持不变。

(2)、软件防抖方法

如前所述,若采用硬件消抖电路,那么N个键就必须配有N个防抖电路。因此,当按键的个数比较多时,硬件防抖将无法胜任。在这种情况下,可以采用软件的方法进行防抖。当第一次检测到有建按下时,先用软件延时(10~20ms),而后再确认键电平是否依旧维持闭合状态的电平。若保持闭合状态电平,则确认此间已按下,从而消除抖动影响。

本文来源:https://www.bwwdw.com/article/gokd.html

Top