按键扫描是每个搞单片机的都会遇到的问题,也是一个开发人员必须具备的基本功。先从最基本的说起。在此声明,没有代码,也不要向我要代码,也不想穿裤子,如果你看了帖子还写不出代码,那么我只能说你太笨了。。。。。。。。还是那句话,搞开发重要的是思想,而不是代码,代码只是工具 通常的按键扫描程序是这样做的 键盘按下?YES---延时去抖----键盘按下?YES-----确实按下了,按键有效---退出 NO NO 退出 退出 很多教材上都是这样写,但这个程序却是误人子第的 问题来了,这个程序不太好用,有时按一下,或按久一点,程序会认为你按了很多次!!为什么??? 因为没有判断按键释放,当我们按下键盘时,程序可能已经跑了N个来回了。
好了,我们来个改进版的按键扫描程序 键盘按下?YES---延时去抖----键盘按下?YES-----确实按下了,按键有效---A按键释放?YES--退出 NO NO NO 退出 退出 返回A 这是大多数人的按键扫描程序,在一般的场合也能用。这个程序比第一个要好点,但也好不到哪里去。为什么?判断按键释放的方法太笨了,如果我们一直按下这个键盘会怎么样?程序在此死等,可能你说我还有中断,但中断处理完了你还得回来傻等!而且其他按键也将被屏蔽。
文章评论(0条评论)
登录后参与讨论