基于FPGA的按键消抖(软件消抖)

以下为本人学习笔记,多个文章总结出的结果,如有错误请留言,谢谢!

按键消抖分为:硬件消抖,软件消抖

(这里写的是软件消抖,不管按键多少都可以使用软件消抖,设计逻辑简单一点)

机械按键的物理特性,按键在按下的过程中,存在一段时间的抖动,同时在释放按键的过程中也会存在抖动,这就导致在识别按键的时候可以检测到多次的按键按下,而通常检测到一次按键输入信号的状态为低电平,就可以确认按键被按下了,所以我们在使用按键时往往需要进行按键消抖,以确保按键被按下一次只检测到一次低电平。

硬件消抖:

        硬件消抖这种方式可以适用于在按键数较少时。采用并联电容或者RS触发器。采用并联电容消抖是由于电容两端电压值不可突破,可以是上升沿和下降沿平滑无抖动。

软件消抖:

        硬件消抖具有一定的局限性,当按键数量较多时,硬件消抖的方法就不是很实用了。

        软件消抖就是检测到按键闭合后执行一个延时程序,机械按键的抖动一般都在20ms之类,只需要延时20ms后再一次去检测按键的状态,如果仍然保持闭合状态,则确认按键按下。当按键释放的时候也要进行一个20ms的延时。

设计思路:

        按键按下为低电平开始计数,高电平记零;计数到最大值 - 1时输出key_flag(如果是最大值输出,容易出现多次输出key_flag),计数到最大值,保持最大值,这样就能保证按下不管多长时间,只输出一次按键有效信号。

消抖模块:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值