目录
一、按键抖动
二、按键抖动的消除方法
1.硬件消抖法
电容消抖法
2.软件消抖法
延时法
状态机法
一、按键抖动
按键:常规情况下的按键是一种机械式输入设备,通过按下按键来获取一个输入的按键按下状态。在最理想的情况下,按键按下时,我们的单片机及相关设备应立马收到一个“按键按下”的即时状态;按键松开时,我们的单片机也应立马检测到按键已经被松开。
但是!就像几乎所有的现实情况永远不会像"理想情况"那样理想,按键也并不会像我们想的这样工作。按键工作时总会存着这一个 “按键抖动” 的不理想状态!
由于按键的机械设计,按键在被按下以及被松开时,必定会存在一个 “抖动” 的状态。这个 “抖动”的状态通常会持续10~20ms。
(我们通常用 “按键处的电平变化” 来描述按键的按下与松开状态)
可以看到,按键被按下以及松开按键时,各会有一小段的小波浪式的不稳定状态,在这个不稳定状态中,按键会在被按下以及松开两种状态中快速且突然的跳变,这会让我们的系统检测到按键突然被按下或者松开了未知多次,导致按键的检测逻辑混乱,这显然不是我们想要的,当按键被按下或者松开时,我们都应各检测到一次状态变化,总共两次的状态变化才对,而不是好多次。
这个 “按键抖动” 的根本原因在于按键触发与松开时,其内机械元件的不稳定性导致。
二、按键抖动的消除方法
如上的情况,我们必须对按键抖动进行处理,才能够使得按键按我们设想的理想状态进行工作。针对此,聪明的工程师们提出了两种方法:硬件消抖法与软件消抖法!
1.硬件消抖法
通过一定的电路设计,我们能消除掉按键本身按键抖动现象的不利影响。硬件消抖法通常是通过两种方式实现,分别是电容消抖法与RS触发器消抖法。在此我们仅暂讨论电容消抖法,RS触发器待有时间再整理咯。
电容消抖法
在此暂不展开描述电容这一元器件的详细特性,我们仅需要明白的是,电容就像是一个小水桶,可以存储电能,在电路中,当电压突然升高或者降低时,电容会在其电路上进行吸收或释放电能,帮助稳定电压。
对于按键而言,我们通常在其旁边并联一个电容,以实现按键的消抖。