最通俗教程!硬件消抖,软件消抖,状态机法!

最通俗教程!硬件消抖,软件消抖,状态机法!

目录

一、按键抖动

二、按键抖动的消除方法

1.硬件消抖法

电容消抖法

2.软件消抖法

延时法

状态机法

一、按键抖动

按键:常规情况下的按键是一种机械式输入设备,通过按下按键来获取一个输入的按键按下状态。在最理想的情况下,按键按下时,我们的单片机及相关设备应立马收到一个“按键按下”的即时状态;按键松开时,我们的单片机也应立马检测到按键已经被松开。

但是!就像几乎所有的现实情况永远不会像"理想情况"那样理想,按键也并不会像我们想的这样工作。按键工作时总会存着这一个 “按键抖动” 的不理想状态!

由于按键的机械设计,按键在被按下以及被松开时,必定会存在一个 “抖动” 的状态。这个 “抖动”的状态通常会持续10~20ms。

(我们通常用 “按键处的电平变化” 来描述按键的按下与松开状态)

可以看到,按键被按下以及松开按键时,各会有一小段的小波浪式的不稳定状态,在这个不稳定状态中,按键会在被按下以及松开两种状态中快速且突然的跳变,这会让我们的系统检测到按键突然被按下或者松开了未知多次,导致按键的检测逻辑混乱,这显然不是我们想要的,当按键被按下或者松开时,我们都应各检测到一次状态变化,总共两次的状态变化才对,而不是好多次。

这个 “按键抖动” 的根本原因在于按键触发与松开时,其内机械元件的不稳定性导致。

二、按键抖动的消除方法

如上的情况,我们必须对按键抖动进行处理,才能够使得按键按我们设想的理想状态进行工作。针对此,聪明的工程师们提出了两种方法:硬件消抖法与软件消抖法!

1.硬件消抖法

通过一定的电路设计,我们能消除掉按键本身按键抖动现象的不利影响。硬件消抖法通常是通过两种方式实现,分别是电容消抖法与RS触发器消抖法。在此我们仅暂讨论电容消抖法,RS触发器待有时间再整理咯。

电容消抖法

在此暂不展开描述电容这一元器件的详细特性,我们仅需要明白的是,电容就像是一个小水桶,可以存储电能,在电路中,当电压突然升高或者降低时,电容会在其电路上进行吸收或释放电能,帮助稳定电压。

对于按键而言,我们通常在其旁边并联一个电容,以实现按键的消抖。

相关推荐