独立式键盘的结构:键盘一端接地,一端连接单片机,有按键按下,发生电平的跳转(由高到低),按键如果松开,电平又发生一次跳转,由低到高,这都是由于单片机内含有上拉电阻。因此可以通过观察与单片机连接端口电平的跳转就可以判断按键是否被按下,但是这种方法也存在缺陷,要是检测时发生抖动会对检测结果有影响,误把抖动认为按下按键,为避免这种错误,确保检测按键按下的准确性,我们要采取一定的措施对机械抖动进行消除。在不同情况下采取相应的措施从软硬件两方面分别考虑。按键数较少场合可采取硬件去抖,键数较多的场合则可以采取软件去抖[9]。
2。6。2 软件消抖
在软件程序中加入延时程序,当检测到有按键按下时,先执行之前加入的延时程序,之后再检测按键的电平是什么状态,如果此时的按键还是处于刚开始的状态则证明此按键是真正的有效按键不是抖动;如果按键状态发生改变,则为抖动。同样的道理,当已经检测到该按键被释放后,也应采取上述相同的步骤进行状态确认对比,从而可以实现消除抖动的影响。一般把键盘扫描程序设计成子程序,以便其他各程序的应用[10]。