按键处理是学习单片机的必修课之一。一次按键的过程,并非是一个理想的有一定宽度的电平脉冲,而是在按下、弹起过程中存在抖动,只有在中间阶段电平信号是稳定的。一次典型的按键过程是酱紫的:
在抖动过程中,电平信号高低反复变化,如果你的按键检测是检测下降沿或上升沿或者是用外部中断检测按键,都可能在抖动时重复检测到多次按键。这就是在未消抖的按一次键显示值加1的程序中,出现按一次键显示值+2、+3甚至加更多的原因。对于按键消抖,常用的有硬件消抖和软件消抖。本文是我个人对按键处理的一些常见方法的总结,由于我本人不太懂硬件,所以这里只讨论独立按键的软件消抖实现。水平有限,如有错误请不吝指正。
本文代码均在单片机STC90C516RD+、晶振12.0MHz硬件环境下试验通过。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !