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
    +关注

    关注

    1624

    文章

    21597

    浏览量

    601015
  • 原理图
    +关注

    关注

    1291

    文章

    6270

    浏览量

    232319
  • 寄存器
    +关注

    关注

    31

    文章

    5281

    浏览量

    119746
  • 按键消抖
    +关注

    关注

    2

    文章

    27

    浏览量

    10435

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

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

收藏 人收藏

    评论

    相关推荐

    fpga教程之——按键

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

    按键

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

    FPGA按键方法

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

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

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

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

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

    有什么方法实现按键

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

    介绍独立按键方法

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

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

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

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

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

    基于FPGA按键电路设计

    采用了VHDL语言编程的设计方法,通过FPGA实现按键的硬件电路。论述了基于计数器、RS触
    发表于 12-05 14:13 224次下载

    VHDL—按键

    按键检测需要,一般有硬件和软件两种方式。硬件就是加去抖动电路,这样从根本上解决按键抖动问题。除了用专用电路以外,用可编程FPGA或者CP
    发表于 11-11 17:17 2次下载

    FPGA入门系列实验教程之如何进行按键控制LED亮灭

    实现按键控制 LED 亮灭。通过这个实验,掌握采用 Verilog HDL 语言编程实现按键控制 LED 亮灭及按键
    发表于 06-11 16:50 13次下载
    <b class='flag-5'>FPGA</b>入门系列实验教程之如何进行<b class='flag-5'>按键</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>控制LED亮灭

    按键的软件和硬件方法

    采用锅仔片式按键测量波形。按键按下与抬起的部分都出现抖动,大致时间10ms左右。为了防止按键误按或者重复识别,必须要按键
    的头像 发表于 03-01 10:53 1.4w次阅读
    <b class='flag-5'>按键</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>的软件和硬件<b class='flag-5'>方法</b>

    如何在FPGA实现按键

    按键操作。因此,实现有效的按键机制对于提高系统的稳定性和可靠性至关重要。以下是在FPGA
    的头像 发表于 08-19 18:15 1152次阅读

    基于FPGA实现按键处理

    引言: 按键在电子产品中经常用到,由于按键的机械特性,按键在闭合或松开的瞬间伴随着一连串的抖动,这样的抖动将直接影响设计系统的稳定性。因此,必须对抖动进行处理。本文介绍如何在FPGA
    的头像 发表于 10-24 14:54 102次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>按键</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>处理