刚和一个新人谈过按键消抖的处理方法,顺便总结成文字,与大家分享交流。在做单片机处理键盘的时候,很多人都觉得很烦,反应慢啊,没有反应啊,响应时间慢等情况。在实际的系统中,很多人都是使用 DELAY(X)的,在检测到有按键按下的时候,延时,再检测,如果电平为0则认为是按键按下了,否则认为是误检测,退出检测,循环这好象是比较常用的方法,有很多的老同志都是这样用的,其实还有一种更简便有效的方法可以准确地检测按键是否按下,这种方法也是很多人用了很久的老东西了按键按下的时候,都或多或少的存在抖动,但是对于单片机来讲,这个时间是很长的了还是用代码来讲比较直接,图难画了些
有的人会说,在中断里做按键检测,太浪费中断了。其实在程序反应慢,多半是在主循环中使用了太多的 DELAY语句造成的,当然按键处理的时候你就不可再使用超过10个NOP的延时就成了。使用此方法,我还在主循环中使用此方法进行过检测,每次响应的时间有些许差别,当时用中断的,控制得就很好,根本觉察不到响应时间有任何的差异。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !