找回密码
 立即注册
查看: 558|回复: 1

学习冲哥视频(7):按键点灯中的消抖方法

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-11-20 14:16:59 | 显示全部楼层 |阅读模式
本帖最后由 rengran 于 2023-11-21 16:23 编辑


知识点
1、 按键消抖
按键为什么要消除抖动?
单片机应用系统中的按键通常为机械弹性开关,由于机械触点的弹性作用,其在实际的闭合及断开瞬间,常常会产生如图7.1所示的一连串电压的抖动对按键处理的重要环节就是去抖动,即去除键按下和抬起瞬间的电压抖动问题。如果对抖动不做任何处理,则会引起程序的误操作,对整个系统产生较大的负面影响。
按键按下的实际电平效果图:
图7.2.png
                          图7.1

      如果A点的电压高于0.7V,则在键按下的过程中会触发单片机产生两次中断。在键释放的阶段,如果B点的电压高于0.7V,而C点电压低于0.7V,同样会触发单片生两次中断。按键抖动的时间长短与按键的机械特性、操作人员的按键动作和习惯有关,一般而言,认为抖动的时间大概为5~10ms。按键抖动会导致一次按键被误判为多次为了确保对按键动作的正确处理,必须去除按键抖动。
2、 如何进行消抖?
根据上图中所示的电压抖动电压波形,我们可以选择在电压闭合稳定后再确认按键的状态,所以和视频中的一样(见图7.2),我们可以先检测一下低电平,过上10ms后再检测一下,如果还是低电平,那么我们就可以确认按键确实按下了,而且是处在稳定的闭合状态,而不是抖动过程中或者是有其他的什么干扰存在。
图7.1.png
                          图7.2
3、 利用如图所示的delay_ms()延时函数进行消抖有什么优缺点?
首先,程序简单易懂,便于理解;
其次,它也有一定的缺点,原因在于:在delay_ms中,系统是不能执行其他的程序,只能等到这个函数执行完再去执行其他的步骤。这样以来,就会占用CPU资源,影响系统的实时性。如果对系统的实时性没有太大的要求,这样写函数也不为过,是可行的。


处事要代人所想,读书需切己用功
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:492
  • 最近打卡:2025-05-06 07:55:35
已绑定手机

27

主题

693

回帖

2000

积分

金牌会员

打工人

积分
2000
发表于 2024-1-19 14:50:37 | 显示全部楼层
用延时消抖确实弊端很大
打工人
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-6 21:03 , Processed in 0.110346 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表