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

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

3天内不再提示

硬件层面如何实现按键消抖

CHANBAEK 来源:知行合一硬件笔记 作者:知行合一硬件笔记 2023-11-06 15:38 次阅读

在做硬件设计的时候,按键是最常见的模块之一,也是学硬件的人入坑接触的第一二个实例。

人手在按下按键的时候会有一定频率的抖动,反映在按下和释放的上升下降沿会有信号的反复跳动,如下示意图。单片机在识别IO信号的时候,经常会根据前后电平值来判断是否有跳变,如果在单片机的采样窗口内连续出现反复多次的高低电平,就会影响单片机的判断,采集到多次高低电平信号。不仅是人手主动按,不小心碰到按键也是会存在一定几率的抖动信号,可能导致误触。

不过成熟、高可靠性的按键设计一定不是只有按键,通常我们会看到有并联电容,用来消除按键抖动。抖动不消除会有一定几率造成产品的不良影响,比如按键失灵、响应错误、误触等。

图片

既然电容可以消除抖动,那消抖电容的容值是怎么选的。

首先电容在这里的作用是滤波的,那么滤除什么频率的波就是我们需要考虑的因素了。通过查阅资料,按键抖动的频率一般在100Hz以内,抖动的时间经验值通常在5~10ms,即在这个时间内通常会有多次的跳变信号。

图片

电容两端的电压是不能突变的,充电和放电都会有一个过程,如上图。因此在出现抖动的时候,电容会使其两端的电压缓慢变化,只要在其充放电时间内,抖动能够结束,就能有效消除掉抖动。

图片

也就是说,根据充放电的时间计算,通常选择0.01uF~1uF的电容,就能够消除大部分机械按键的抖动。

相对应的,在产品设计时,软件层面也会做消抖,程序会考虑在第一次接收到电平跳变后delay10ms左右再次做检测,这样也能有效避免误检测。

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

    关注

    6001

    文章

    43978

    浏览量

    620871
  • 硬件设计
    +关注

    关注

    18

    文章

    346

    浏览量

    44321
  • 按键消抖
    +关注

    关注

    2

    文章

    23

    浏览量

    10333
收藏 人收藏

    评论

    相关推荐

    fpga教程之——按键

    电平,这次对按键进行操作则是对FPGA进行输入了。  2. 按键  2.1 按键输入原理  首先,我们得打开EE_FPGA的
    发表于 02-27 11:49

    按键

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

    按键怎么实现

    各位大神,这个图是怎么实现的?
    发表于 08-04 09:00

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

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

    51单片机_独立按键延时

    51单片机_独立按键延时_独立按键定时器_矩阵键盘定时器
    发表于 07-16 13:56

    按键及原理是什么

    浅谈:在设计单片机按键输入的时候,进行按键是防止按键输入被CPU误读多次的必要手段。一、按键
    发表于 07-21 06:02

    MCU按键问题

    按键问题机械按键是必须的,1、延时
    发表于 11-04 06:37

    按键硬件原理

    按键硬件原理:利用电容充放电特性来实现,因为电容为储能元件。它两端的电压不能出现突变,即有一个充放电的过程下降沿触发电路:上升沿触发电路
    发表于 12-07 12:47

    有什么方法去实现按键

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

    有哪几种方法可以实现单片机程序的硬件

    ,并且经过实际电路验证,有以下两种方法实现硬件。1、使用电容。电路图如下:共使用两个电阻和一个电容,相当于用电容实现
    发表于 01-06 06:47

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

      按键的延时是初学单片机的必经之路,因为只要是机械开关所传递的信号,都会存在波动,有时这些波动是"致命"的,所以消除其影响就是一门手艺了。硬件
    发表于 01-17 06:26

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

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

    MSP430F5529按键实现

    MSP430F5529 按键实现
    发表于 02-15 07:21

    怎样使用定时器实现按键

        本节使用定时器实现按键,之前一直使用的是空指令实现定时函数。空指令非常浪费CPU的性能,远不如使用定时器。最终
    发表于 03-01 06:26

    按键都有哪些处理方式?

    按键都有哪些处理方式除了硬件电路用软件怎么实现
    发表于 11-01 07:06