📄 yy24.asm
字号:
CWADD1 EQU 08000H ;写指令代码地址(E1)
DWADD1 EQU 08001H ;写显示数据地址(E1)
CRADD1 EQU 08002H
DRADD1 EQU 08003H
CWADD2 EQU 08004H
DWADD2 EQU 08005H ;写显示数据地址(E2)
CRADD2 EQU 08006H
DRADD2 EQU 08007H
PD1 EQU 3DH
COLUMN EQU 30H
PAGE_ EQU 31H
CODE_ EQU 32H
COUNT EQU 33H
DIR EQU 34H
DTP1 EQU 35H
DTP2 EQU 36H
DPT3 EQU 37H
CTEMP EQU 38H
COM EQU 20H
DAT EQU 21H
ORG 0
JMP MAIN
MOV DPTR,#0F002H
MOV A,#56H
MOVX @DPTR,A
MOV A,#0
MOVX A,@DPTR
JMP MAIN
;----------------------
;初始化程序
INIT: MOV COM,#0E2H
LCALL PR0
LCALL PR3
MOV COM, #0A4H
LCALL PR0
LCALL PR3
MOV COM,#0A9H
LCALL PR0
LCALL PR3
MOV COM,#0A0H
LCALL PR0
LCALL PR3
MOV COM,#0C0H
LCALL PR0
LCALL PR3
MOV COM,#0AFH
LCALL PR0
LCALL PR3
RET
;----------------------
;清屏
CLEAR: MOV R4,#00H
CLEAR1: MOV A,R4
ORL A,#0B8H
MOV COM,A
LCALL PR0
LCALL PR3
MOV COM,#00H
LCALL PR0
LCALL PR3
MOV R3,#50H
CLEAR2: MOV DAT,#00H
LCALL PR1
LCALL PR4
DJNZ R3,CLEAR2
INC R4
CJNE R4,#04H,CLEAR1
RET
;----------------------
;1.写指令代码子程序(E1)
PR0: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1
PR01:MOVX A,@DPTR
JB ACC.7,PR01
MOV DPTR,#CWADD1
MOV A,COM
MOVX @DPTR,A
POP DPH
POP DPL
RET
;-------------------
;2.写显示数据子程序(E1)
PR1: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1
PR11:MOVX A,@DPTR
JB ACC.7,PR11
MOV DPTR,#DWADD1
MOV A,DAT
MOVX @DPTR,A
POP DPH
POP DPL
RET
;-----------------------
;3.读显示数据子程序(E1)
PR2: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1
PR21:MOVX A,@DPTR
JB ACC.7,PR21
MOV DPTR,#DWADD1
MOVX A,@DPTR
MOVX DAT,A
POP DPH
POP DPL
RET
;--------------------------
;4.写指令代码子程序(E2)
PR3: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2
PR31:MOVX A,@DPTR
JB ACC.7,PR31
MOV DPTR,#CWADD2
MOV A,COM
MOVX @DPTR,A
POP DPH
POP DPL
RET
;-----------------------------
;5.写显示数据子程序(E2)
PR4: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2
PR41:MOVX A,@DPTR
JB ACC.7,PR41
MOV DPTR,#DWADD2
MOV A,DAT
MOVX @DPTR,A
POP DPH
POP DPL
RET
;---------------------------
;6.读显示数据子程序(E2)
PR5: PUSH DPL
PUSH DPH
MOV DPTR,#CRADD2
PR51:MOVX A,@DPTR
JB ACC.7,PR51
MOV DPTR,#DWADD2
MOVX A,@DPTR
MOVX DAT,A
POP DPH
POP DPL
RET
; 中文显示子程序
CCW_PR: MOV DPTR,#CCTAB
MOV A,CODE_
MOV B,#20H
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
PUSH COLUMN
PUSH COLUMN
MOV CODE_,#00H
CCW_1: MOV COUNT,#10H
MOV A,PAGE
ANL A,#03H
ORL A,#0B8H
MOV COM,A
LCALL PR0
LCALL PR3
POP COLUMN
MOV A,COLUMN
CLR C
SUBB A,#PD1
JC CCW_2
MOV COLUMN,A
MOV A,PAGE_
SETB ACC.3
MOV PAGE_,A
CCW_2: MOV COM,COLUMN
MOV A,PAGE_
JNB ACC.3,CCW_3
LCALL PR3
LJMP CCW_4
CCW_3: LCALL PR0
CCW_4: MOV A,CODE_
MOVC A,@A+DPTR
MOV DAT,A
MOV A,PAGE_
JNB ACC.3,CCW_5
LCALL PR4
LJMP CCW_6
CCW_5: LCALL PR1
CCW_6: INC CODE_
INC COLUMN
MOV A,COLUMN
CJNE A,#PD1,CCW_7
CCW_7: JC CCW_8
MOV A,PAGE_
JB ACC.3,CCW_8
SETB ACC.3
MOV PAGE_,A
MOV COM,#00H
LCALL PR3
CCW_8: DJNZ COUNT,CCW_4
MOV A,PAGE_
JB ACC.7,CCW_9
INC A
SETB ACC.7
CLR ACC.3
MOV PAGE_,A
MOV CODE_,#10H
LJMP CCW_1
CCW_9: RET
;-----------------------------
;中文字符库
CCTAB:
SMALL0:
; DB 38H,44H,44H,44H,44H,44H,38H,00H
SMALL1:
; DB 10H,30H,50H,10H,10H,7CH,00H
SMALL2:
; DB 38H,44H,04H,08H,10H,20H,7CH,00H
SMALL3:
; DB 78H,84H,04H,38H,04H,84H,78H,00H
DB 000H,004H,0E4H,024H,024H,064H,0B4H,02FH
DB 024H,0A4H,064H,024H,024H,0E6H,004H,000H
DB 000H,000H,07FH,004H,005H,005H,005H,07FH
DB 005H,005H,005H,025H,044H,03FH,000H,000H
DB 000H,004H,004H,0E4H,024H,024H,025H,026H
DB 024H,024H,024H,0E4H,006H,004H,000H,000H
DB 000H,020H,010H,019H,00DH,041H,081H,07FH
DB 001H,001H,005H,00DH,038H,010H,000H,000H
DB 000H,080H,060H,0F8H,007H,00AH,028H,028H
DB 028H,0FFH,028H,028H,028H,028H,000H,000H
DB 001H,000H,000H,0FFH,000H,001H,001H,001H
DB 001H,0FFH,001H,021H,041H,03FH,000H,000H
DB 008H,008H,089H,0CEH,028H,018H,002H,07AH
DB 04AH,04AH,04AH,04AH,04AH,07AH,002H,000H
DB 002H,001H,000H,0FFH,001H,002H,0FFH,049H
DB 049H,049H,07FH,049H,049H,049H,0FFH,000H
;----------------------------------------
; 中文演示显示程序段
MAIN:
LCALL INIT
LCALL CLEAR
MOV CTEMP,#0
MOV DIR,#0
AAA: MOV PAGE_,#02H
MOV COLUMN,CTEMP
MOV CODE_,#00H
LCALL CCW_PR
MOV PAGE_,#02H
MOV A,CTEMP
ADD A,#10H
MOV COLUMN,A
MOV CODE_,#01H
LCALL CCW_PR
MOV PAGE_,#02H
MOV A,CTEMP
ADD A,#20H
MOV COLUMN,A
MOV CODE_,#02H
LCALL CCW_PR
MOV PAGE_,#02H
MOV A,CTEMP
ADD A,#30H
MOV COLUMN,A
MOV CODE_,#03H
LCALL CCW_PR
LJMP $
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,DIR
CJNE A,#0,LEFT
INC CTEMP
MOV A,CTEMP
CJNE A,#58,AAA
MOV DIR,#1
LJMP AAA
LEFT:
DEC CTEMP
MOV A,CTEMP
CJNE A,#0,AAA
MOV DIR,#0
LJMP AAA
SJMP $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -