COM EQU 20H LINE EQU 31H DAT EQU 21H COLUMN EQU 30H PAGE0 EQU 31H CODE0 EQU 32H COUNT EQU 33H CSA EQU P3.0 ;15 CSB EQU P3.1 ;16 D_I EQU P3.2 ;4 R_W EQU P3.3 ;5 E EQU P3.4 ;6
;================================================= ;中文演示程序段 ORG 0000H AJMP MAIN ORG 20H MAIN: MOV SP,#60H ACALL INT ACALL DELAY ACALL CLEAR ;============================================== MOV R1,#50H MOV R2,#0
YS_1: MOV PAGE0,#02H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#2,YS_1 CALL DELAY CALL DELAY ;========================================= MOV R1,#80H MOV R2,#2 YS_2: MOV PAGE0,#02H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#05,YS_2 ;========================================= MOV R1,#50H MOV R2,#5 YS_3: MOV PAGE0,#04H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#11,YS_3 ; ACALL DELAY10 ;============================================ MOV R1,#60H MOV R2,#11 YS_4: MOV PAGE0,#06H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#15,YS_4
ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL CLEAR
;============================================== MOV R1,#60H MOV R2,#15 YS_5: MOV PAGE0,#02H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#19,YS_5
;============================================= MOV R1,#50H MOV R2,#19 YS_6: MOV PAGE0,#04H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#25,YS_6 ;==============================================
ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL CLEAR ACALL DELAY10 ;============================================= MOV R1,#50H MOV R2,#25 YS_7: MOV PAGE0,#02H MOV COLUMN,R1 MOV CODE0,R2 ACALL CCW_PR ACALL DELAY ACALL DELAY MOV A,R1 ADD A,#10H MOV R1,A INC R2 CJNE R2,#31,YS_7 ;==============================================
ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL DELAY10 ACALL CLEAR ACALL DELAY10
AJMP MAIN
;=============================================== ;延时子程序 DELAY: PUSH 00 PUSH 01 MOV R0,#0FFH DELAY1: MOV R1,#0FFH DELAY2: DJNZ R1,DELAY2 DJNZ R0,DELAY1 POP 01 POP 00 RET DELAY10: MOV R4,#06H DELAY11: ACALL DELAY DJNZ R4,DELAY11 RET ;============================================== ;中文字符写入子程序 CCW_PR: NOP MOV DPTR,#CCTAB MOV A,CODE0 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 CODE0,#00H CCW_1: MOV COUNT,#10H MOV A,PAGE0 ANL A,#07H ORL A,#0B8H MOV COM,A ACALL PRM0 ACALL PRR0 POP COLUMN MOV A,COLUMN CLR C SUBB A,#40H JC CCW_2 MOV COLUMN,A SUBB A,#40H JC CCW_11 MOV COLUMN,A MOV A,PAGE0 SETB ACC.5 MOV PAGE0,A LJMP CCW_2 CCW_11: MOV A,PAGE0 SETB ACC.4 MOV PAGE0,A CCW_2: MOV COM,COLUMN ORL COM,#40H MOV A,PAGE0 ANL A,#30H CJNE A,#10H,CCW_31 ACALL PRM0 LJMP CCW_4 CCW_31: CJNE A,#20H,CCW_32 ACALL PRR0 LJMP CCW_4 CCW_32: NOP CCW_4: MOV A,CODE0 MOVC A,@A+DPTR MOV DAT,A MOV A,PAGE0 ANL A,#30H CJNE A,#10H,CCW_41 ACALL PRM1 LJMP CCW_5 CCW_41: CJNE A,#20H,CCW_42 ACALL PRR1 LJMP CCW_5 CCW_42: NOP CCW_5: INC CODE0 INC COLUMN MOV A,COLUMN CJNE A,#40H,CCW_6 CCW_6: JC CCW_7 MOV COLUMN,#00H MOV A,PAGE0 JB ACC.5,CCW_09 JB ACC.4,CCW_61 SETB ACC.4 MOV PAGE0,A MOV COM,#40H ACALL PRM0 LJMP CCW_7 CCW_61: SETB ACC.5 CLR ACC.4 MOV PAGE0,A MOV COM,#40H ACALL PRR0 CCW_7: DJNZ COUNT,CCW_4 CCW_09: MOV A,PAGE0 JB ACC.7,CCW_9 INC A SETB ACC.7 ANL A,#0CFH MOV PAGE0,A MOV CODE0,#10H LJMP CCW_1 CCW_9: RET ;================================================= PRL0: NOP RET PRL1: NOP RET PRL2: NOP RET ;============================= ;写指令代码子程序(左) PRM0: CLR CSA SETB CSB CLR D_I SETB R_W PRM01: MOV P1,#0FFH SETB E MOV A,P1 CLR E JB ACC.7,PRM01 CLR R_W MOV P1,COM SETB E CLR E RET ;=============================== ;写显示数据子程序(左) PRM1: CLR CSA SETB CSB CLR D_I SETB R_W PRM11: MOV P1,#0FFH SETB E MOV A,P1 CLR E JB ACC.7,PRM11 SETB D_I CLR R_W MOV P1,DAT SETB E CLR E RET
;============================= ;写指令代码子程序(右) PRR0: CLR CSB SETB CSA CLR D_I SETB R_W PRR01: MOV P1,#0FFH SETB E MOV A,P1 CLR E JB ACC.7,PRR01 CLR R_W MOV P1,COM SETB E CLR E RET ;=============================== ;写显示数据子程序(右) PRR1: CLR CSB SETB CSA CLR D_I SETB R_W PRR11: MOV P1,#0FFH SETB E MOV A,P1 CLR E JB ACC.7,PRR11 SETB D_I CLR R_W MOV P1,DAT SETB E CLR E RET ;============================= ;================================ ;初始化子程序 INT: MOV COM,#0C0H ;设置显示起始行为第一行 ACALL PRM0 ACALL PRR0 MOV COM,#3FH ;开显示设置 ACALL PRM0 ACALL PRR0 RET ;================================ ;清屏子程序 CLEAR: MOV R4,#00H CLEAR1: MOV A,R4 ORL A,#0B8H MOV COM,A ACALL PRM0 ACALL PRR0 MOV COM,#40H ACALL PRM0 ACALL PRR0 MOV R3,#40H CLEAR2: MOV DAT,#00H ACALL PRM1 ACALL PRR1 DJNZ R3,CLEAR2 INC R4 CJNE R4,#08H,CLEAR1 RET ;================================= CCTAB: ;0 ;-- 文字: 预 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 020H,022H,02AH,0F2H,02AH,066H,020H,002H,0F2H,01AH,0D6H,012H,012H,0F2H,002H,000H DB 000H,020H,040H,03FH,000H,000H,040H,040H,027H,018H,007H,008H,010H,027H,060H,000H ;1 ;-- 文字: 祝 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,008H,089H,0CEH,0A8H,018H,000H,0FEH,082H,082H,082H,082H,0FEH,000H,000H,000H DB 002H,001H,000H,0FFH,000H,083H,040H,030H,00FH,000H,000H,07FH,080H,080H,0F0H,000H ;2 ;-- 文字: 电 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,000H,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H DB 000H,000H,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H ;3 ;-- 文字: 气 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,020H,010H,08CH,0A7H,0A4H,0A4H,0A4H,0A4H,0A4H,0A4H,0A4H,024H,004H,004H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,00FH,030H,040H,0F0H,000H ;4 ;-- 文字: 杯 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,088H,068H,0FFH,048H,08AH,002H,002H,0C2H,0F2H,00EH,082H,002H,002H,002H,000H DB 002H,001H,000H,0FFH,000H,004H,002H,001H,000H,0FFH,000H,000H,001H,006H,00CH,000H ;5 ;-- 文字: 科 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 010H,012H,092H,072H,0FEH,051H,091H,000H,022H,0CCH,000H,000H,0FFH,000H,000H,000H DB 004H,002H,001H,000H,0FFH,000H,004H,004H,004H,002H,002H,002H,0FFH,001H,001H,000H ;6 ;-- 文字: 技 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,008H,088H,0FFH,048H,028H,000H,0C8H,048H,048H,07FH,048H,0C8H,048H,008H,000H DB 001H,041H,080H,07FH,000H,040H,040H,020H,013H,00CH,00CH,012H,021H,060H,020H,000H ;7 ;-- 文字: 作 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 080H,040H,020H,0F8H,007H,022H,018H,00CH,0FBH,048H,048H,048H,068H,048H,008H,000H DB 000H,000H,000H,0FFH,000H,000H,000H,000H,0FFH,004H,004H,004H,004H,006H,004H,000H ;8 ;-- 文字: 品 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,000H,000H,000H,07EH,022H,022H,022H,022H,022H,022H,07EH,000H,000H,000H,000H DB 000H,07FH,021H,021H,021H,021H,07FH,000H,07FH,021H,021H,021H,021H,07FH,000H,000H ;9 ;-- 文字: 大 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 020H,020H,020H,020H,020H,020H,0A0H,07FH,0A0H,020H,020H,020H,020H,020H,020H,000H DB 000H,080H,040H,020H,010H,00CH,003H,000H,001H,006H,008H,030H,060H,0C0H,040H,000H ;10 ;-- 文字: 赛 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,086H,0AAH,0AAH,0AAH,0FEH,0AAH,0ABH,0AAH,0FEH,0AAH,0AAH,0A2H,086H,002H,000H DB 004H,004H,082H,082H,05FH,042H,022H,01EH,022H,022H,05FH,0C1H,042H,006H,002H,000H ;11 ;-- 文字: 圆 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,0FFH,001H,001H,0DDH,055H,055H,055H,055H,055H,0DDH,001H,001H,0FFH,000H,000H DB 000H,0FFH,040H,040H,067H,050H,048H,047H,048H,050H,067H,040H,040H,0FFH,000H,000H ;12 ;-- 文字: 满 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 010H,061H,006H,0E0H,004H,0A4H,0A4H,0EFH,0A4H,0A4H,0E4H,0AFH,0A4H,0A4H,024H,000H DB 008H,0F8H,007H,000H,000H,0FFH,008H,007H,014H,008H,007H,044H,088H,07FH,000H,000H ;13 ;-- 文字: 成 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,000H,0F8H,048H,048H,048H,0C8H,008H,0FFH,008H,009H,00AH,0C8H,088H,008H,000H DB 040H,030H,00FH,000H,008H,050H,04FH,020H,010H,00BH,00CH,012H,021H,040H,0F0H,000H ;14 ;-- 文字: 功 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,004H,004H,004H,0FCH,004H,014H,014H,010H,090H,07FH,010H,010H,0F0H,000H,000H DB 004H,00CH,004H,004H,003H,042H,022H,011H,00CH,023H,020H,060H,020H,01FH,000H,000H ;15 ;-- 文字: 西 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 002H,0F2H,012H,012H,012H,0FEH,012H,012H,012H,0FEH,012H,012H,012H,0F2H,002H,000H DB 000H,07FH,028H,024H,022H,021H,020H,020H,020H,021H,022H,022H,022H,07FH,000H,000H ;16 ;-- 文字: 南 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 004H,004H,0E4H,024H,024H,064H,0B4H,02FH,024H,0A4H,064H,024H,024H,0E6H,004H,000H DB 000H,000H,07FH,004H,005H,005H,005H,07FH,005H,005H,005H,025H,044H,03FH,000H,000H ;17 ;-- 文字: 交 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,008H,088H,048H,038H,028H,009H,00EH,00CH,008H,098H,028H,068H,048H,008H,000H DB 000H,080H,080H,040H,041H,022H,014H,018H,00CH,016H,023H,061H,0C0H,040H,000H,000H ;18 ;-- 文字: 大 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 020H,020H,020H,020H,020H,020H,0A0H,07FH,0A0H,020H,020H,020H,020H,020H,020H,000H DB 000H,080H,040H,020H,010H,00CH,003H,000H,001H,006H,008H,030H,060H,0C0H,040H,000H ;19 ;-- 文字: 电 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,000H,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H DB 000H,000H,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H ;20 ;-- 文字: 子 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,000H,002H,002H,002H,002H,002H,0E2H,012H,00AH,006H,002H,000H,080H,000H,000H DB 001H,001H,001H,001H,001H,041H,081H,07FH,001H,001H,001H,001H,001H,001H,001H,000H ;21 ;-- 文字: 科 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 010H,012H,092H,072H,0FEH,051H,091H,000H,022H,0CCH,000H,000H,0FFH,000H,000H,000H DB 004H,002H,001H,000H,0FFH,000H,004H,004H,004H,002H,002H,002H,0FFH,001H,001H,000H ;22 ;-- 文字: 技 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,008H,088H,0FFH,048H,028H,000H,0C8H,048H,048H,07FH,048H,0C8H,048H,008H,000H DB 001H,041H,080H,07FH,000H,040H,040H,020H,013H,00CH,00CH,012H,021H,060H,020H,000H ;23 ;-- 文字: 协 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 010H,010H,0FFH,010H,010H,010H,0C8H,008H,008H,0FFH,008H,008H,0F8H,080H,000H,000H DB 000H,000H,07FH,000H,000H,043H,020H,018H,007H,000H,020H,040H,03FH,000H,003H,000H ;24 ;-- 文字: 会 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 080H,040H,040H,020H,050H,048H,044H,043H,044H,048H,050H,020H,060H,0C0H,040H,000H DB 000H,000H,042H,0E2H,052H,04AH,046H,062H,022H,022H,02AH,0F2H,062H,000H,000H,000H
;25 ;-- 文字: L -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,0F8H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H DB 020H,03FH,020H,020H,020H,020H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H ;26 ;-- 文字: C -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 0C0H,030H,008H,008H,008H,008H,038H,000H,000H,000H,000H,000H,000H,000H,000H,000H DB 007H,018H,020H,020H,020H,010H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H ;27 ;-- 文字: D -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 008H,0F8H,008H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H DB 020H,03FH,020H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H ;28 ;-- 文字: 演 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 010H,021H,086H,060H,000H,00CH,0D4H,054H,055H,0F6H,054H,054H,0D4H,00CH,004H,000H DB 004H,0FCH,003H,000H,000H,000H,08FH,069H,009H,00FH,009H,029H,0CFH,000H,000H,000H ;29 ;-- 文字: 示 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 000H,020H,020H,022H,022H,022H,022H,0E2H,022H,022H,022H,022H,022H,020H,020H,000H DB 010H,008H,004H,003H,000H,040H,080H,07FH,000H,000H,001H,002H,00CH,018H,000H,000H ;30 ;-- 文字: 器 -- ;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -- DB 040H,040H,04FH,049H,049H,0C9H,0CFH,070H,0C0H,0CFH,049H,059H,069H,04FH,000H,000H DB 002H,002H,07EH,045H,045H,044H,07CH,000H,07CH,044H,045H,045H,07EH,006H,002H,000H
END
|