首页 理论教育 单片机控制技术:按键消抖处理

单片机控制技术:按键消抖处理

时间:2023-11-24 理论教育 版权反馈
【摘要】:在触点抖动期间检测按键的通与断状态,可能导致判断出错。当释放按键,开关未稳定到达a端时,因Q=0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。

单片机控制技术:按键消抖处理

机械式按键在按下或释放时,由于受机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5-5所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。

在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。当键数较少时,可采用硬件去抖;当键数较多时,宜采用软件去抖。

在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,图5-6是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。

图5-5 按键触点的机械抖动(www.xing528.com)

图5-6 双稳态去抖电路

电路工作过程如下:按键未按下时,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重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波

软件上采取的措施是:在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而消除抖动的影响。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