分析按键去抖流程

分析按键去抖流程,第1张

在键数较少时可用硬件方法消除键抖动。上图所示的闹指升RS触发器为常用的硬件去抖。图中两个“与非”门构成一个RS触发器。当按键按下时,输出为0当键按下时,输出为1。此时即使用按键的机械性能,使按键因液老d性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。如果按键较多,常用软件方法去抖,逗高即检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms~10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms~10ms恰好避开了抖动期。

方法如下。

软件去抖可利用延时程序进行去抖。由于抖动时间很短,当有按键按下并检测到按下时,对程序进行一小段延时,跳过前沿抖动,再进行一次按键按下检测,若检测到按下则说明确实有按键按下,这也避免了前液带昌沿抖动。对于行悄后闹扒沿抖动,在检测到确实有按键按下时延时一小段延时,再去检测按键是否被抬起,检测到抬起则一次按键的检测完毕。

消除抖动的方法有硬件和软件两种方法。硬件方法常用RS触掘轮发器电路。软件方法是当禅散瞎检测出键闭合后执行一个10ms~20ms的延时程序,再一次检测键的状态,如仍保持闭合状态,则确认真正有键按下。

有消除按键的机械抖动的原因:

通常的按键所用开关为机械d性开关。由于机械触电的d性作用,按键在闭合及断开的瞬间均伴随有一连串的抖动。键抖动会引起一次按键被误贺空读多次。为了确保CPU对键的一次闭合仅作一次处理,必须去除抖动。

复合键就是给个按键标志位,比如按下为1,没按为0 。如果 复合键为2 个以上功能 ,就要以0、1、2.。。赋值标志。然后程序中判断哪个值就转哪个功能 。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12531927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存