按键消抖模块

本文介绍了在FPGA设计中,针对机械按键产生的抖动问题,如何通过软件消抖方法设计一个按键消抖模块。该模块接收单比特按键信号,通过计数器延迟20ms来消除抖动,确保按键按下只被识别一次。在50MHz晶振时钟下,计数器计数999999次,输出信号在达到最大值时保持高电平一个时钟周期,然后拉低并重新计数。通过仿真验证了设计的正确性。
摘要由CSDN通过智能技术生成

按键是最为常见的电子元器件之一,在电子设计中应用广泛;在日常生活中,遥控器、玩具、计算器等等电子产品都使用按键。在FPGA的实验工程中,我们可以使用其作为系统复位信号或者控制信号的外部输入。

按键消抖主要针对的是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。 因而在闭合及断开的瞬间均伴随有一连串的抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理,这就是按键消抖。

按键消抖又分为硬件消抖和软件消抖,当按键个数较少时,常采用硬件消抖的方法,如果按键个数较多时,常采用软件消抖的办法。

 这里采用软件消抖的方法,设计并实现一个按键消抖模块,将外部输入的单比特按键信号做按键消抖处理后输出,输出的信号可以正常的被其他模块调用。去抖动后的效果是当按键按下后,可以准确检测到按键被按下了一次,而不会因为抖动而检测到按键重复按下了多次。这用采用延时程序来去除抖动部分,通过计数来计算抖动的时间,输入信号包括时钟信号和复位信号,以及未经处理的按键输入信号;输出经过按键消抖后的稳定信号,中间变量计数器,假设

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值