📄 jianpan.asm
字号:
ORG 0000H
LJMP MAIN ;没有用到去抖动
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
;NOP
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
;NOP
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW11;有键入
ROW2: MOV DPTR,#0103H
MOV A,#0DH
MOVX @DPTR,A
;NOP
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW22;有键入
ROW3: MOV DPTR,#0103H
MOV A,#0BH
MOVX @DPTR,A
;NOP
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,JROW33
ROW4: MOV DPTR,#0103H
MOV A,#07H
MOVX @DPTR,A
;NOP
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,JROW44
LJMP ROW
JROW33:LJMP ROW33
JROW44:LJMP ROW44
ROW11: ACALL DELAY;去抖动,确定
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW111;有
LJMP ROW2
ROW111: PUSH ACC
ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,DISPLAY1;没有
LJMP 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: ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW222
LJMP ROW3
ROW222: PUSH ACC
ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,DISPLAY2
LJMP ROW3
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
LJMP ROW3
ROW33: ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW333
LJMP ROW4
ROW333: PUSH ACC
ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,DISPLAY3
LJMP ROW4
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,#39H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW4
ROW44: ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,ROW444
LJMP ROW
ROW444: PUSH ACC
ACALL DELAY
MOV DPTR,#0101H
MOVX A,@DPTR
CJNE A,#0FH,DISPLAY4
LJMP ROW
DISPLAY4:POP ACC
JB ACC.0,NO42
NO41: MOV DPTR,#0102H
MOV A,#00H
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,#40H
MOVX @DPTR,A
ACALL DELAY
LJMP ROW
NO44: MOV DPTR,#0102H
MOV A,#5EH
MOVX @DPTR,A
ACALL DELAY
LJMP ROW
DELAY: MOV R1,#05FH
DJNZ R1,$
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -