【蓝桥杯单片机(5)】计数法独立按键,拒绝延时

本文介绍了在单片机编程中,为什么不能使用延时处理按键,并详细阐述了状态机消抖(计数法消抖)的原理和实现方式,通过计数法实现独立按键,提高按键检测的准确性和响应速度。同时,提供了按键代码示例和使用注意事项,以及如何实现长按和只在按下状态执行操作的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备赛目录

1、按键为什么不能用延时?

很多人单独用按键测试程序的时候,发现delay10ms很好用。没有什么bug,可是一旦把各个模块组合在一起使用的时候,就会发现数码管怎么在闪烁??led怎么亮度不均匀??我按键怎么不够灵敏了??这其实就是延时导致的程序不能按时进行结果。
其实最主要的原因还有延时10ms对整个代码伤害很大。10ms足以让我们的while多跑好多次了,我们有必要避免CPU的浪费。

2、我们延时是为了什么??

是为了防止抖动。
什么是抖动??简单来说就是按键电平在一瞬间产生的跳变。时间很短但是却能够触发我们的按键判断,我们人的手速再快,也很难在10ms内的按下释放。所以只要按键电平的变化持续了10ms就可以判断为是人为按下了。
延时为什么可以消抖?
这个原理很简单,当我们按键电平第一次变化的时候。就进入了按键判断,我们等待10ms检测又检测到了按键还是刚刚那个样子。那么就认为不是抖动了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小谦·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值