《单片机一个按键的多次击键组合判别技巧》由会员分享,可在线阅读,更多相关《单片机一个按键的多次击键组合判别技巧(8页珍藏版)》请在金锄头文库上搜索。
1、一个按键的多次击键组合判别技巧大话篇 小匠自从上次在旧社区发表了一篇大话篇后,好久没有发表“高“论了.急坏了一帮 MM,以为小匠退隐江湖了。(斑竹在旁问道:“MM”不是“Mie Mie” ,而是 “Ma Ma” 吧?)论坛内外谣言四起,有人说小匠改行了,不做程序匠,改做泥水匠了;还有人说小匠上阿富汗反恐怖去了;其实非也,只因新板论坛启用后,小匠一直用不惯.(斑竹在旁笑道:是“用不来”吧?)今天,小匠再次隆重登坛献演。贴一个小程序段.(斑竹道:我看是“蹬痰现眼”吧?)(程序匠人贴完帖子,下到后台,一边洗着手上残余的浆糊,一边哼着小曲:“如果你的芯是一座作坊,我愿作那不知疲倦的程序匠,” )(一黑
2、客悄悄贴近匠人,将一个废弃的浆糊桶扣到匠人头上.)(匠人忙问:“斑竹,谁把灯给关了?” )(众人哈哈大笑!.)一个按键的多次击键组合判别技巧有时在设计中,往往要用一个按键来输入多种信息。如:单击/双击/三击、短击/长击、还有各种组合击键方式。可以用以下程序来做。如果按键闭合时间500MS,判断为一次长击(1) ;两次击键时间间隔应500MS两次按键间隔时间 键号低位;=READKEYA:CLR KEY_DL ;清计数器READKEYB:CALL DL10MSINC KEY_DLMOV A,50SUB A,KEY_DLJBC R3,C JMP READKEYC ;计数器溢出跳JKON READK
3、EYB ;键未释放跳BC R3,C ;C=0 JMP READKEYD;=READKEYC:WDTC ;喂狗JKON READKEYC ;键未释放跳BS R3,C ;C=1READKEYD:RLLC KEY_NUM ;键号左移一位,C - 键号低位JBC KEY_NUM,ZHBIT ;按键检测未完成继续RET;=CLR KEY_DL ;清计数器READKEYE:CALL DL10MSINC KEY_DLMOV A,70SUB A,KEY_DLJBC R3,C READKEYF:RET ;计数器溢出返回JKOFF READKEYE ;键未按下跳JMP READKEYA ;再次检测;=;键闭合跳(宏);=JKON MACRO ADDRESSJBS R5,KEY ;键断开跳 FJMP ADDRESS ;键闭合跳CALL DL10MS ;延时去抖动 JBS R5,KEY ;键断开跳 FJMP ADDRESS ;键闭合跳ENDM ;=;键断开跳(宏);=JKOFF MACRO ADDRESSJBC R5,KEY ;键闭合跳 FJMP ADDRESS ;键断开跳CALL DL10MS ;延时去抖动 JBC R5,KEY ;键闭合跳 FJMP ADDRESS ;键断开跳ENDM