6252|5

119

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

按键的硬件消抖电路原理 [复制链接]

 

为什么要进行按键消抖

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

    按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。

    一次按键动作的电平波形如下图。存在抖动现象,其前后沿抖动时间一般在5ms~10ms之间。由于单片机运行速度非常快,经过A时刻的时候会检测到低电平判断按键被按下。当到了B时刻的时候,单片机同样会检测到高电平,误以为松开按键,然后又到了C时刻检测到低电平,判断到按键被按下。周而复始,在5-10ms内可能会出现很多次按下的动作,每一次按键的动作判断的次数都不相同。

    为确保单片机对按键的一次闭合仅作一次处理,必须处理按键抖动问题。在按键闭合或者释放稳定时再读取按键的状态。

硬件消抖电路

    硬件消抖一般有两种实现方式:

 

RS触发器

 

电容滤波

 

RS触发器

    利用RS触发器来吸收按键的抖动。一旦有键按下,触发器立即翻转,触电的抖动便不会再对输出产生影响,按键释放时也一样。RS触发电路消抖电路图如下。

电容滤波

    将电容并联在按键的两端,利用电容的放电的延时特性。将产生抖动的电平通过电容吸收掉。从而达到消抖的作用,电容消抖电路图如下图所示。

总结   

    实际上,在没有MCU的情况下,对按键进行消抖通常是通过硬件消抖电路来实现。而在嵌入式开发中,大多数情况下都是通过程序来实现按键消抖。简单说就是加合适的延迟,显然这实现成本要比硬件电路方式低得多。

 

 

丨 整理文章为传播相关技术,版权归原作者所有丨
丨如有侵权,请联系删除丨

此帖出自stm32/stm8论坛

最新回复

软件程序检测按键消抖需要用到延时函数,延时控制的不是很精准,硬件有时候控制的也不太精准。普中科技51单片机的那个消抖程序还不错,一定要消抖   详情 回复 发表于 2021-5-31 21:35
点赞 关注
个人签名

嵌入式、汇编语言等免费视频<

 

回复
举报

1942

帖子

3

TA的资源

版主

沙发
 

好像现在设计都是用按键消抖。

此帖出自stm32/stm8论坛
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

有些单片机的GPIO自带消抖功能。

此帖出自stm32/stm8论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复

2万

帖子

341

TA的资源

版主

4
 

在接触51单片机知,凡是按键操作,程序上必须要进行消抖

楼主这里讲的是硬件消抖

 

此帖出自stm32/stm8论坛
 
 
 

回复

4854

帖子

3

TA的资源

版主

5
 

电容消抖的话,数值是不是控制的不是非常精确呢

此帖出自stm32/stm8论坛
 
 
 

回复

693

帖子

7

TA的资源

版主

6
 

软件程序检测按键消抖需要用到延时函数,延时控制的不是很精准,硬件有时候控制的也不太精准。普中科技51单片机的那个消抖程序还不错,一定要消抖

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表