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

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

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亚洲国产精品_日韩亚洲一区二区
精久久久久久| 在线综合欧美| 国产精品夜夜夜| 欧美日韩激情网| 男女精品视频| 蜜桃av综合| 久久精品一区二区三区不卡牛牛| 亚洲一区二区在| 亚洲最新视频在线| 亚洲美女中文字幕| 亚洲精品综合| 99天天综合性| 一区二区三区四区在线| 亚洲麻豆一区| 亚洲精品中文在线| 亚洲三级视频| 亚洲精品美女91| 日韩一区二区久久| 一区二区三区久久久| 在线亚洲国产精品网站| 一区二区三区四区五区精品| 在线一区二区三区做爰视频网站| 一本久道综合久久精品| 一区二区精品国产| 国产精品99久久不卡二区| 中国av一区| 亚洲影院免费观看| 欧美一进一出视频| 久久精品久久99精品久久| 久久国产主播精品| 麻豆精品视频在线| 欧美激情视频一区二区三区不卡| 欧美久久婷婷综合色| 欧美日韩国产成人在线91| 欧美日韩在线直播| 国产美女精品视频| 激情欧美一区二区三区| 亚洲国产第一| 一本色道久久综合精品竹菊| 亚洲人成网站777色婷婷| 99国内精品久久| 亚洲精品中文字幕在线| 一区二区黄色| 亚洲欧美日韩一区二区在线| 久久国产黑丝| 99视频精品全部免费在线| 亚洲欧美成人一区二区在线电影 | 亚洲免费观看在线观看| 亚洲视频网站在线观看| 欧美在线关看| 亚洲美女区一区| 先锋影音国产精品| 猛干欧美女孩| 国产精品video| 国产精品视频一二三| 欧美性一区二区| 国产自产在线视频一区| 亚洲精品中文字幕在线| 亚洲欧美日韩一区在线| 亚洲视频在线观看三级| 欧美激情国产日韩精品一区18| 欧美日韩三级| 国产亚洲毛片在线| 亚洲日本中文字幕区| 亚洲综合清纯丝袜自拍| 亚洲国产精品久久久| 亚洲影音一区| 亚洲精品一区二区三区av| 先锋影音久久久| 欧美黄色免费网站| 国产女优一区| 亚洲精品之草原avav久久| 先锋影音一区二区三区| 亚洲日本国产| 久久国产精品一区二区| 欧美肉体xxxx裸体137大胆| 国产专区欧美专区| 在线一区亚洲| 日韩视频免费在线观看| 久久久久国色av免费观看性色| 欧美老女人xx| 国内精品久久久| 亚洲在线免费观看| 夜夜爽www精品| 麻豆精品网站| 国产亚洲福利| 99精品欧美一区二区蜜桃免费| 亚洲第一黄色| 久久黄色级2电影| 国产精品白丝av嫩草影院| 亚洲国产va精品久久久不卡综合| 欧美一乱一性一交一视频| 亚洲午夜精品国产| 欧美精品18+| 亚洲第一区色| 久久精品国产综合| 欧美在线观看网站| 欧美体内she精视频在线观看| 亚洲第一级黄色片| 久久国产精品99久久久久久老狼| 亚洲女人天堂av| 欧美三级午夜理伦三级中视频| 亚洲大胆视频| 亚洲电影免费观看高清完整版在线观看 | 午夜在线a亚洲v天堂网2018| 国产精品老女人精品视频| 91久久精品美女高潮| 欧美亚洲在线| 国产精品久久久久9999高清| 亚洲免费av网站| 日韩视频免费观看| 欧美成人激情视频| 在线欧美不卡| 99国产一区| 在线一区观看| 欧美日韩中文字幕精品| 亚洲精品国精品久久99热| 亚洲人成网站在线观看播放| 久久久91精品国产一区二区精品| 国产欧美日韩在线观看| 亚洲一区二区四区| 最新国产成人av网站网址麻豆| 亚洲综合丁香| 欧美黄色网络| 亚洲精品一区二区三区婷婷月| 亚洲精品免费看| 欧美不卡一卡二卡免费版| 韩国成人福利片在线播放| 欧美在线关看| 久久一区二区精品| 国产在线视频欧美| 亚洲影院免费| 久久久国产成人精品| 韩国女主播一区| 亚洲国产精品高清久久久| 久久一区二区三区四区五区| 精品999网站| 亚洲精选在线观看| 欧美日韩一区二区在线观看视频 | 性色av一区二区三区在线观看 | 亚洲精品自在久久| 亚洲一级二级| 国产伦精品一区二区| 久久精品国产久精国产思思| 麻豆免费精品视频| 亚洲国产一区在线观看| 亚洲性人人天天夜夜摸| 国产精品亚洲综合久久| 欧美专区亚洲专区| 欧美激情第三页| 亚洲特色特黄| 久久免费视频网站| 亚洲欧洲精品一区二区三区波多野1战4| 在线亚洲欧美| 国产亚洲视频在线| 亚洲另类自拍| 国产精品爽爽爽| 亚洲国产精品久久人人爱蜜臀| 欧美喷潮久久久xxxxx| 亚洲女同同性videoxma| 免费日韩av电影| 在线视频精品一| 久久午夜视频| 日韩午夜av| 久久精品成人一区二区三区| 亚洲国产乱码最新视频| 亚洲欧美日韩专区| 伊人春色精品| 亚洲伊人久久综合| 黄色小说综合网站| 一区二区三区免费看| 国产欧美一区二区精品秋霞影院| 亚洲国产精品一区二区久| 欧美视频精品在线| 羞羞答答国产精品www一本 | 欧美午夜视频一区二区| 性欧美在线看片a免费观看| 欧美成人中文字幕| 亚洲欧美国产精品va在线观看| 久久综合伊人77777麻豆| 亚洲精品老司机| 久久久久免费观看| 日韩视频在线观看| 久久久蜜桃一区二区人| 亚洲精品免费网站| 久久xxxx| 一区二区欧美在线| 免费久久精品视频| 亚洲一区二区三区在线观看视频| 免费成人网www| 亚洲综合丁香| 欧美日韩国产综合一区二区| 欧美一区永久视频免费观看| 欧美日韩激情网| 久久电影一区| 国产精品美女久久久浪潮软件| 亚洲精品激情| 韩国欧美一区| 欧美一区二区网站| 日韩一级精品视频在线观看|