要解决单片机按键抖动问题,首先要了解被键的类型,按键有触点式和非触点式两种,单片机中应用的- 一般是由机械触点构成的。在下图中,当开关未被按下时,P口输人为高电平。开关闭合后,P口输人为低电平。由于按键是机械触点,当机械触点断开,闭合时,会有抖动,P口输人端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对单片机来说,则是完全可以感应到的,因为单片机处理的速度是在微秒级,近机械抖动的时间至少是毫秒级,这已是个“漫长”的时间了。为使CPU能正确地读出P口的状态,对每一次按健只作- 一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种: 硬件方法和软件方法。
硬件方法
1、电容滤诐法
利用其充放电特性,使整流后i的脉动直流电压变成相对比较稳定的直流电压。在实际中。为了防止电路各部分供电电压因负载变化而产生变化,所以在电源的输出端及负载的电源输人端一般接有数十至数百微法的电解电容由于大容量的电解电容一般具有一定的电感,对高频及脉冲干扰情号不能有效地姥除,故在其两端并联了一只容量为0.001- -0.1PF的电容,以速除高频及脉冲干扰。这样就能把图2中的崩沿抖动和后沿抖动去除。
2、RS触发器法
两个“与非”门构成一个RS触发器。当按键未按下时,输出为1当键按下时,输出为0。此时即使用按键的机被性能,使按键弹性料动而产生瞬时断