按键是最为常见的电子元器件之一,在电子设计中应用广泛;在日常生活中,遥控器、玩具、计算器等等电子产品都使用按键。在FPGA的实验工程中,我们可以使用其作为系统复位信号或者控制信号的外部输入。
按键消抖主要针对的是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。 因而在闭合及断开的瞬间均伴随有一连串的抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理,这就是按键消抖。
按键消抖又分为硬件消抖和软件消抖,当按键个数较少时,常采用硬件消抖的方法,如果按键个数较多时,常采用软件消抖的办法。
这里采用软件消抖的方法,设计并实现一个按键消抖模块,将外部输入的单比特按键信号做按键消抖处理后输出,输出的信号可以正常的被其他模块调用。去抖动后的效果是当按键按下后,可以准确检测到按键被按下了一次,而不会因为抖动而检测到按键重复按下了多次。这用采用延时程序来去除抖动部分,通过计数来计算抖动的时间,输入信号包括时钟信号和复位信号,以及未经处理的按键输入信号;输出经过按键消抖后的稳定信号,中间变量计数器,假设