新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)簡(jiǎn)單易懂矩陣式鍵盤(pán)程序

51單片機(jī)簡(jiǎn)單易懂矩陣式鍵盤(pán)程序

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
;30H存列號(hào)31H存行號(hào)32H裝鍵值,要改鍵盤(pán)的值排列可以通過(guò)改變后面TAB的值。

;程序構(gòu)思,先給鍵盤(pán)的接入口p1賦0F0H,通過(guò)檢測(cè)p1.4-p1.7那個(gè)出現(xiàn)低電平,舉例如果是p1.4那列有鍵按

本文引用地址:http://m.butianyuan.cn/article/201611/320385.htm

;下則p1.4出現(xiàn)低電平,則跳到y(tǒng)0得到列號(hào)為0,接下來(lái)分別給p1.4-p1.7賦0,看什么時(shí)候p1.4在那出現(xiàn)低電

;平,則可以得到行號(hào),最終計(jì)算行號(hào)*4+列號(hào)就可以得到鍵盤(pán)的值,如果要修改矩陣鍵盤(pán)鍵值排列,則可以

;通過(guò)查表,計(jì)算出的前期鍵值只是作為一個(gè)地址。不知表述是否清楚了

SCAN:MOV P1,#0F0H ;鍵盤(pán)掃描程序
JNB P1.4,Y0 ;判斷列
JNB P1.5,Y1
JNB P1.6,Y2
JNB P1.7,Y3
SJMP SCAN

Y0:MOV 30H,#00H ;賦列號(hào)
MOV P1,#0FEH
JNB P1.4,X0
MOV P1,#0FDH
JNB P1.4,X1
MOV P1,#0FBH
JNB P1.4,X2
MOV P1,#0F7H
JNB P1.4,X3

Y1:MOV 30H,#01H
MOV P1,#0FEH
JNB P1.5,X0
MOV P1,#0FDH
JNB P1.5,X1
MOV P1,#0FBH
JNB P1.5,X2
MOV P1,#0F7H
JNB P1.5,X3

Y2:MOV 30H,#02H
MOV P1,#0FEH
JNB P1.6,X0
MOV P1,#0FDH
JNB P1.6,X1
MOV P1,#0FBH
JNB P1.6,X2
MOV P1,#0F7H
JNB P1.6,X3

Y3:MOV 30H,#03H
MOV P1,#0FEH
JNB P1.7,X0
MOV P1,#0FDH
JNB P1.7,X1
MOV P1,#0FBH
JNB P1.7,X2
MOV P1,#0F7H
JNB P1.7,X3

X0:MOV 31H,#00H ;賦行號(hào)
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X1:MOV 31H,#01H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X2:MOV 31H,#02H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X3:MOV 31H,#03H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

JISUAN:MOV A,31H
MOV B,#04H
MUL AB
ADD A,30H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV 32H,A
RET


delay:MOV R4,#0C5H ;鍵掃延時(shí)
DEL1:MOV R5,#43H
DEL0:MOV R6,#10H
DJNZ R6,$
DJNZ R5,DEL0
DJNZ R4,DEL1
RET


TABLE:DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,00H,0AH,0BH,0CH,0DH,0EH,0FH ;鍵盤(pán)值



關(guān)鍵詞: 51單片機(jī)矩陣式鍵

評(píng)論


技術(shù)專區(qū)

關(guān)閉