📄 jianpan1.asm
字号:
ORG 0000H
LJMP MAIN ;用到了去抖动,wait做去抖动延时,delay做显示延时
ORG 0100H
MAIN: MOV P1,#10H;8155初始化,A输入a,b,c,d;B输出驱动数码管;C输出,检测
MOV DPTR,#0100H
MOV A,#0EH
MOVX @DPTR,A
ROW: MOV DPTR,#0103H;检测是否有键入
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW1;有键入
MOV DPTR,#0102H;无键入,输出0
MOV A,#00H
MOVX @DPTR,A
LJMP ROW
ROW1: MOV DPTR,#0103H;检测第一行
MOV A,#0EH
MOVX @DPTR,A
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW11;有键入
ROW2: MOV DPTR,#0103H
MOV A,#0DH
MOVX @DPTR,A
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW22;有键入
ROW3: MOV DPTR,#0103H
MOV A,#0BH
MOVX @DPTR,A
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,LROW33;有键入
ROW4: MOV DPTR,#0103H
MOV A,#07H
MOVX @DPTR,A
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,LROW44;有键入
LJMP ROW
LROW33: LJMP ROW33
LROW44:LJMP ROW44
ROW11: LCALL WAIT;去抖动,确定
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW111;有
LJMP ROW2
ROW111: PUSH ACC
LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW2;有
DISPLAY1:POP ACC
JB ACC.0,NO12
NO11: MOV DPTR,#0102H
MOV A,#06H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW2
NO12: JB ACC.1,NO13
MOV DPTR,#0102H
MOV A,#5BH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW2
NO13: JB ACC.2,NO14
MOV DPTR,#0102H
MOV A,#4FH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW2
NO14: MOV DPTR,#0102H
MOV A,#77H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW2
ROW22: LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW222
LJMP ROW3
ROW222: PUSH ACC
LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,LROW3
DISPLAY2:POP ACC
JB ACC.0,NO22
NO21: MOV DPTR,#0102H
MOV A,#66H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW3
NO22: JB ACC.1,NO23
MOV DPTR,#0102H
MOV A,#6DH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW3
NO23: JB ACC.2,NO24
MOV DPTR,#0102H
MOV A,#7DH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW3
NO24: MOV DPTR,#0102H
MOV A,#7CH
MOVX @DPTR,A
ACALL DELAY
LROW3: LJMP ROW3
ROW33: LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW333
LJMP ROW4
ROW333: PUSH ACC
LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,LROW4
DISPLAY3:POP ACC
JB ACC.0,NO32
NO31: MOV DPTR,#0102H
MOV A,#07H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW4
NO32: JB ACC.1,NO33
MOV DPTR,#0102H
MOV A,#7FH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW4
NO33: JB ACC.2,NO34
MOV DPTR,#0102H
MOV A,#6FH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW4
NO34: MOV DPTR,#0102H
MOV A,#4CH
MOVX @DPTR,A
ACALL DELAY
LROW4: LJMP ROW4
ROW44: LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW444
LJMP ROW
ROW444: PUSH ACC
LCALL WAIT
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,LROW
DISPLAY4:POP ACC
JB ACC.0,NO42
NO41: MOV DPTR,#0102H
MOV A,#40H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW
NO42: JB ACC.1,NO43
MOV DPTR,#0102H
MOV A,#3FH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW
NO43: JB ACC.2,NO44
MOV DPTR,#0102H
MOV A,#04H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW
NO44: MOV DPTR,#0102H
MOV A,#5EH
MOVX @DPTR,A
ACALL DELAY
LROW: LJMP ROW
DELAY: MOV R0,#0FFH
DELAY1: MOV R1,#0FFH
DJNZ R1,$
DJNZ R0,DELAY1
RET
WAIT: MOV R0,#05H
WAIT1: MOV R1,#0FFH
DJNZ R1,$
DJNZ R0,WAIT1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -