按键电路:下图是神舟三号stm32开发板中的按键原理图。由图可知,按键按下时GPIO端口清零 。
按键消抖
:
理想情况下按键按下弹起过程是一个理想的方波,如下图2。
但通常的按键所用开关为机械弹性开关,由于机械触点的弹性作用在闭合及断开的瞬间均伴随有一连串的抖动,如下图3。
抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。
为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。按键的抖动,可用硬件或软件两种方法。
<1> 硬件消抖:在键数较少时使用。下图所示的RS触发器为常用的硬件去抖。
1° 按键并上RS触发器。
当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。
2° 在按键旁边直接并上一个电容。
利用电容的几分作用让方波边沿不会产生毛刺。
<2> 软件消抖:如果按键较多时使用。
原理:检测出键闭合后执行一个5ms~10ms的延时程序,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
下面是stm32的一个防抖部分例程
- 大小: 12.7 KB
- 大小: 16 KB
- 大小: 20 KB
分享到:
相关推荐
本程序是利用FPGA来实现按键消抖,程序已在电路板上验证
4*4矩阵键盘 按键消抖 单片机c语言 键盘扫描子程序
利用状态机的按键消抖程序,单片机,STM32
1.领域:matlab,按键消抖 2.内容:基于vivado2019.2平台下verilog开发的按键消抖功能+代码仿真操作视频 3.用处:用于按键消抖编程学习 4.指向人群:本硕博等教研学习使用 5.运行注意事项: 使用matlab2021a...
关于用74HC165做键盘扫描时的按键消抖源码的实现。
verilog HDL按键消抖并点亮LED灯代码。
基于51单片机实现4x4矩阵键盘,按键消抖的状态机。
注释具体,verilog的按键消抖代码,完整
一个verilog按键的扫描程序,还可以实现消抖,可以使用。
51单片机--按键防抖代码
AT89S52单片机结构+C语言注意事项+键盘消抖
本文主要讲了单片机按键消抖程序汇编,希望对你的学习有所帮助。
在按键电路中必须考虑对按键的抖动进行软件消抖和硬件消抖。 消抖具有使用硬件数量少的优点,但也具有以下两个缺点: (1)在仪器键盘电路中,多个按键安装在仪器面板上,键盘的输出通过排线连接到主控板上,...
这里提出用VHDL语言编程的有限状态机的设计方法来实现按键的消抖,经仿真分析和下载实现,这种方法设计的消抖电路能够很好地实现电路功能,进行快速按键时都能保证每按一次做一次的响应,且性能稳定。 1 按键抖动...
硬件按键去抖电路分析 参考单片机 常用的非编码键盘,每个键都是一个常开开关电路
如果使用机械式键盘,由于存在机械触动... 通常在按键较少时可以用硬件方法消除抖动,一般可用RS触发器作为常用的消抖电路。如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法既可使用RS触发器进
如果使用机械式键盘,由于存在机械触动的... 通常在按键较少时可以用硬件方法消除抖动,一般可用RS触发器作为常用的消抖电路。如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法既可使用RS触发
这里提出用VHDL语言编程的有限状态机的设计方法来实现按键的消抖,经仿真分析和实现,这种方法设计的消抖电路能够很好地实现电路功能,进行快速按键时都能保证每按做的响应,且性能稳定。 1 按键抖动产生原因分析...
FPGA 8位单排 按键 键盘 VHDL 程序 ,内附消抖程序,已通过q2综合,可直接使用,基于cylcone