日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
按鍵的多次擊鍵組合判別技巧匯編源程序
按鍵的多次擊鍵組合判別技巧匯編源程序
 更新時間:2008-7-26 19:43:53  點(diǎn)擊數(shù):3
【字體: 字體顏色
時間: 2008-4-24

來源:網(wǎng)上轉(zhuǎn)載    作者:

有時在設(shè)計中,往往要用一個按鍵來輸入多種信息。如:單擊/雙擊/三擊、短擊/長擊、
還有各種組合擊鍵方式?梢杂靡韵鲁绦騺碜。
如果按鍵閉合時間<500MS,判斷為一次短擊(0);
如果按鍵閉合時間>500MS,判斷為一次長擊(1);
兩次擊鍵時間間隔應(yīng)<700MS,如果按鍵釋放后700MS內(nèi)無鍵按下,則結(jié)束讀鍵。
讀鍵完畢返回一個鍵號值KEY_NUM。其意義如下:
KEY_NUM        意義
00000000    無鍵按下過
00000001    無意義
00000010    單次短擊
00000011    單次長擊
00000100    短擊 + 短擊
00000101    短擊 + 長擊
00000110    長擊 + 短擊
00000111    長擊 + 長擊
……        ……
10000000    7次短擊
11111111    7次長擊
上表中的KEY_NUM值的規(guī)律是,從左向右看,第一個"1"后面的每一位代表一次擊鍵;"0
"代表短擊,"1"代表長擊。掌握該規(guī)律后,我們可將任何一個8位的二進(jìn)制數(shù)"翻譯"成一
種擊鍵組合。例如:01010101,代表的是:短+長+短+長+短+長。
該程序最多可識別7次連續(xù)擊鍵,共254種組合。但并非每個程序中用得上。在大多數(shù)程
序中,能判斷雙擊即可以了,這時可將程序中的ZHBIT定義為2。同理,如果要判斷3次按
鍵,將ZHBIT定義為3即可。
當(dāng)ZHBIT="1"時,程序僅能判斷一次擊鍵,包括2種組合(短擊/長擊);當(dāng)ZHBIT="2"時,程
序還能判斷兩次擊鍵,包括6(2+4)種組合(短擊/長擊/(短+短)/(短+長)/(長+短
)/(長+長));以次類推,當(dāng)ZHBIT="3"時,程序能判斷三次擊鍵,包括14(2+4+8)種
組合。
ZHBIT    組合種類
1    2
2    2+4=6
3    2+4+8=14
4    2+4+8+16=30
5    2+4+8+16+32=62
6    2+4+8+16+32+64=126
7    2+4+8+16+32+64+128=254
下面這段程序摘自小匠的一個智能充電器程序(MCU是EM78P458),如下:
;********************************
;讀鍵子程序
;出口:    KEY_NUM    =鍵號值
;中間:    KEY_DL    =計數(shù)器
;說明:
/*
短擊:鍵按下時間<500MS
長擊:鍵按下時間>500MS
兩次按鍵間隔時間<700MS
鍵號定義:
    KEY_NUM="00000000":    無鍵按下
    KEY_NUM="00000001":    無意義
    KEY_NUM="00000010":    單次短擊
    KEY_NUM="00000011":    單次長擊
    KEY_NUM="00000100":    短擊 + 短擊
    KEY_NUM="00000101":    短擊 + 長擊
    KEY_NUM="00000110":    長擊 + 短擊
    KEY_NUM="00000111":    長擊 + 長擊
    ...
    ...
    KEY_NUM="11111110":    長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 短擊
    KEY_NUM="11111111":    長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊
*/
    ZHBIT    EQU    2      ;按鍵組合位(選擇范圍1~7)
;********************************
READKEY:
    CLR    KEY_NUM          ;清鍵號
    JKOFF    READKEYF       ;鍵未按下跳
    BS    KEY_NUM,0         ;"1" -> 鍵號低位
;=================
READKEYA:
    CLR    KEY_DL           ;清計數(shù)器
READKEYB:
    CALL    DL10MS
    INC    KEY_DL
    MOV    A,@50
    SUB    A,KEY_DL
    JBC    R3,C
    JMP    READKEYC         ;計數(shù)器溢出跳
    JKON    READKEYB        ;鍵未釋放跳
    BC    R3,C              ;C="0"
    JMP    READKEYD
;=================
READKEYC:
    WDTC                    ;喂狗
    JKON    READKEYC        ;鍵未釋放跳
    BS    R3,C              ;C="1"
READKEYD:
    RLLC    KEY_NUM         ;鍵號左移一位,C -> 鍵號低位
    JBC    KEY_NUM,ZHBIT    ;按鍵檢測未完成繼續(xù)
    RET
;=================
    CLR    KEY_DL           ;清計數(shù)器
READKEYE:
    CALL    DL10MS
    INC    KEY_DL
    MOV    A,@70
    SUB    A,KEY_DL
    JBC    R3,C
READKEYF:
    RET                  ;計數(shù)器溢出返回
    JKOFF    READKEYE    ;鍵未按下跳
    JMP    READKEYA      ;再次檢測
;=================
;鍵閉合跳(宏)
;=================
JKON    MACRO    ADDRESS
    JBS    R5,KEY          ;鍵斷開跳
    FJMP    ADDRESS        ;鍵閉合跳
    CALL    DL10MS         ;延時去抖動
    JBS    R5,KEY          ;鍵斷開跳
    FJMP    ADDRESS        ;鍵閉合跳
ENDM
;=================
;鍵斷開跳(宏)
;=================
JKOFF    MACRO    ADDRESS
    JBC    R5,KEY           ;鍵閉合跳
    FJMP    ADDRESS         ;鍵斷開跳
    CALL    DL10MS          ;延時去抖動
    JBC    R5,KEY           ;鍵閉合跳
    FJMP    ADDRESS         ;鍵斷開跳
ENDM

 
  • 上一篇: 單片機(jī)定時中斷的精確定時編程方法種種
  • 下一篇: 串口自動波特率設(shè)置程序
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1