分享

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

 lixinhecom 2017-07-27
采纳率:49%7级2013.12.21
防抖,判断到端口高电平之后,延时10ms左右,再判断一次是否还是刚刚的高电平状态,如果是,再等待按键释放,即while(!key);。跳出这个循环之后就表示按键事件完成。那么就LED =~LED。
你的程序:if(key == 0) 如果是高电平触发,那么大部分时间都在进行LED取反,导致过快闪烁,你看不出变化,就看成了长亮。如果是低电平触发,你按下的每一时刻都在变化,释放之后,可能是亮的,也可能是灭的
  • 追问: 可以帮我发个代码吗?C代码?
  • 追答:if(!key) { delay(10);//延迟10ms if(!key)//再判断,防抖 { while(key);//等待释放 LED = ~LED; } }
  • 追问: 太谢谢你了,
  • 追答:能把你的程序截个图贴出来么?
  • 追问: 还是不行哦!
  • 追答:最终是什么问题呢?
  • 追问: 现在可以了,谢谢
  • 追问: 延时函数有问题,延时没算好

分享到:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多