如何消除键盘的抖动?怎样设置键盘中的复合键?

如何消除键盘的抖动?怎样设置键盘中的复合键?,第1张

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

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

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

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

方法如下。

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

消抖是为了避免在按键按下或是抬起时电平剧烈抖动带来的影响。按键的消抖,可用硬件或软件两种方法。 如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms~10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms~10ms恰好避开了抖动期。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存