verilog之按键消抖的理解

 按键在按下时会产生抖动,释放时也会产生抖动,所以在设计键盘扫描程序时必须考虑按键的消抖,我们一般只考虑按下时的抖动,而放弃对释放时抖动的消抖。抖动时间一般为20ms左右。按下的最终结果是低电平。

  按键去抖思路是:检测到按下时延时20ms,再检测,如果状态仍为按下,则确认是按下的;如果状态为弹起的,则确认是干扰,无按键按下。

  假如rst_in 为一个按键,直接连接至FPGA里面的复位引脚作为全局复位,所以按键消抖的原理为:当rst_in按键按下时可能会出现抖动,需要停20ms之后再去检测这个按键是否按下(FPGA里面的这个引脚的电平是否改变),这样就达到了按键消抖的目的

 如下图所示:

有一个概念要理一下,按键按下时会有抖动,也就是说我们其实只按一次,但是实际产生的“按下”却是许多次的,这些许多次集中在这20ms里。我们按的只是一次,而实际却产生了许多次,那么就必须滤除其他的次数。为了得到真正的“按下”,通过延时20ms,把其他的“按下”(也就是抖动)给滤除了。然后再次判断是否有按下,因为有的时候干扰很大。

   而在FPGA中,基于下面的程序,理解如下:在这个程序里检测按键是否按下的方法是脉冲边沿检法。而在单片机里是判断是否为低电平的方法(那么在FPGA中可不可以也用这个方法呢?)第一次检测到后&

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值