[技术问答] 单片机按键去抖

[复制链接]
1488|1
 楼主| loutin 发表于 2025-2-23 21:55 | 显示全部楼层 |阅读模式
若不进行“按键去抖”,单片机在接收按键开关按压带来的一连串电平信息,,这种抖动一般在10ms作用,会导致单片机判断错误。
常用的单片机去抖方法主要分为硬件去抖和软件去抖。
在开关端子上使用电容器绕过高频脉冲序列(由弹跳产生的),使其发送给单片机。
软件去抖:
//开关状态
#define SWITCH_BOUNCE 0
int Switch_Debounce(void)
int status = SWITCH_BOUNCE;
{
if(Switch == 0) // Check the status of switch again
status = SWITCH_PRESSED;
}
}
void DebounceDelay(void)
int i = 0;
}
200-500毫秒的延迟为忽略所有伪上升沿(下降沿)提供了时间。因此避免了因抖动引起的问题。

与人间浪漫 发表于 2025-8-28 12:40 | 显示全部楼层
可通过延时消抖:检测到按键状态变化后,延时 10-20ms 再检测,若状态一致则确认有效,滤除机械抖动干扰。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

1657

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部