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

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

3天内不再提示

FPGA学习系列:11. 按键消抖设计

FPGA学习交流 2018-06-07 13:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设计背景:

在我们的工程设计中我们会或多或少的用到开关,开关分为好多种,不管是哪一种开关在按下还是抬起都会有轻微的抖动,为了使我们的设计更加准确化,今天我们将学习按键消抖。

设计原理:

本次的设计是一个消抖的设计,在我们用的按键中,按下时低电平,抬起时高地平,可是在现实中按键的瞬间高低电平的变化并不是我们想的那样,而是下面的情况。

image.png



我们称按下到s的时候称为前抖,s到抬起后称为后抖,在正常的情况下就是上面电平变化波形,那么我们为了消除不必要的波形,我们就应该在s区域来判断按键是否按下也就是低电平,同理我们抬起的时候也要间隔一段时间后来确定按下,一般我们间隔的时间设置为 10ms ---- 20ms之间都可以,所以说消抖就是把现实中按下抬起的抖动消除,生成我们理想的高低高的波形。

设计架构图:

image.png 

设计状态转移图image.png 

设计代码:

设计模块

0modulekey_xiaodou(clk,rst_n,key,key_x);

1

2 inputclk; //输入输出

3 inputrst_n;

4 inputkey;

5

6 outputregkey_x;

7 //parameter T10ms = 500_000; //设计一个10ms的计数参数

8 parameterT10ms =50;

9

10 parameters0 =2'b00;//4个状态

11 parameters1 =2'b01;

12 parameters2 =2'b10;

13 parameters3 =2'b11;

14 reg[18:0]count;

15 reg[1:0]state;

16 always@(posedgeclk ornegedgerst_n)

17 if(!rst_n)

18 begin

19 count <=19'b0;

20 state <=2'b0;

21 key_x <=1'b1;

22 end

23 else

24 begin

25 case(state)

26 s0:begin

27 if(key)//判断是否按键按下

28 begin

29 count <=1'b0;

30 key_x <=1'b1;

31 end

32 else

33 begin

34 if(count <T10ms -1)//按下就计数10ms

35 begin

36 count <=count +1'b1;

37 key_x <=1'b1;

38 end

39 else

40 begin//计数到了后给输出赋值为 0

41 key_x <=1'b0;

42 state <=s1;

43 end

44 end

45 end

46 s1:begin

47 if(~key)//判断是否按键抬起

48 begin

49 count <=1'b0;

50 key_x <=1'b0;

51 end

52 else

53 begin

54 if(count <T10ms -1)//抬起就计数10ms

55 begin

56 count <=count +1'b1;

57 key_x <=1'b0;

58 end

59 else

60 begin

61 key_x <=1'b1;//计数到了后给输 出赋值为1

62 state <=s0;

63 end

64 end

65 end

66 default:state <=0;

67 endcase

68 end

69endmodule

测试模块

