📄 5+6+3.asm
字号:
tep equ 30h
ORG 0000H
START: LJMP MAIN
ORG 0003H
INT_0: LJMP REMOTE
ORG 000BH
TIME0: DJNZ R5,T0_1
MOV R5,#5
CLR TR0
SETB EX0
T0_1: RETI
ORG 001BH
TIME1: LJMP T0L1
ORG 0030H
MAIN: MOV SP,#50H
MOV TMOD,#11H
MOV TH0,#0
MOV TL0,#0
MOV TH1,#0F8H
MOV TL1,#0
MOV TCON,#41H
MOV IE,#8BH
MOV IP,#03H
MOV R0,#0
MOV R5,#0
MAIN2: MOV R6,#0
MAIN1: NOP
NOP
DJNZ R6,MAIN1
DJNZ R5,MAIN2
LJMP LOOP
LOOP: JBC 00H,L1
AJMP LOOP
L1: MOV A,21H
CJNE A,#3AH,L2 ;START
MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
CJNE A,#0FEH,L26A
MOV A,16H
MOVX @DPTR,A
AJMP LOOP
L26A: MOV DPTR,#0
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
MOV 14H,#0
MOV 15H,#0
AJMP LOOP
L2: CJNE A,#3BH,L3 ;UP
MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
CJNE A,#0FEH,L3B
MOV A,16H
MOVX @DPTR,A
DEC 15H
MOV 14H,#0
MOV A,15H
CJNE A,#0FFH,L3E
MOV 15H,#6 ;;;;;;;7组
L3E: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
L3B: LJMP LOOP
L3: CJNE A,#33H,L4 ;DOWN
MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
CJNE A,#0FEH,L4B
MOV A,16H
MOVX @DPTR,A
INC 15H
MOV 14H,#0
MOV A,15H
CJNE A,#7,L4V ;;;;;;;;;7组
MOV 15H,#0
L4V: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
L4B: LJMP LOOP
L4: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
CJNE A,#0FEH,L4B
MOV A,21H
CJNE A,#2BH,L40 ;LEFT
MOV DPH,14H
MOV DPL,15H
MOV A,16H
MOVX @DPTR,A
DEC 14H
ACALL BJ
L40A: MOV A,14H
CJNE A,#0FFH,L40w
MOV 14H,TEP
LJMP L40W
L40W: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
LJMP LOOP
L40: CJNE A,#23H,L41 ;RIGHT
MOV DPH,14H
MOV DPL,15H
MOV A,16H
MOVX @DPTR,A
INC 14H
ACALL BJ
L41Q: MOV A,14H
INC TEP
CJNE A,TEP,L41C
MOV 14H,#0H
L41C: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
LJMP LOOP
L41: CJNE A,#00H,L7 ;1
MOV A,#0F5H
LJMP L19
L7: CJNE A,#08H,L8 ;2
MOV A,#0A2H
LJMP L19
L8: CJNE A,#10H,L9 ;3
MOV A,#0A4H
LJMP L19
L9: CJNE A,#18H,L10 ;4
MOV A,#0C5H
LJMP L19
L10: CJNE A,#20H,L11 ;5
MOV A,#8CH
LJMP L19
L11: CJNE A,#28H,L12 ;6
MOV A,#88H
LJMP L19
L12: CJNE A,#30H,L13 ;7
MOV A,#0B5H
LJMP L19
L13: CJNE A,#38H,L14 ;8
MOV A,#80H
LJMP L19
L14: CJNE A,#01H,L15 ;9
MOV A,#84H
LJMP L19
L15: CJNE A,#09H,L16 ;0
MOV A,#90H
LJMP L19
L16: CJNE A,#11H,L17 ;.
MOV A,14H
DEC A
ANL A,#0FH
MOV DPH,A
MOV DPL,15H
MOVX A,@DPTR
CPL ACC.7
;ANL A,#0FBH
MOVX @DPTR,A
LJMP LOOP
L17: CJNE A,#19H,L18 ;sp
MOV A,#0FFH
L19: MOVX @DPTR,A
INC 14H
ACALL BJ
L19D: MOV A,14H
INC TEP
CJNE A,TEP,L19C
MOV 14H,#0
INC 15H
MOV A,15H
CJNE A,#7,L19C ;;;;7组
MOV 15H,#0
LJMP L19C
L19C: MOV DPH,14H
MOV DPL,15H
MOVX A,@DPTR
MOV 16H,A
MOV A,#0FEH
MOVX @DPTR,A
L18: LJMP LOOP
REMOTE: PUSH ACC
PUSH PSW
PUSH B
CLR C
SETB TR0
MOV B,TH0
MOV TH0,#0
MOV TL0,#0
MOV A,B
SUBB A,#02
JC ERROR
CLR C
MOV A,B
SUBB A,#06
JNC REMOTE1
CLR C
AJMP REMOTE2
REMOTE1:CLR C
MOV A,B
SUBB A,#06
JC ERROR
CLR C
MOV A,B
SUBB A,#0AH
JNC ERROR
SETB C
REMOTE2:INC 1AH
MOV A,1CH
RRC A
MOV 1CH,A
MOV A,1BH
RRC A
MOV 1BH,A
MOV A,1AH
CJNE A,#16,REQUIT
MOV A,1BH
CJNE A,#47H,ERROR
SETB 00H
MOV 21H,1CH
MOV R5,#5
CLR EX0
MOV 1AH,#0
MOV 1BH,#0
MOV 1CH,#0
;MOV DPTR,#0
;MOVX A,@DPTR
;XCH A,22H
;MOVX @DPTR,A
REQUIT: POP B
POP PSW
POP ACC
RETI
ERROR: MOV 1AH,#0
MOV 1BH,#0
MOV 1CH,#0
POP B
POP PSW
POP ACC
RETI
T0L1: MOV TH1,#0FAH
MOV TL1,#0
PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
INC 10H
MOV A,10H
CJNE A,#6,TLL1 ;;;;;每组第6位显示
MOV A,#0BFH ;10111111
MOV P1,A
MOV 10H,#0
AJMP T0L4
TLL1: CJNE A,#1,TL2 ;;;;;每组第1位显示
MOV A,#0DFH ;11011111
MOV P1,A
AJMP T0L4
TL2: CJNE A,#2,TL3 ;;;;;每组第2位显示
MOV A,#0EFH ;11101111
MOV P1,A
AJMP T0L4
TL3: CJNE A,#3,TL4 ;;;;;每组第3位显示
MOV A,#0F7H ;11110111
MOV P1,A
AJMP T0L4
TL4: CJNE A,#4,TL5 ;;;;;每组第4位显示
MOV A,#0FBH ;11111011
MOV P1,A
AJMP T0L4
TL5: CJNE A,#5,TL6 ;;;;;每组第5位显示
MOV A,#0FDH ;11111101
MOV P1,A
AJMP T0L4
TL6: MOV 10H,#0 ;;--
MOV P1,#0FFH ;;--
T0L4: CLR P3.1
NOP
CLR P3.3
NOP
NOP
SETB P3.3
SETB P3.1
T0L3: MOV R2,#09 ;;;;;9组 第1个
MOV A,10H
MOV DPH,A
MOV DPL,R0
T0LA1: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA1
MOV R2,#03 ;;;;3组=12组
T0LB1: CLR P3.3
SETB P3.3
DJNZ R2,T0LB1
MOV R2,#09 ;;;;;9组 第2个
T0LA2: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA2
MOV R2,#03 ;;;;3组=12组
T0LB2: CLR P3.3
SETB P3.3
DJNZ R2,T0LB2
MOV R2,#12 ;;;;;12组 第3个
T0LA3: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA3
; MOV R2,#04
;T0LB3: CLR P3.3
; SETB P3.3
; DJNZ R2,T0LB3
MOV R2,#12 ;;;;;12组 第4个
T0LA4: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA4
; MOV R2,#04
;T0LB4: CLR P3.3
; SETB P3.3
; DJNZ R2,T0LB4
MOV R2,#12 ;;;;;12组 第5个
T0LA5: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA5
; MOV R2,#04
;T0LB5: CLR P3.3
; SETB P3.3
; DJNZ R2,T0LB5
MOV R2,#12 ;;;;;12组 第6个
T0LA6: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA6
; MOV R2,#04
;T0LB6: CLR P3.3
; SETB P3.3
; DJNZ R2,T0LB6
MOV R2,#12 ;;;;;12组 第7个
T0LA7: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA7
; MOV R2,#04
;T0LB7: CLR P3.3
; SETB P3.3
; DJNZ R2,T0LB7
MOV R2,#12 ;;;;;12组 第8个
T0LA8: MOVX A,@DPTR
NOP
CLR P3.3
NOP
NOP
SETB P3.3
INC DPL
DJNZ R2,T0LA8
POP DPL
POP DPH
POP PSW
POP ACC
RETI
BJ: MOV A,15H
CLR C
SUBB A,#2 ;;;;;;;是否小于3组(前2组)
JNC BJ1
MOV TEP,#4 ;;;;;;;小于3组则为5位
AJMP BJGND
BJ1: MOV A,15H
CLR C
SUBB A,#4 ;;;;;;是否小于5组 (前3-4组)
JNC BJ2
MOV TEP,#5 ;;;;;;小于5组则为6位
AJMP BJGND
BJ2: MOV TEP,#2 ;;;;;;3位
BJGND: RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -