?? 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 + -