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

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

3天内不再提示

单片机按键消抖的方法,硬件软件都可以实现

电子设计 来源:互联网 作者:佚名 2017-12-20 10:33 次阅读

不管设计一个什么作品,按键总是少不了的,对于按键你知道那些呢?

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


psbz31.jpg

图1

抖动时间

抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。

按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒,大家可以用示波器测试一下。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。

下面是两种消抖方法:

一、 硬件消抖 :

按键防抖电路控制电路

所示利用RC 积分电路来达成杂波的滤除与波形修整的电路(如图1 )。

在S1 ON 的瞬间由于接触弹跳的关系,会使A 点电压呈现高速的断续现象,再S1 OFF时亦然,详(如图2所示),然而由于电容两端电压需由电压经电阻慢慢充电才会上升,使得B 点电位缓步上升情形:S1 OFF 时亦然,电容电压经R 放电,使B 点电压缓缓下降。此一变化,经史密特反相修整后,可得一标准负脉波输出,如波形图C 点所示。

20171217060842344.png

1513505280926759.png

用其他的各类触发器,锁存器亦可达到消抖效果。

二、软件消抖 :

通过软件延时10ms达到消除抖动的效果,不加文字赘述。

三、按键电路 :

独立按键

1513505280660607.png

矩阵按键

1513505281567727.png

译码按键

1513505284230178.png

AD模拟按键

1513505284742825.png

锁定按键

1513505288672886.png

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

    关注

    5997

    文章

    43948

    浏览量

    620552
  • 积分电路
    +关注

    关注

    11

    文章

    84

    浏览量

    36509
  • 按键消抖
    +关注

    关注

    2

    文章

    23

    浏览量

    10327
  • 机械触点
    +关注

    关注

    0

    文章

    2

    浏览量

    1935
收藏 人收藏

    评论

    相关推荐

    按键

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

    FPGA按键方法

    FPGA按键方法
    发表于 05-01 16:12

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

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

    51单片机_独立按键延时

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

    按键及原理是什么

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

    如何去实现基于STM32单片机按键操作呢

    如何去实现基于STM32单片机按键操作呢?
    发表于 10-22 07:20

    分享一个不错的stm32单片机按键/长按/多击终极解决方案

    分享一个不错的stm32单片机按键/长按/多击终极解决方案
    发表于 11-25 06:07

    STM32单片机定时器做按键原因

    STM32单片机定时器做按键原因:直接用软件延时做
    发表于 11-26 07:13

    有什么方法实现按键

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

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

    大多数单片机程序里,都是使用软件,也就是先触发一次,然后延时5ms再检验一次。软件
    发表于 01-06 06:47

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

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

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

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

    如何用状态实现单片机矩阵键盘的控制

    看了蓝桥杯单片机的培训视频,发现用状态实现矩阵键盘时左边两列没有用,这是因为P36、P37口实际是P42、P44口,所以我们在用行列
    发表于 02-17 07:47

    51单片机按键有没有什么简洁又完美的方法

    51单片机按键有没有什么简洁又完美的方法
    发表于 11-01 07:21

    按键都有哪些处理方式?

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