在FPGA(现场可编程门阵列)的入门学习中,按键消抖实验是一个既基础又实用的实验。由于机械按键在按下或释放的瞬间会出现不稳定的抖动现象,这种抖动会导致系统误判按键的状态。因此,在FPGA设计中,对按键信号进行消抖处理是十分必要的。本文将介绍FPGA入门基础中的按键消抖实验,并附上相应的代码示例。
通过上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。
通过上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20
通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动,如
一、 硬件消抖 :按键防抖电路控制电路所示利用RC 积分电路来达成杂波的滤除与波形修整的电路(如图1 )。在S1 ON 的瞬间由于接触弹跳的关系,会使A 点电压呈现高速的断续现象,再S1 OFF时亦然,详(如图2所示),然而由