新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機簡單易懂矩陣式鍵盤程序

51單片機簡單易懂矩陣式鍵盤程序

作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
;30H存列號31H存行號32H裝鍵值,要改鍵盤的值排列可以通過改變后面TAB的值。

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

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

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

;平,則可以得到行號,最終計算行號*4+列號就可以得到鍵盤的值,如果要修改矩陣鍵盤鍵值排列,則可以

;通過查表,計算出的前期鍵值只是作為一個地址。不知表述是否清楚了

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

Y0:MOV 30H,#00H ;賦列號
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 ;賦行號
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 ;鍵掃延時
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 ;鍵盤值



評論


技術專區(qū)

關閉