为什么有消除按键的机械抖动?

为什么有消除按键的机械抖动?,第1张

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

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

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

在中断里面,关闭中断,实为败笔。
因为在本中断期间,并不可能再发生本中断。
外部中断,可选为下降沿触发,这样一次下降沿,就只会产生一次中断。
想使用外部中断,就是要利用它的即时反应的特点,这就要求输入的信号不要抖动。
为了避免在瞬间产生多次下降沿,应该在外部电路中加一个消抖电路。
否则,本来是希望发生一次中断,就会产生多次响应。
在中断函数中,也可以加上延时,进行消抖,就像加上delay(10000);,
但是,这样就降低了中断的灵敏度,延时期间再真的有中断,也不会响应。
实际上,这就是不伦不类的四不像程序。

这里的消抖不能紧紧靠上升沿中断,还需要定时器时器帮助,上升沿中断来的时候,打开下降沿中断,同时打开定时器开始计时,接着,若是定时器先触发,那么按键有效,若下降沿先触发,此次按键需要消除,原理是这样。
但只是一个按键检测,要求不高的场合使用时间片循环就好了,没必要消耗那么多硬件资源。当然,上面采用硬件资源来消抖是最严谨。


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

原文地址: https://outofmemory.cn/yw/10543187.html

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

发表评论

登录后才能评论

评论列表(0条)

保存