📄 6-2.asm
字号:
;按键扫描程序
SCAN: MOV A,#0FH
MOV P1,A
MOV A,P2
ANL A,#0FH
CJNE A,#0FH,NEXT1 ;有键按下,则转到NEXT1
SJMP NEXT4
;----------------------------------------
NEXT1: CLR P0.1
SETB P0.0
ACALL DS20MS ;延时20 ms,去抖动
CLR C
MOV R2,#00H ;窜键标志寄存器R2清0
MOV R1,#01H ;行扫描初值送R1
LOOP: MOV A,R1
MOV P1,A ;行扫描值送P1
MOV A,P2 ;列值送A
ANL A,#0FH
CJNE A,#0FH,NEXT2 ;若按键在本行,则NEXT2
SJMP NEXT3
;--------------------------------------------
NEXT2: INC R2
CJNE R2,#01H,NEXT4 ;若窜键,则返回主程序
MOV R4,A
MOV A,R1
MOV R3,A
;---------------------------------------------
NEXT3: MOV A,R1 ;行扫描值送A
CLR C
RLC A
MOV R1,A
CJNE A,#10H,LOOP
AJMP KCODE
;---------------------------------------------
NEXT4: CLR A
AJMP MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -