《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 其他 > 一個(gè)按鍵的多次擊鍵組合判別技巧匯編程序

一個(gè)按鍵的多次擊鍵組合判別技巧匯編程序

2010-06-08
關(guān)鍵詞: 按鍵 擊鍵 匯編程序

由于在學(xué)習(xí)用DS1302來(lái)做LED時(shí)鐘時(shí),發(fā)現(xiàn)開(kāi)發(fā)板附的程序?qū)?a class="innerlink" href="http://m.jysgc.com/tags/按鍵" title="按鍵" target="_blank">按鍵操作,很不靈活,后來(lái)在網(wǎng)上找到一篇《一個(gè)按鍵的多次擊鍵組合判別技巧》;

C51匯編的參考程序,經(jīng)學(xué)習(xí)摸索已改成C51匯編了,并已用XL400 單片;

;以下主程序演示了不同組合按鍵時(shí),分別控制P2.0-P2.5各端口的LED燈的亮滅。
;單次短擊=>P2.0/LED1
;單次長(zhǎng)擊=>P2.1/LED2
;短擊+短擊=>P2.2/LED3
;短擊+長(zhǎng)擊=>P2.3/LED4
;長(zhǎng)擊+短擊=>P2.4/LED5
;長(zhǎng)擊+長(zhǎng)擊=>P2.5/LED6 
;------------------------------------------------------------
 ORG 0040H
 AJMP MAIN
MAIN:
 MOV P1,#0FFH
 MOV P2,#0FFH   ;初始化端口
LOOP:
 CALL SREAD_KEY   ;讀單按鍵--子程序
 MOV R0,KEY_NUM  
 CJNE R0,#00000010B,MAIN1 ;比較鍵值不等跳
     CPL LED1_6.0   ;取反P2.0
MAIN1:
 CJNE R0,#00000011B,MAIN2 ;比較鍵值不等跳
 CPL LED1_6.1   ;取反P2.1
MAIN2:
 CJNE R0,#00000100B,MAIN3 ;比較鍵值不等跳
     CPL LED1_6.2   ;取反P2.2
MAIN3:
 CJNE R0,#00000101B,MAIN4 ;比較鍵值不等跳
 CPL LED1_6.3   ;取反P2.3
MAIN4:
 CJNE R0,#00000110B,MAIN5 ;比較鍵值不等跳
 CPL LED1_6.4   ;取反P2.4
MAIN5:
 CJNE R0,#00000111B,MAIN_EXIT ;比較鍵值不等跳
 CPL LED1_6.5   ;取反P2.5
MAIN_EXIT:
 JMP LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;讀單按鍵--子程序
;子程序執(zhí)行后返回值KEY_NUM即鍵值
;-----------------------------說(shuō)明----------------------------
;短擊:鍵按下時(shí)間<500MS
;長(zhǎng)擊:鍵按下時(shí)間>500MS
;兩次按鍵間隔時(shí)間<700MS
;鍵值定義:
;KEY_NUM="00000000":  無(wú)鍵按下
;KEY_NUM="00000001":  無(wú)意義
;KEY_NUM="00000010":  單次短擊
;KEY_NUM="00000011":  單次長(zhǎng)擊
;KEY_NUM="00000100":  短擊+短擊
;KEY_NUM="00000101":  短擊+長(zhǎng)擊
;KEY_NUM="00000110":  長(zhǎng)擊+短擊
;KEY_NUM="00000111":  長(zhǎng)擊+長(zhǎng)擊
;KEY_NUM="00001000":  短擊+短擊+短擊
;KEY_NUM="00001001":  短擊+短擊+長(zhǎng)擊
;KEY_NUM="00001011":  短擊+長(zhǎng)擊+長(zhǎng)擊
;KEY_NUM="00001111":  長(zhǎng)擊+長(zhǎng)擊+長(zhǎng)擊
;以編碼從左看起第一個(gè)1看作為分界線,左邊為0、而右邊的0和1表示為:
;0短擊1長(zhǎng)擊。
;以上組合已足夠用了!
;*************************************************************
; KEY EQU P1.0
; KEY_NUM EQU 20H
;*************************************************************
SREAD_KEY:
 MOV KEY_NUM,#00H ;鍵值清0
 JB KEY,SKEY_EXIT ;鍵未按下跳
 CALL DL10MS  ;延時(shí)去抖動(dòng)
 JB KEY,SKEY_EXIT ;鍵未按下跳
 MOV KEY_NUM,#1  ;置鍵值為#00000001B
SKEY_A:
 MOV R0,#00H  ;清計(jì)數(shù)器
 CLR C   ;清CY
SKEY_B:
 CALL DL10MS
 INC R0
 MOV A,#50
 SUBB A,R0
 JC SKEY_C  ;當(dāng)鍵按下>500MS跳
 JNB KEY,SKEY_B  ;鍵未釋放跳
 CALL DL10MS  ;延時(shí)去抖動(dòng)
 JNB KEY,SKEY_B  ;鍵未釋放跳
 CLR C   ;CY置0
 JMP SKEY_D
SKEY_C:
 JNB KEY,$  ;鍵未釋放停
 CALL DL10MS  ;延時(shí)去抖動(dòng)
 JNB KEY,$  ;鍵未釋放停
 SETB C   ;CY置1
SKEY_D:    
 MOV A,KEY_NUM
 RLC A   ;鍵值左移一位,C->鍵值低位
 MOV KEY_NUM,A
 JB KEY_NUM.2,SKEY_EXIT ;判斷按鍵檢測(cè)是否完成,完成跳
 ;說(shuō)明:KEY_NUM.1時(shí)只判斷單次按鍵兩種組合,KEY_NUM.2時(shí)可判斷兩次按鍵4種組合+單次按鍵的2種組合=6種,以此類推。
 MOV R0,#00H  ;清計(jì)數(shù)器
 CLR C   ;CY置0
SKEY_E:
 CALL DL10MS
 INC R0
 MOV A,#70
 SUBB A,R0
 JC SKEY_EXIT  ;當(dāng)未按下>700MS跳出
 JB KEY,SKEY_E  ;鍵釋放跳
 CALL DL10MS  ;延時(shí)去抖動(dòng)
 JB KEY,SKEY_E  ;鍵釋放跳
 JMP SKEY_A  ;當(dāng)未按下<700MS再次檢測(cè)
SKEY_EXIT:
 RET 
;************************************************************  
;延時(shí)10mS   
;************************************************************   
DL10ms:
 MOV R5,#14H  ;20              ;10.262ms=20*511+2*20+1=20.261  
TIME10MS_1:
 MOV R6,#0FFH  ;255    ;511us=255*2+1  
 DJNZ R6,$   
 DJNZ R5,TIME10MS_1   
 RET   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 END 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲视屏在线播放| 午夜精品久久久久久久99樱桃| 国产日韩欧美高清| 欧美高清在线观看| 久久精品国产99国产精品澳门| 一二三区精品| 亚洲一区二区免费在线| 亚洲国产免费看| 国产一区二区精品久久99| 国产精品videossex久久发布| 欧美成人精品h版在线观看| 午夜一区二区三视频在线观看| 夜夜爽夜夜爽精品视频| 最近中文字幕mv在线一区二区三区四区| 午夜一区二区三区在线观看 | 国产精品久久久久久亚洲毛片 | 久久综合九色| 性高湖久久久久久久久| 亚洲午夜激情在线| 日韩视频在线一区二区三区| 亚洲国产成人高清精品| 欧美在线3区| 亚洲一区二区三区在线看| 99ri日韩精品视频| 亚洲精品在线视频观看| 亚洲国产欧美一区二区三区同亚洲| 国产一区香蕉久久| 国产欧美日韩视频一区二区| 国产精品免费aⅴ片在线观看| 欧美日韩午夜| 欧美日韩精品是欧美日韩精品| 欧美激情一区二区三区不卡| 免播放器亚洲一区| 久久伊人亚洲| 久久亚洲不卡| 麻豆freexxxx性91精品| 麻豆成人在线| 久久久欧美精品| 久久九九久久九九| 久久精品日韩欧美| 久久久久国产精品一区| 久久久噜噜噜久久中文字幕色伊伊| 欧美在线免费视屏| 久久精品99国产精品| 欧美在线视频免费观看| 久久国产福利国产秒拍| 久久精品一二三区| 久久手机免费观看| 久久综合一区二区三区| 欧美va亚洲va国产综合| 欧美激情中文不卡| 欧美www视频| 欧美精品在线极品| 欧美日韩在线精品| 国产精品久久久久久久久| 国语自产精品视频在线看一大j8| 在线精品国产成人综合| 一区二区三区国产盗摄| 欧美一区日韩一区| 日韩一区二区精品视频| 欧美在线国产| 欧美精品一区二区三区四区| 国产麻豆91精品| 亚洲国产精品第一区二区三区| 国产精品99久久久久久宅男| 欧美在线在线| 亚洲午夜精品久久久久久浪潮| 久久gogo国模裸体人体| 欧美精品www在线观看| 国产精品网站在线观看| 亚洲风情亚aⅴ在线发布| 亚洲视频电影图片偷拍一区| 亚洲丁香婷深爱综合| 亚洲欧美日韩国产成人| 免费一级欧美片在线观看| 国产精品午夜视频| 亚洲人精品午夜| 欧美制服丝袜第一页| 亚洲女女女同性video| 嫩草成人www欧美| 国产嫩草影院久久久久| 日韩视频在线免费| 久久精品视频99| 午夜精品在线| 欧美日韩国产在线| 一区二区三区在线高清| 亚洲在线观看免费视频| 一本一本久久a久久精品综合妖精| 久久久久se| 国产精品视频内| 日韩午夜黄色| 亚洲免费av观看| 久久婷婷激情| 国产日产欧美一区| 亚洲天堂av电影| 99在线|亚洲一区二区| 久久久亚洲国产美女国产盗摄| 国产精品美女主播| 亚洲美女91| 亚洲精品字幕| 美女精品视频一区| 国产一区二区三区丝袜| 亚洲一区二区三区高清 | 亚洲精品女人| 亚洲人在线视频| 久久午夜电影网| 国产一区二区三区观看| 亚洲免费视频成人| 亚洲免费视频在线观看| 欧美日本成人| 最新高清无码专区| 亚洲美女av在线播放| 免费不卡中文字幕视频| 精品成人一区二区| 久久精品卡一| 久久综合999| 韩日成人av| 久久成人在线| 久久资源在线| 伊人久久婷婷| 亚洲第一区在线观看| 狂野欧美性猛交xxxx巴西| 狠狠色噜噜狠狠色综合久| 欧美一区二区观看视频| 久久黄色小说| 国产一区二区三区在线播放免费观看| 亚洲欧美另类在线| 久久成人免费视频| 国产亚洲精品久久飘花| 欧美一区二区福利在线| 久久久久久穴| 一区福利视频| 亚洲精品日韩在线观看| 欧美精品一区二区精品网| 亚洲精品美女91| 亚洲视频二区| 国产精品一区毛片| 欧美一区二区在线看| 久久久久久亚洲综合影院红桃| 国产一区二区三区高清在线观看| 久久成人18免费观看| 蜜月aⅴ免费一区二区三区| 亚洲黄色av| 一区二区三区免费观看| 国产精品久久777777毛茸茸| 亚洲欧美另类综合偷拍| 久久精品亚洲一区二区| 亚洲电影网站| 在线视频精品一区| 国产精品日本一区二区| 午夜亚洲福利| 另类综合日韩欧美亚洲| 亚洲精品视频在线观看网站| 中日韩在线视频| 国产模特精品视频久久久久| 欧美主播一区二区三区美女 久久精品人| 久久美女性网| 亚洲毛片视频| 午夜精品在线| 激情综合在线| 亚洲美女网站| 国产精品久久久亚洲一区| 欧美在线视频观看| 欧美韩日一区二区三区| 在线视频一区二区| 欧美在线亚洲一区| 亚洲国产一区二区视频| 亚洲欧美日韩一区二区| 狠狠操狠狠色综合网| 亚洲色诱最新| 国产真实乱偷精品视频免| 亚洲免费精彩视频| 国产欧美一区二区白浆黑人| 亚洲欧洲日本在线| 国产精品乱子久久久久| 亚洲国产欧美一区二区三区久久| 欧美日本一区二区视频在线观看| 亚洲欧美久久久| 欧美精品一区二区三区视频| 午夜精品剧场| 欧美日韩国产二区| 久久本道综合色狠狠五月| 欧美日韩免费在线视频| 久久精品国产2020观看福利| 欧美日韩美女一区二区| 欧美一区二区三区视频在线观看| 欧美精品久久99| 久久疯狂做爰流白浆xx| 欧美日韩在线视频一区| 亚洲高清视频的网址| 国产精品毛片va一区二区三区| 亚洲欧洲美洲综合色网| 国产日韩一区二区| 亚洲性视频h| 亚洲第一精品夜夜躁人人躁| 欧美中文在线免费| 一区二区三区不卡视频在线观看| 免费人成网站在线观看欧美高清| 亚洲伊人网站| 欧美日韩国产影片|