0`timescale1ns/1ps

1

2 modulexiaodou_tb();

3

4

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

    关注

    1656

    文章

    22308

    浏览量

    630954
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶台KLH11LX系列丨施密特触发器光耦在按键中的应用

    在电子系统中,机械按键因机械结构特性,在按下或释放时会产生5-10ms的抖动信号,可能导致电路误判。施密特触发器光耦凭借其独特的迟滞特性,成为硬件的核心器件,而晶台推出的KLH11
    的头像 发表于 12-06 09:04 167次阅读
    晶台KLH<b class='flag-5'>11</b>LX<b class='flag-5'>系列</b>丨施密特触发器光耦在<b class='flag-5'>按键</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>中的应用

    按键的方法

    常用的方法是判断按键按下的时候进行一定的延时,代码如下: ((KEY==)delay_ms20;whilegpio_get)0;delay_ms20;beep)//蜂鸣器提示音}这种方法简单易懂
    发表于 11-27 06:12

    硬件方案元件参数的计算方法

    硬件是通过电路设计消除机械开关(如按键、继电器等)在闭合或断开时产生的抖动信号。以下是常见硬件方案及其元件参数计算方法: 1. R
    发表于 11-19 06:31

    RVMCU课堂「11」: 手把手教你玩转RVSTAR—GPIO使用篇

    =14.6667px]使用GPIO的输入功能:[size=14.6667px]用RVSTAR的板载按键控制LED的亮和灭,在使用它之前我们需要了解一点[size=14.6667px]按键
    发表于 10-31 07:16

    揭秘音电商 API,让音小店粉丝增长有迹可循

    ​ 在当今短视频电商时代,音已成为商家必争之地。但如何精准追踪粉丝增长,优化营销策略?音电商 API(应用程序接口)正是关键。它让商家通过数据接口获取店铺核心指标,将粉丝增长从“黑匣子”变为
    的头像 发表于 08-20 15:46 609次阅读
    揭秘<b class='flag-5'>抖</b>音电商 API,让<b class='flag-5'>抖</b>音小店粉丝增长有迹可循

    巧用音电商 API,精准分析音商品种草效果

    ​ 在当今短视频电商时代,音已成为品牌推广的核心平台。"种草"(即通过内容激发用户购买欲望)效果直接影响商品销售。然而,许多商家仅凭直觉评估推广效果,导致资源浪费。本文将介绍如何利用音电商
    的头像 发表于 08-20 15:29 810次阅读
    巧用<b class='flag-5'>抖</b>音电商 API,精准分析<b class='flag-5'>抖</b>音商品种草效果

    音电商 API 接口:开启音小店直播带货数据新洞察

    ​ 在数字化电商浪潮中,音小店凭借直播带货模式迅速崛起,成为品牌和商家的新战场。然而,如何从海量直播数据中提取有价值的洞察,优化销售策略?音电商 API 接口正是解决这一挑战的关键工具。本文将
    的头像 发表于 08-20 15:20 711次阅读
    <b class='flag-5'>抖</b>音电商 API 接口:开启<b class='flag-5'>抖</b>音小店直播带货数据新洞察

    净化器触摸IC低电流1按键触控VKD233系列超小体积单路感应

    稳压电路 响应时间约46ms @VDD=3V 可以由外部电容 (1~60pF) 调整灵敏度 内置按键,无需
    的头像 发表于 08-01 15:15 558次阅读
    净化器触摸IC低电流1<b class='flag-5'>按键</b>触控VKD233<b class='flag-5'>系列</b>超小体积单路感应

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2660次阅读

    微机谐装置优势

    微机谐装置(也称为微机谐器或智能谐装置)具有显著优势。以下是其核心优势: 1.  强大的谐振识别能力:     能够实时、精确地识别系统发生的多种类型的铁磁谐振(如分频、工频、高频谐振),以及
    的头像 发表于 06-16 15:50 493次阅读
    微机<b class='flag-5'>消</b>谐装置优势

    一次谐装置与二次谐装置区别、一次谐器与二次谐器的区别

    一次谐器与二次谐器是电力系统中用于抑制谐振过电压的不同装置,主要区别如下: 安装位置:一次谐器串联于电压互感器(PT)一次侧中性点与地之间,直接承受高电压;二次谐器并联在PT
    的头像 发表于 05-07 09:58 3358次阅读
    一次<b class='flag-5'>消</b>谐装置与二次<b class='flag-5'>消</b>谐装置区别、一次<b class='flag-5'>消</b>谐器与二次<b class='flag-5'>消</b>谐器的区别

    谐装置的作用

    谐装置是电力系统中防止铁磁谐振过电压的关键设备,主要用于保护电压互感器(PT)及电网安全。当系统因单相接地、操作过电压或雷击引发PT铁芯饱和时,可能产生分频、工频或高频谐振,导致PT过热、绝缘损坏
    的头像 发表于 04-24 10:23 2145次阅读
    <b class='flag-5'>消</b>谐装置的作用

    微机谐器与一次谐器区别与联系

    微机谐器与一次谐器都是用于电力系统中抑制谐波和消除铁磁谐振的设备,
    的头像 发表于 04-22 16:21 645次阅读

    TVP5150输出图像有时有时无是怎么回事?

    我现在使用贵司的TVP5150AM视频解码芯片,现在出现一个问题,用显示器显示的图像时有时无,并且有图像的情况下也有点。 我的方案是用TVP5150进行采集相机输出的视频信号,然后通过FPGA
    发表于 01-06 07:28

    【正点原子STM32H7R3开发套件试用体验】按键、串口通信

    的那一刻起,以其便捷的操作方式、高效的成本控制、精准的输入控制等优点,注定成为单片机学习的经典项目。 按键控制的关键因素为。当按键被按下
    发表于 12-30 16:53