📄 word-4.asm
字号:
;;;;向左滚动
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP T0
ORG 0023H
LJMP COMM
MAIN: MOV A,#21H
MOV TMOD,A ;定时器1工作在方式2,定时器0工作在方式1
MOV TH1,#0F3H
MOV TL1,#0F3H
MOV SCON,#70H
MOV PCON,#80H ;10
MOV R4,#04H
MOV 40H,#8
MOV 41H,#0
MOV 36H,#80H
MOV 37H,#40H
SETB 05H
SETB P1.6
CLR EX0 ;关闭外部中断0
CLR EX1 ;关闭外部中断1
CLR ET0 ;禁止定时器0中断
SETB ES ;打开串行中断 ;20
CLR ET1 ;禁止定时器1中断
SETB EA ;开CPU中断
SETB TR1 ;启动定时器1
MOV 50H,#08H
NEXT: MOV R2,#3FH
CLR P3.3
WAIT: INC R2
MOV DPH,36H
MOV DPL,37H
WAIT1: MOV P1,R2
MOVX A,@DPTR
LCALL DISP ;40
INC P1
MOVX A,@DPTR
LCALL DISP
INC DPTR
DJNZ R4,WAIT1
MOV R4,#04H
MOV P1,R2
JB 05H,WAIT2
MOVX A,@DPTR
LCALL DISP
INC P1
WAIT2: MOVX A,@DPTR
LCALL DISP1
INC R2
CLR TR0
CPL P1.6 ;OE信号
SETB P3.5
CLR P3.5 ;LSTR
CPL P1.7 ;HCLK信号; 50
CPL P1.7
SETB P3.3
CPL P1.6
SETB TR0
CJNE R2,#5FH,WAIT
SJMP NEXT
DISP: MOV R5,#8
S1: RRC A ;60
MOV P3.2,C
CPL P3.4
CPL P3.4
DJNZ R5,S1
RET
DISP1: MOV R5,41H
CJNE R5,#00H,S10
SJMP ENDD
S10: MOV 42H,41H
S11: RRC A ;60
MOV P3.2,C
CPL P3.4
CPL P3.4
DJNZ 42H,S11
ENDD: RET
COMM: PUSH ACC
CLR RI
CLR ES
CLR ET0
CLR TF0
SETB 00H
MOV R1,#40H
MOV 26H,#0
MOV 27H,#0
MOV DPTR,#8000H
NEXT1: CPL 00H
CLR TR0
MOV A,SBUF
MOV 39H,A
CLR C
SUBB A,#80H
JNC HAN
;;;;;;;;英文字母
MOV A,39H
CLR C
SUBB A,#20H ;;21 ;80
JNC YIN
MOV A,#0
YIN: ADD A,#0BBH ;;;BC
MOV 50H,A
CLR A
ADDC A,#0
MOV 51H,A
CPL 00H
SJMP OVER ;90
;;;;;;;;;;汉字
HAN: MOV A,39H
SUBB A,#0A1H
JB 00H,TWO
CJNE A,#0EH,H1
H1: JC H2
SUBB A,#4
H2: MOV B,#94
MUL AB ;10
MOV 50H,A ;ERROR
XCH A,B
MOV 51H,A
SJMP OVER1
TWO: ADD A,50H
MOV 50H,A
JNC OVER
MOV A,51H
ADD A,#1 ;11
MOV 51H,A
OVER: MOV A,50H
MOV P1,R1
MOVX @DPTR,A
MOV A,51H
INC R1
MOV P1,R1
MOVX @DPTR,A
INC R1
MOV A,26H
ADD A,#1
MOV 26H,A
MOV A,27H
ADDC A,#0
MOV 27H,A
CJNE R1,#60H,OVER1
MOV R1,#40H
INC DPTR
OVER1: MOV TH0,#00H
MOV TL0,#00H
SETB TR0
GOON: JBC RI,NEXT1
JNB TF0,GOON
CLR TF0
CLR TR0 ;12
INC 27H
MOV 3AH,26H
MOV 3BH,27H
MOV 3CH,26H
MOV 3DH,27H
LCALL THERE
MOV TH0,#00H
MOV TL0,#00H
MOV 36H,#80H
MOV 37H,#40H
SETB TR0
SETB ET0
SETB ES
POP ACC
RETI
;ASCII码: 30H...DPH 31H...DPL 32H...R0
;点阵: 33H...DPH 34H...DPL 35H...R0
;输出: 36H...DPH 37H...DPL 38H...R0
THERE: MOV 36H,#80H
MOV 37H,#40H
MOV 38H,#40H
MOV 30H,#80H
MOV 31H,#00H
MOV 32H,#40H
MOV 4AH,#60H
MOV R3,#8
TH1: MOV DPH,30H
MOV DPL,31H
MOV P1,32H
MOVX A,@DPTR
MOV 34H,A
INC P1
MOVX A,@DPTR
ANL A,#7FH
ORL A,#40H
MOV 33H,A
MOV R7,#40H
MOV R0,4AH
MOV DPH,33H
MOV DPL,34H
TH2: MOV P1,R7
MOVX A,@DPTR
MOV @R0,A
INC R0
INC R7
CJNE R7,#60H,TH2
MOV R7,#40H
MOV R6,#2
TH3: MOV R0,4AH
TH4: LCALL LAY
MOV A,2AH
MOV DPH,36H
MOV DPL,37H
MOV P1,38H
MOVX @DPTR,A
INC 38H
DJNZ R6,TH4
MOV R6,#2
DJNZ R3,TH3
MOV R3,#8
MOV 4AH,#70H
MOV A,38H
CJNE A,#60H,TH3
MOV 4AH,#60H
MOV 38H,#40H
MOV A,37H
ADD A,#1
MOV 37H,A
MOV A,36H
ADDC A,#0
MOV 36H,A
INC 32H
INC 32H
MOV A,32H
CJNE A,#60H,RETU1
MOV 32H,#40H
MOV A,31H
ADD A,#1
MOV 31H,A ;;;;316 LINE
MOV A,30H
ADDC A,#0
MOV 30H,A
RETU1: DJNZ 26H,TH1
DJNZ 27H,TH1
RET
LAY: MOV A,@R0
RRC A
MOV @R0,A
MOV 50H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 51H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 52H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 53H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 54H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 55H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 56H,C
INC R0
MOV A,@R0
RRC A
MOV @R0,A
MOV 57H,C
INC R0
RET
T0: PUSH ACC
MOV TH0,#00H
MOV TL0,#00H
DJNZ 40H,RETU
MOV 40H,#02H
INC 41H
MOV A,41H
CJNE A,#8,RETU
MOV 41H,#0
CPL 05H
JNB 05H,RETU
MOV A,37H
ADD A,#1
MOV 37H,A
MOV A,36H
ADDC A,#0
MOV 36H,A
DJNZ 3AH,RETU
DJNZ 3BH,RETU
MOV 3AH,3CH
MOV 3BH,3DH
MOV 36H,#80H
MOV 37H,#40H
RETU: POP ACC
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -