“按键消抖计数”程序测试与原理说明 1 程序运行效果说明按下 KEY1 , 数码管上的示数加 1。按下 KEY2 ,数码管上的示数减 1。 2 程序电路工作原理以及按键抖动原因按键电路示意图(三个按键分别是 K1、 K2、 K3) 当按键被按下的时候,电路导通接地, I/O 口为低电平;当按键未被下时,电路断开, I/O 口保持高电平的。但一般的按键所用开关为机械弹性开关,当机械触点断开、闭合时, 由于机械触点的弹性作用, 一个按键开关在闭合时不会马上稳定地接通, 在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动, 假如不加以处理, 会导致按键被识别为按下多次。为了不产生这种现象而作的措施就是按键消抖。 3 消抖的方法按键消抖分为硬件消抖和软件消抖。 硬件消抖在键数较少时可用硬件方法消除键抖动。下图所示的 RS 触发器为常用的硬件去抖。硬件消抖电路图图中两个“与非”门构成一个 RS 触发器。当按键未按下时,输出为 0; 当键按下时,输出为 1 。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开 B),只要按键不返回原始状态 A, 双稳态电路的状态不改变, 输出保持为 0, 不会产生抖动的波形。也就是说,即使 B 点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析 RS 触发器的工作过程很容易得到验证。 软件消抖方法 1 :使用延时如果按键较多, 常用软件方法去抖, 即检测出键闭合后执行一个延时程序, 5ms ~ 10m s 的延时, 让前沿抖动消失后再一次检测键的状态, 如果仍保持闭合状态电平, 则确认为真正有键按下。当检测到按键释放后, 也要给 5ms ~ 10ms 的延时, 待后沿抖动消失后才能转入该键的处理程序。方法 2 :检测多次可以设定一个检测周期, 如果在一个检测周期内, 按键被检测为被按下达到了一定次数, 则确认为真正被按下。
按键消抖计数原理与测试说明 来自淘豆网m.daumloan.com转载请标明出处.