📄 demot.asm
字号:
;演示程序
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
MOV P3,#0C3H
LCALL INT
LCALL CLEAR
; LJMP DISTEXT
LJMP DISCHA
; LJMP DRAW
; LJMP S_UP
LJMP S_DOWN
;============= 西文显示演示程序段 ====================
DISTEXT: MOV O_YL,#85H ; 8x8点阵字体, 第6页
MOV O_XL,#30H ; 起始列为第48列
MOV CODE,#34H ; 字符代码
LCALL CW_PR
MOV O_YL,#85H
MOV O_XL,#3CH
MOV CODE,#45H
LCALL CW_PR
MOV O_YL,#85H
MOV O_XL,#48H
MOV CODE,#4CH
LCALL CW_PR
MOV O_YL,#85H
MOV O_XL,#54H
MOV CODE,#1AH
LCALL CW_PR
MOV R7,#00H
MOV R6,#60H
LOOP: MOV A,R7
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV CODE,A
MOV O_YL,#05H ; 6X8点阵字体, 第4页
MOV O_XL,R6
LCALL CW_PR
INC R7
MOV A,#06H
ADD A,R6
MOV R6,A
CJNE R7,#08H,LOOP
SJMP $
TAB1: DB 16H,12H,16H,11H,16H,18H,12H,17H
;============= 中文演示显示程序段 ==================
DISCHA: MOV O_YL,#02H ; 第3页
MOV O_XL,#35H ; 第54列
MOV CODE,#00H ; 汉字代码
LCALL CCW_PR
MOV O_YL,#02H ; 第3页
MOV O_XL,#4BH ; 第76列
MOV CODE,#01H ; 汉字代码
LCALL CCW_PR
MOV O_YL,#02H ; 第3页
MOV O_XL,#63H ; 第100列
MOV CODE,#02H ; 汉字代码
LCALL CCW_PR
MOV O_YL,#02H ; 第3页
MOV O_XL,#7BH ; 第124列
MOV CODE,#03H ; 汉字代码
LCALL CCW_PR
SJMP $
;============== 中文字符库 ==================================
CCTAB: DB 082H,08AH,092H,0B2H,002H,0A7H,092H,05EH;蓬90 = 00H
DB 02AH,0AFH,02AH,05AH,04AH,083H,082H,000H
DB 000H,080H,040H,03FH,041H,090H,095H,095H
DB 095H,0FFH,095H,095H,095H,0D0H,040H,000H
DB 080H,064H,024H,024H,03FH,024H,0A6H,064H;勃90 = 01H
DB 020H,020H,0FFH,020H,020H,0F0H,020H,000H
DB 000H,008H,049H,089H,07DH,00BH,089H,040H
DB 030H,00EH,041H,080H,040H,03FH,000H,000H
DB 040H,042H,044H,0CCH,000H,020H,022H,0E2H;远90 = 02H
DB 022H,022H,0E2H,023H,032H,020H,000H,000H
DB 000H,040H,020H,01FH,020H,050H,04CH,043H
DB 040H,040H,047H,048H,048H,06EH,020H,000H
DB 020H,020H,020H,020H,020H,020H,0A0H,07FH;大90 = 03H
DB 0A0H,020H,020H,020H,020H,030H,020H,000H
DB 000H,040H,040H,020H,010H,00CH,003H,000H
DB 001H,006H,008H,010H,020H,060H,020H,000H
;=========== 滚动演示程序段 ==============================
S_UP: MOV R7,#00H ; 向上滚动程序
S_UP1: MOV A,#0C0H ; 显示起始行设置代码
ORL A,R7
MOV COM,A
LCALL PR1
LCALL PR4
LCALL PR7
LCALL DELAY
INC R7
CJNE R7,#40H,S_UP1
MOV R7,#00H
SJMP S_UP1
;------------------------------------------------------------
S_DOWN: MOV R7,#3FH ; 向下滚动程序
MOV COM,#0C0H ; 显示起始行设置代码
LCALL PR1
LCALL PR4
LCALL PR7
LCALL DELAY
S_DOWN1: MOV A,#0C0H ; 显示起始行设置代码
ORL A,R7
MOV COM,A
LCALL PR1
LCALL PR4
LCALL PR7
LCALL DELAY
DJNZ R7,S_DOWN1
SJMP S_DOWN
;---------------------------------------
DELAY: MOV R6,#00H ; 延时子程序
MOV R5,#00H
DELAY1: NOP
DJNZ R5,DELAY1
DJNZ R6,DELAY1
RET
;============== 绘点演示程序段 ======================
DRAW: MOV R6,#00H ; 绘点
MOV R7,#80H
LOOP1: MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
INC R7
CJNE R7,#0C0H,LOOP1
LOOP2: DEC R7
MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
CJNE R7,#80H,LOOP2
LOOP3: MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
INC R7
CJNE R7,#0C0H,LOOP3
;----------------------------------------------------
WIPE: MOV R6,#00H ; 消点
MOV R7,#00H
LOOP4: MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
INC R7
CJNE R7,#040H,LOOP4
LOOP5: DEC R7
MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
CJNE R7,#00H,LOOP5
LOOP6: MOV O_XL,R6 ; 列地址设置
MOV O_YL,R7 ; 行地址设置
LCALL W_DOT
INC R6
INC R7
CJNE R7,#40H,LOOP6
SJMP $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -