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

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

2010-06-08
關鍵詞: 按鍵 擊鍵 匯編程序

由于在學習用DS1302來做LED時鐘時,發現開發板附的程序對按鍵操作,很不靈活,后來在網上找到一篇《一個按鍵的多次擊鍵組合判別技巧》;

C51匯編的參考程序,經學習摸索已改成C51匯編了,并已用XL400 單片;

;以下主程序演示了不同組合按鍵時,分別控制P2.0-P2.5各端口的LED燈的亮滅。
;單次短擊=>P2.0/LED1
;單次長擊=>P2.1/LED2
;短擊+短擊=>P2.2/LED3
;短擊+長擊=>P2.3/LED4
;長擊+短擊=>P2.4/LED5
;長擊+長擊=>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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;讀單按鍵--子程序
;子程序執行后返回值KEY_NUM即鍵值
;-----------------------------說明----------------------------
;短擊:鍵按下時間<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="00001000":  短擊+短擊+短擊
;KEY_NUM="00001001":  短擊+短擊+長擊
;KEY_NUM="00001011":  短擊+長擊+長擊
;KEY_NUM="00001111":  長擊+長擊+長擊
;以編碼從左看起第一個1看作為分界線,左邊為0、而右邊的0和1表示為:
;0短擊1長擊。
;以上組合已足夠用了!
;*************************************************************
; KEY EQU P1.0
; KEY_NUM EQU 20H
;*************************************************************
SREAD_KEY:
 MOV KEY_NUM,#00H ;鍵值清0
 JB KEY,SKEY_EXIT ;鍵未按下跳
 CALL DL10MS  ;延時去抖動
 JB KEY,SKEY_EXIT ;鍵未按下跳
 MOV KEY_NUM,#1  ;置鍵值為#00000001B
SKEY_A:
 MOV R0,#00H  ;清計數器
 CLR C   ;清CY
SKEY_B:
 CALL DL10MS
 INC R0
 MOV A,#50
 SUBB A,R0
 JC SKEY_C  ;當鍵按下>500MS跳
 JNB KEY,SKEY_B  ;鍵未釋放跳
 CALL DL10MS  ;延時去抖動
 JNB KEY,SKEY_B  ;鍵未釋放跳
 CLR C   ;CY置0
 JMP SKEY_D
SKEY_C:
 JNB KEY,$  ;鍵未釋放停
 CALL DL10MS  ;延時去抖動
 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 ;判斷按鍵檢測是否完成,完成跳
 ;說明:KEY_NUM.1時只判斷單次按鍵兩種組合,KEY_NUM.2時可判斷兩次按鍵4種組合+單次按鍵的2種組合=6種,以此類推。
 MOV R0,#00H  ;清計數器
 CLR C   ;CY置0
SKEY_E:
 CALL DL10MS
 INC R0
 MOV A,#70
 SUBB A,R0
 JC SKEY_EXIT  ;當未按下>700MS跳出
 JB KEY,SKEY_E  ;鍵釋放跳
 CALL DL10MS  ;延時去抖動
 JB KEY,SKEY_E  ;鍵釋放跳
 JMP SKEY_A  ;當未按下<700MS再次檢測
SKEY_EXIT:
 RET 
;************************************************************  
;延時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 

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美日韩在线播放| 美女诱惑黄网站一区| 久久激情久久| 亚洲欧美日韩精品久久久久| 日韩午夜激情| 亚洲茄子视频| 亚洲国产欧美一区二区三区久久 | 亚洲韩国精品一区| 久久精品成人| 久久国产加勒比精品无码| 亚洲欧美国产视频| 亚洲免费视频网站| 亚洲一线二线三线久久久| 一区二区三区视频在线| 一二三区精品福利视频| 一区二区三区国产精品| 一区二区三区久久网| 99国产精品久久久久久久久久| 亚洲精品乱码| 99视频一区| 亚洲视频网在线直播| 日韩亚洲不卡在线| 一区二区三区四区五区视频| 亚洲视频1区| 亚洲一区二区在线播放| 亚洲欧美一区二区激情| 亚洲欧美日韩精品| 欧美一区在线看| 亚洲国产精品一区二区第四页av| 亚洲高清在线观看| 久久精品国产一区二区三| 久久精品国产欧美亚洲人人爽| 久久国产精品99久久久久久老狼| 久久精品一区二区三区不卡| 亚洲夫妻自拍| 亚洲精品色婷婷福利天堂| 亚洲免费观看在线视频| 一区二区三区导航| 亚洲制服av| 久久国产色av| 久久综合伊人77777| 欧美激情亚洲自拍| 国产精品v欧美精品∨日韩| 国产精品推荐精品| 国产专区一区| 亚洲人成人一区二区三区| 亚洲最黄网站| 午夜久久影院| 亚洲国产精品久久久久婷婷老年| 日韩亚洲精品视频| 香蕉久久a毛片| 久久久久综合网| 欧美激情一区二区久久久| 欧美视频在线观看一区二区| 国产精品欧美久久久久无广告| 国内精品久久久久影院薰衣草| 亚洲国产aⅴ天堂久久| 一本大道av伊人久久综合| 香蕉久久夜色| 99re热精品| 香蕉免费一区二区三区在线观看| 美女精品在线| 欧美日韩在线精品| 黑人巨大精品欧美一区二区| 亚洲精品在线免费| 欧美一级一区| 一本色道久久99精品综合| 欧美一级播放| 欧美成人精品h版在线观看| 国产精品sss| 亚洲成人在线网站| 在线天堂一区av电影| 亚洲电影免费在线观看| 国产精品99久久久久久宅男| 久久国产福利国产秒拍| 欧美精品一区三区在线观看| 国产日韩精品一区二区| 亚洲乱码国产乱码精品精可以看| 欧美一区二区三区在线免费观看| 99精品99| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品xnxxcom| 亚洲永久免费av| 99国产精品久久久| 欧美一区二区在线| 欧美片第1页综合| 国内精品视频在线播放| 亚洲视频一区| 99日韩精品| 女人天堂亚洲aⅴ在线观看| 国产乱码精品一区二区三区五月婷| 亚洲日韩第九十九页| 亚洲第一天堂av| 久久精品国产一区二区电影| 欧美天堂亚洲电影院在线观看| 亚洲国产欧美一区二区三区同亚洲| 欧美在线播放| 欧美在线免费观看视频| 欧美视频手机在线| 亚洲日本aⅴ片在线观看香蕉| 久久精品99无色码中文字幕| 先锋影音久久久| 国产精品扒开腿做爽爽爽视频| 亚洲日本激情| 亚洲伦理在线| 免费永久网站黄欧美| 韩日精品在线| 欧美一级二区| 欧美一区国产在线| 国产精品国产三级国产普通话三级 | 久久久91精品| 国产精品视频大全| 在线综合+亚洲+欧美中文字幕| 9l视频自拍蝌蚪9l视频成人| 欧美粗暴jizz性欧美20| 黄色小说综合网站| 久久av老司机精品网站导航| 久久成人亚洲| 国产一区二区成人| 欧美在线免费观看亚洲| 久久久国产一区二区| 国产亚洲欧美另类中文| 午夜亚洲福利| 欧美影院视频| 国产日本欧美一区二区| 性18欧美另类| 久久青草福利网站| 国模一区二区三区| 久久国产精品一区二区三区| 国产一区二区三区的电影 | 亚洲成人在线视频播放| 老鸭窝91久久精品色噜噜导演| 韩日欧美一区| 亚洲国产日韩精品| 欧美国产日韩一二三区| 亚洲区中文字幕| 亚洲深夜福利视频| 欧美午夜a级限制福利片| 亚洲网友自拍| 欧美一区二区三区久久精品 | 亚洲精品三级| 一区二区三区福利| 国产精品久久久久久模特| 国产精品99久久99久久久二8| 亚洲欧美日韩在线高清直播| 国产日韩欧美麻豆| 亚洲电影免费观看高清| 欧美国产日韩一区二区在线观看| 日韩亚洲不卡在线| 午夜亚洲视频| 伊人久久大香线蕉综合热线| 日韩午夜在线电影| 国产精品久久久久999| 欧美一区国产二区| 欧美风情在线观看| 亚洲视频精选| 久久婷婷av| 亚洲精品久久久久久久久久久久久| 亚洲一区二区三区视频播放| 国产区亚洲区欧美区| 亚洲国产激情| 欧美日韩亚洲三区| 欧美亚洲自偷自偷| 欧美激情视频一区二区三区在线播放 | 欧美在线国产精品| 亚洲国产91精品在线观看| 亚洲视频中文字幕| 国产亚洲精品自拍| 99视频超级精品| 国产区精品视频| 日韩视频一区二区三区| 国产伦精品一区二区三区在线观看| 亚洲第一精品久久忘忧草社区| 欧美激情一区二区三区蜜桃视频 | 免费观看成人| 中日韩美女免费视频网址在线观看 | 欧美一区二区三区视频免费播放 | 欧美在线在线| 欧美日韩三级在线| 欧美在线三区| 欧美日韩一区二区在线观看| 欧美一级片久久久久久久| 欧美激情一区二区在线 | 久久久久久9| 99riav久久精品riav| 久久久精品国产免大香伊| 亚洲国内精品在线| 久久国产一区| 日韩一区二区电影网| 久久久久久九九九九| 夜夜狂射影院欧美极品| 狼人天天伊人久久| 亚洲在线成人精品| 欧美精品一区二区蜜臀亚洲| 久久成人免费电影| 国产精品久久久久久久浪潮网站| 亚洲欧洲日本一区二区三区| 国产欧美一区二区精品性| 亚洲视频免费| 亚洲福利国产精品|