<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 4×4矩陣鍵盤(pán)的工作原理與編程

4×4矩陣鍵盤(pán)的工作原理與編程

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201611/321762.htm

=====================================================

矩陣鍵盤(pán)鍵值查找程序

鍵值存入30H單元

=====================================================

KEY_SCAN:;識別鍵盤(pán)有無(wú)鍵按下子程序

MOVP1,# 0F0H;置列線(xiàn)為0,行線(xiàn)為1

MOVA,P1;讀P1口

ANLA,#0F0H;取出高四位

MOVB,A;暫存到B

MOVP1,#0FH;置列線(xiàn)為1,行線(xiàn)為0

MOVA,P1;讀P1口

ANLA,#0FH;取出低四位

ORLA,B;高四位與低四位邏輯或運算重新組合

CJNEA,#0FFH,KEY_IN1;0FFH為無(wú)按鍵按下

RET

KEY_IN1:;識別具體按鍵值子程序

MOVB,A;將按鍵的特征編碼暫存于B

MOVDPTR,#KEYTABLE

MOVR3,#0FFH

KEY_IN2:

INCR3;順序碼加1

MOVA,R3

MOVCA,@A+DPTR;查表

CJNEA,B,KEY_IN3;比較,若相同則找到按鍵的特征編碼。

MOVA,R3;找到特征編碼后,取順序碼

MOV30H,A;存入30H單元

RET

KEY_IN3:

CJNEA,#00H,KEY_IN2;末完,繼續查

RET;00H為結束碼

;特征編碼與順序編碼的對應關(guān)系表

KEY_TABLE:

DB0EEH,0EDH,0EBH,0E7H,0DEH;0,1,2,3,4,順序碼

DB0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,8,9,順序碼

DB0BBH,0B7H,07EH,07DH,07BH, 077H;A,B,C,D,E,F順序碼

DB00H;結束碼

2、8位數碼管顯示程序的編程方法

根據要使用的數碼管的具體位置來(lái)確定掃描初值和掃描方向。

根據使用數碼管的個(gè)數來(lái)確定掃描的位數。

準備好要顯示的數據,放入相應的顯示單元中。

===========================================================

8位數碼管顯示子程序

;從右至左依次點(diǎn)亮8個(gè)數碼管

===========================================================

DISPLAY:

MOV R1,#07FH;掃描初值送入R1

MOV R2,#08H;掃描位數送入R2

MOV R0,#30H;開(kāi)始填充顯示單元

DISP1:MOV A,@R0;顯示內容送入A

MOV DPTR,#TABLE;獲得表頭

MOVC A,@A+DPTR;查表獲得顯示數據

MOV P0,A;顯示單元數據

MOV P2,R1;開(kāi)始顯示當前位

MOV A,R1;準備顯示下一位

RR A

MOV R1,A

INC R0;取下一個(gè)單元地址

LCALL DELAY2MS;延時(shí)2 MS

DJNZ R2,DISP1;重復顯示下一個(gè)

RET;顯示完成,返回

因鍵值顯示只需用一位數碼管,可將上面的顯示程序進(jìn)行優(yōu)化,得到下面的顯示程序。

====================================================

鍵值顯示子程序

====================================================

KEY_PLAER:

MOVA,30H;鍵值數據送入A

MOVDPTR,#TABLE;取段碼表地址

MOVCA,@A+DPTR;查顯示數據對應段碼

MOVP0,A;段碼送入P0口

CLRP2.7;第一個(gè)數碼管顯示

CALLDELAY2MS

SETBP2.7

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;0-F

三、演示程序的功能

當你按下矩陣鍵盤(pán)中的任何一個(gè)鍵,蜂鳴器響一聲,并在數碼管上顯示相應的鍵值。圖4為ME300B開(kāi)發(fā)系統的實(shí)際演示圖片。

圖4ME300B開(kāi)發(fā)系統顯示鍵值“E”


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 4×4矩陣鍵盤(pán)單片

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>