0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA内实现按键消抖的方法

FPGA之家 来源:FPGA之家 2023-09-05 10:43 次阅读

通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

抖动时间

抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保FPGA对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。

57d76464-4b90-11ee-a25d-92fbcf53809c.jpg

图1 按键抖动

FPGA内实现消抖的方法

在FPGA内实现按键消抖的方法多种多样,但是最简单的是采用移位寄存器的方法进行消抖。因为移位寄存器的方法不需要对时钟进行分频,也不需要进行延时等复杂操作,即可实现对按键边沿的检测。假设未按下时键值=1.

1、在无键按下时,移位寄存器samp[7:0]始终采集到高电平,即samp[7:0]=8'b1111_1111;

2、 当键按下时,samp[7:0]将采集到低电平,数据的变化方式为samp[7:0]=8'b1111_1110--> 8'b1111_1100-->8'b1111_1000--> ........——>8'b0000_0000;samp[7:0]=8'b1111_1110即为按键下降沿。

3、 当松开按键时,samp[7:0]将重新采集到高电平,数据变化方式为samp[7:0]=8'b0000_0001--> 8'b0000_0011--> ........-->8'b1111_1111;当samp[7:0]=8'b0111_1111时,即为按键上升沿。

57e6b04a-4b90-11ee-a25d-92fbcf53809c.jpg

图2 移位寄存器消抖原理图

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21326

    浏览量

    593234
  • 原理图
    +关注

    关注

    1268

    文章

    6183

    浏览量

    225748
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
  • 按键消抖
    +关注

    关注

    2

    文章

    23

    浏览量

    10333

原文标题:在FPGA内实现按键消抖的方法(附参考Verilog代码)

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga教程之——按键

    电平,这次对按键进行操作则是对FPGA进行输入了。  2. 按键  2.1 按键输入原理  
    发表于 02-27 11:49

    按键

    请问大家的按键是用什么方法解决的,如普通的按键如何
    发表于 09-26 22:17

    FPGA按键方法

    FPGA按键方法
    发表于 05-01 16:12

    按键怎么实现

    各位大神,这个图是怎么实现的?
    发表于 08-04 09:00

    技术分享:明德扬按键的原理和基于fpga设计

    高频抖动略去。需要注意的是,软件需要占据一定的系统资源。尽管硬件和软件
    发表于 08-02 10:38

    【Runber FPGA开发板】配套视频教程——按键实验

    本视频是Runber FPGA开发板的配套视频课程,主要介绍按键方法FPGA如何
    发表于 04-13 10:35

    FPGA开发中按键与单脉冲发生器电路原理是什么

    按键电路原理是什么键控单脉冲发生器电路原理是什么基于FPGA下的按键
    发表于 04-29 06:40

    按键代码方法有哪几种

    按键原理一、首先来回顾一下按键延时按键由于是
    发表于 07-14 06:21

    按键及原理是什么

    浅谈:在设计单片机按键输入的时候,进行按键是防止按键输入被CPU误读多次的必要手段。一、按键
    发表于 07-21 06:02

    MCU按键问题

    按键问题机械按键是必须的,1、延时
    发表于 11-04 06:37

    有什么方法实现按键

    怎样用软件即程序来实现按键呢?有什么方法实现按键
    发表于 12-15 07:25

    介绍独立按键方法

    目录按键介绍按键方法按键检测原理C51例程欢迎加QQ及邮件交流
    发表于 01-14 07:49

    按键延时方法和目的分别是什么

    的地方,开发成本高,操作难度大,可移植性差。软件就相对较好些,新手即可操作,延时,并非
    发表于 01-17 06:26

    STM32单片机按键FPGA按键的相关资料分享

    写在前面:STM32单片机按键FPGA按键
    发表于 01-18 06:39

    按键都有哪些处理方式?

    按键都有哪些处理方式除了硬件电路用软件怎么实现
    发表于 11-01 07:06