在机械按键内部都会有弹簧,当我们按下时会发生抖动,这可能导致我们系统对电信号的判断有误。所以可以用状态机进行消抖,我的理解就是在只要按键保持的时间没有达到一定的数值,在这个中间的抖动对归为一种状态。设计START,F1,DOWN,F2这四种状态,只有当计数器记满20ms才会发生相应跳变。

先设计计数模块

对输入的单bit信号进行同步处理

最后用case语句写出4种状态的转变

写出激励文件,观察波形,输入波动的值随意跳动,不能超过20ms,不然认为是稳定的。

在抖动器件输出的状态并没有变化。

当保持20ms之后,输出的信号有相应的改变,与预期设计的一样,还有其他方式的消抖,大家也可以自行研究,用状态机来写还是比较麻烦的。

使用状态机消进行按键消抖相关推荐

  1. verilog基础-状态机之FPGA独立按键消抖设计与验证(熟练testbench的写法)

    独立按键消抖设计与验证 本实验主要是为了锻炼状态机的思维模式以及熟练掌握TB的写法 本节主要收获了:define的用法,另外就是,顶层的input在TB中是reg的真正含义,其实就是把激励当做寄存器来 ...

  2. Verilog实现独立按键消抖(状态机)

    本文参考小梅哥的独立按键消抖视频 1,实验原理: 这里是黑金开发板教程中的图,可以看出,按键未按下时的状态是高电平,按下为低电平.下边是小梅哥画的图解. 因为是机械按键,按下时候有一个不稳定的抖动期, ...

  3. 小梅哥三段式状态机按键消抖改写

    小梅哥三段式状态机按键消抖改写 小梅哥资料中按键消抖部分是用一段式.二段式状态机写的.我用三段式状态机改写了一下,仿真和板载测试通过. 代码记录如下: module key_filter1(input ...

  4. 状态机按键消抖电路设计

    按键消抖电路设计 1. 什么是按键抖动 2. 消抖电路设计思路 3. 代码实现 4. 仿真测试 4.1. initial语句块赋值 4.2. 调用task任务封装赋值并调用$random函数 重新补充 ...

  5. STM32按键消抖——入门状态机思维

    在嵌入式软件开发中,状态机编程是一个十分重要的编程思想,它也是嵌入式开发中一个常用的编程框架.掌握了状态机编程思想,可以更加逻辑清晰的实现复杂的业务逻辑功能. 1 状态机思想 状态机,或称有限状态机F ...

  6. 【FPGA】状态机实现按键消抖

    1.状态机简介 状态机,FSM(Finite State Machine),也称为同步有限状态机从.指的是在同步电路系统中使用的,跟随同步时钟变化的,状态数量有限的状态机,简称状态机. 状态机分类 根 ...

  7. 单片机按键“消抖”的思考

    初学单片机时,讲到了一个按键"消抖"概念,视屏教程中只是说到要确定按键是不是真正按下,所以需要加一个延时来判断. 附上延时消抖程序代码: 代码1 void keypros() {i ...

  8. stm32 工业按键检测_STM32单片机按键消抖和FPGA按键消抖大全

    写在前面: 物联网STM32入门 - 直播课程 - 创客学院​www.makeru.com.cn 按键去抖:由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖 ...

  9. 一种相对高效的按键消抖方法

    按键软件消抖自我接触单片机开始就已经存在这个问题了,网上的办法无非是延时消抖和定时轮询.对于写裸机的我来说这两种方法都不可避免的会有资源浪费掉,今天突然有了灵感,想到了一种相对高效的办法来解决消抖问题 ...

最新文章

  1. 面试题-自旋锁,以及jvm对synchronized的优化
  2. 论文笔记 Inter-sentence Relation Extraction with Document-level Graph Convolutional Neural Network
  3. ASP.NET AJAX入门系列(1):概述
  4. LeetCode : Valid Parentheses
  5. python调用shell命令-Python怎么运行shell脚本
  6. 端午小长假--前端基础学起来02与浏览器交互,表单标签
  7. ASP.NET Core 源码学习之 Options[2]:IOptions
  8. 2015/8/26 Python基础(1):基本规则及赋值
  9. 认识大数据分析的四大误区
  10. Unity3d 镜面反射 vertex and frag Shader源代码
  11. c语言如何引用一维数组,C语言一维数组的定义和引用
  12. 区块链“不可能三角”
  13. flutter之dart语言发展
  14. 市场调查大赛全保姆教程(经验分享)
  15. Microsoft 提供的 USB 驱动程序
  16. 惠普触控板使用指南_惠普笔记本关闭触摸板【操作思路】
  17. Temporal Anti-Aliasing(时域抗锯齿TAA)
  18. EfficientNet网络详解
  19. 怎么使用ArcScene进行洪水淹没分析
  20. android使用popupwindow仿微信点赞功能

热门文章

  1. Android 日历开发教程[一]
  2. 蟑螂为什么叫"小强"
  3. 【翻译】通过CMD3.1来实现自定义基于海王星主题的Ext JS 4.1应用程序
  4. 还是Android AP配网哪些事
  5. java的源代码存放于_android开发工程目录中用来存放java源代码的是哪个目录?
  6. 从360公司年会特等奖是“免裁券”想到的
  7. SEO网站关键词百度排名优化收费依据标准
  8. 穿Burberry的苹果公司“女魔头”
  9. php最简单最基础入门笔记
  10. duplicated