51单片机按键防抖这么处理

2025-05-08 22:06:07
推荐回答(3个)
回答1:

防抖,判断到端口高电平之后,延时10ms左右,再判断一次是否还是刚刚的高电平状态,如果是,再等待按键释放,即while(!key);。跳出这个循环之后就表示按键事件完成。那么就LED =~LED。
你的程序:if(key == 0) 如果是高电平触发,那么大部分时间都在进行LED取反,导致过快闪烁,你看不出变化,就看成了长亮。如果是低电平触发,你按下的每一时刻都在变化,释放之后,可能是亮的,也可能是灭的

回答2:

一般是检测到按键按下后,过一段时间再检测一次,如果两次都检测到了说明确实是按键按下了。

间隔时间 一般是10-20毫秒。

回答3:

通过延时。。。。。