📄 矩阵式键盘实验.asm
字号:
JIANZHI EQU 30H
ORG 0000H
LJMP START
ORG 0030H
START: MOV JIANZHI,#00H
CLR P2.0
MOV P0,#00
MAIN: MOV P3,#0FFH
CLR P3.4
MOV A,P3
ANL A,#0FH
CPL A
ANL A,#0FH
JZ NEXT1 ;A=0,,没有键按下,则扫描下一个行
LCALL DELAY
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NEXT1
MOV A,P3
CJNE A,#0EH,LOOP1
MOV JIANZHI,#00H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP1: CJNE A,#0DH,LOOP2
MOV JIANZHI,#01H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP2: CJNE A,#0BH,LOOP3
MOV JIANZHI,#02H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP3: CJNE A,#07H,LOOP4
MOV JIANZHI,#03H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT1
// LOOP4: NOP ;第一列判断完
NEXT1: MOV P3,#0FFH ;扫描第二行
CLR P3.5
MOV A,P3
ANL A,#0FFH
XRL A,#0FFH
JZ NEXT2
CJNE A,#0EH,LOOP4
MOV JIANZHI,#04H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP4: CJNE A,#0DH,LOOP5
MOV JIANZHI,#05H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP5: CJNE A,#0BH,LOOP6
MOV JIANZHI,#06H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP6: CJNE A,#07H,LOOP7
MOV JIANZHI,#07H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT2
NEXT2: MOV P3,#0FFH ;扫描第三行
CLR P3.6
MOV A,P3
ANL A,#0FFH
XRL A,#0FFH
JZ NEXT3
CJNE A,#0EH,LOOP7
MOV JIANZHI,#08H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP7: CJNE A,#0DH,LOOP8
MOV JIANZHI,#09H
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP8: CJNE A,#0DH,LOOP9
MOV JIANZHI,#10
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP9: CJNE A,#0DH,NEXT3
MOV JIANZHI,#11
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP NEXT3
NEXT3: MOV P3,#0FFH ;扫描第四行
CLR P3.7
MOV A,P3
ANL A,#0FFH
XRL A,#0FFH
JZ NEXT4
CJNE A,#0EH,LOOP10
MOV JIANZHI,#12
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP10: CJNE A,#0DH,LOOP11
MOV JIANZHI,#13
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP11: CJNE A,#0BH,LOOP12
MOV JIANZHI,#14
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
LOOP12:CJNE A,#07,NEXT4
MOV JIANZHI,#15
MOV A,JIANZHI
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LJMP MAIN
NEXT4: NOP
DELAY:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 0E5H,85H,61H,71H
DB 01H,09H,11H,0C1H
DB 99H,49H,41H,1FH
DB 03H,9FH,25H,0DH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -