一、键盘的基本原理
键盘是一组按键开关的组合,按键平时处于断开状态,当按下按键时才闭合,随后产生脉冲波,按键的结构和产生的理想脉冲波形如下。
二、按键抖动的原因和危害
原因:按键开关通常为机械式开关,因为机械触点有弹性,所以当我们按下某一个按键时往往不会马上稳定导通,断开时也不会马上断开,在闭合和断开的瞬间都会伴随弹性抖动。按键按下时的抖动称为前沿抖动,按键松开时的抖动称为后沿抖动,抖动波形如下图所示。
危害:产生上面抖动后如果不对抖动做相应的处理,则会出现按一次按键而输出多次键值的后果。
三、软件去抖
软件去抖可利用延时程序进行去抖。由于抖动时间很短,当有按键按下并检测到按下时,对程序进行一小段延时,跳过前沿抖动,再进行一次按键按下检测,若检测到按下则说明确实有按键按下,这也避免了前沿抖动。对于后沿抖动
,在检测到确实有按键按下时延时一小段延时,再去检测按键是否被抬起,检测到抬起则一次按键的检测完毕。
软件去抖程序如下: