📄 自定义字符的显示程序.txt
字号:
;******************OCM4x8C串口******************
CS EQU P2.1
STD EQU P2.0
SCLK EQU P1.7
RS_STU EQU 20H.0
LCD_X EQU 30H
LCD_Y EQU 31H
LCD_X1 EQU 32H
LCD_Y1 EQU 33H
COUNT EQU 34H
COUNT1 EQU 35H
COUNT2 EQU 36H
COUNT3 EQU 37H
LCD_DATA EQU 38H
LCD_DATA1 EQU 39H
LCD_DATA2 EQU 3AH
DA_IN EQU 3BH
WR_COUNT1 EQU 3CH
WR_COUNT2 EQU 3DH
;***********************************************
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: NOP
NOP
MOV SP,#5FH
;********************初始化**********************
LGS0: MOV A,#34H ;34H--扩充指令操作
LCALL SEND_I
MOV A,#30H ;30H--基本指令操作
LCALL SEND_I
MOV A,#01H ;清除显示
LCALL SEND_I
LCALL DELAY2
LCALL DELAY2
MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
LCALL SEND_I
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL SEND_I
LCALL CLRRAM
;***********************************************
LOO:
MOV DPTR,#TAB10
MOV LCD_X,#80H
MOV LCD_Y,#80H
LCALL SHOW_32X29
LCALL DELAY3
MOV DPTR,#TAB11
MOV LCD_X,#82H
MOV LCD_Y,#80H
LCALL SHOW_32X29
LCALL DELAY3
MOV DPTR,#TAB12
MOV LCD_X,#84H
MOV LCD_Y,#80H
LCALL SHOW_32X29
LCALL DELAY3
MOV DPTR,#TAB13
MOV LCD_X,#86H
MOV LCD_Y,#80H
LCALL SHOW_32X29
LCALL DELAY3
JMP LOO
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WR_ZB: MOV A,#36H;#34H控制字会闪烁的!
LCALL SEND_I
MOV A,LCD_Y
LCALL SEND_I
MOV A,LCD_X
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序
MOV LCD_DATA2,#00H
LCALL LAT_DISP
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序
MOV LCD_X,#80H
LAT_DISP1: MOV LCD_Y,#80H
CLR F0
MOV COUNT2,#20H
LAT_DISP2: MOV COUNT1,#10H
LCALL WR_ZB
LAT_DISP3: JB F0,LAT_DISP32
MOV LCD_DATA,LCD_DATA1
AJMP LAT_DISP31
LAT_DISP32: MOV LCD_DATA,LCD_DATA2
LAT_DISP31: MOV A,LCD_DATA
LCALL SEND_D
DJNZ COUNT1,LAT_DISP31
INC LCD_Y
CPL F0
DJNZ COUNT2,LAT_DISP2
MOV LCD_X,#88H
DJNZ COUNT3,LAT_DISP1
RET
;***********************************************
SEND_D: SETB RS_STU ;写数据子程序
MOV DA_IN,A
LCALL SERIAL_WR
RET
SEND_I: CLR RS_STU ;写指令子程序
MOV DA_IN,A
LCALL SERIAL_WR
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;DA_IN: 数据或指令
;RS_STU: 数据指令选择
;WR_COUNT1: 计数器1
;WR_COUNT2: 计数器2
SERIAL_WR: PUSH ACC
MOV A,DA_IN
SETB CS
MOV WR_COUNT1,#05H
SETB STD ;1
SERIAL_WR1: CLR SCLK
SETB SCLK
DJNZ WR_COUNT1,SERIAL_WR1
CLR STD ;RW
CLR SCLK
SETB SCLK
JNB RS_STU,CLR_RS
SETB STD ;写数据
SJMP SETB_RS
CLR_RS: CLR STD ;写指令
SETB_RS: CLR SCLK
SETB SCLK
CLR STD ;0
CLR SCLK
SETB SCLK
MOV WR_COUNT1,#02H
SERIAL_WR2: MOV WR_COUNT2,#04H
SERIAL_WR21: RLC A
MOV STD,C
CLR SCLK
SETB SCLK
DJNZ WR_COUNT2,SERIAL_WR21
MOV WR_COUNT2,#04H
CLR STD ;0
SERIAL_WR22: CLR SCLK
SETB SCLK
DJNZ WR_COUNT2,SERIAL_WR22
DJNZ WR_COUNT1,SERIAL_WR2
CLR SCLK
CLR CS
LCALL DELAY2
POP ACC
RET
SHOW_32X29: ;所显示的汉字是X坐标上占用2个地址,即占用两个字的长度共32个点,纵向占用29个点为29列
MOV 40H,LCD_X
;MOV DPTR,#TAB9 ;显示汉字和字符
;MOV LCD_Y,#80H
;MOV LCD_X,#80H
MOV R0,#29
KJ: MOV R1,#2
KI:
LCALL WR_ZB
CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
INC LCD_X
DJNZ R1,KI
INC LCD_Y
MOV LCD_X,40H
DJNZ R0,KJ
MOV A,#36H;显示操作指令
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;***********************************************
DELAY3: MOV R5,#16H
DEL31: MOV R6,#0FFH
DEL32: MOV R7,#0FFH
DEL33: DJNZ R7,DEL33
DJNZ R6,DEL32
DJNZ R5,DEL31
RET
DELAY2: MOV R6,#06H
DEL21: MOV R7,#18H
DEL22: DJNZ R7,DEL22
DJNZ R6,DEL21
RET
TAB8: DB 00H,00H,00H,00H,04H,00H,00H,00H,06H,00H,00H,0C0H,03H,1FH,0FFH,0E0H ;福
DB 03H,8CH,00H,00H,03H,80H,00H,00H,01H,03H,01H,80H,00H,0C3H,0FFH,80H
DB 7FH,0E3H,01H,80H,00H,0C3H,01H,80H,01H,0C3H,01H,80H,01H,83H,0FFH,80H
DB 03H,83H,01H,80H,03H,0C0H,00H,00H,07H,0EFH,0FFH,0E0H,0FH,7FH,0FFH,0E0H
DB 1FH,3CH,30H,0C0H,1BH,2CH,30H,0C0H,33H,0CH,30H,0C0H,63H,0FH,0FFH,0C0H
DB 03H,0CH,30H,0C0H,03H,0CH,30H,0C0H,03H,0CH,30H,0C0H,03H,0CH,30H,0C0H
DB 03H,0FH,0FFH,0C0H,03H,0CH,00H,0C0H,03H,0CH,00H,0C0H,03H,0CH,00H,00H
DB 00H,00H,00H,00H
TAB9:DB 00H,00H,00H,00H,03H,00H,30H,00H,03H,80H,38H,00H,03H,80H,30H,00H ;娃
DB 03H,00H,30H,00H,07H,00H,30H,00H,07H,00H,31H,0C0H,06H,37H,0FFH,0E0H
DB 7FH,0F8H,30H,00H,26H,38H,30H,00H,0EH,30H,30H,00H,0CH,30H,30H,60H
DB 0CH,70H,30H,0E0H,1CH,7FH,0FFH,0F0H,18H,60H,38H,00H,18H,60H,38H,00H
DB 18H,0E0H,30H,00H,38H,0C0H,30H,80H,3CH,0C0H,31H,0C0H,0FH,0C7H,0FFH,0C0H
DB 03H,0E0H,30H,00H,03H,0F0H,30H,00H,03H,78H,30H,00H,06H,18H,30H,00H
DB 0CH,00H,30H,60H,18H,3FH,0FFH,0F0H,30H,3FH,0FFH,0F0H,60H,00H,00H,00H
DB 00H,00H,00H,00H
TAB10:DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,0F0H,00H,00H,00H,0F0H,00H,00H ;欠
DB 00H,0E0H,00H,00H,01H,0C0H,00H,00H,01H,0C0H,01H,80H,01H,0FFH,0FFH,0C0H
DB 03H,80H,03H,0C0H,03H,00H,07H,80H,06H,07H,06H,00H,0EH,07H,04H,00H
DB 0CH,07H,00H,00H,18H,0FH,00H,00H,30H,0FH,00H,00H,00H,0FH,80H,00H
DB 00H,0FH,80H,00H,00H,1CH,0C0H,00H,00H,1CH,0C0H,00H,00H,18H,0E0H,00H
DB 00H,38H,70H,00H,00H,70H,38H,00H,00H,60H,3CH,00H,00H,0E0H,1EH,00H
DB 03H,0C0H,0FH,80H,07H,00H,07H,0F0H,1EH,00H,03H,0F0H,78H,00H,00H,0C0H
DB 00H,00H,00H,00H
TAB11:DB 00H,00H,00H,00H,00H,10H,0C0H,00H,00H,18H,0E0H,00H,00H,18H,0C0H,00H ;费
DB 1FH,0FFH,0FFH,80H,0FH,0FFH,0FFH,80H,00H,18H,0C3H,00H,07H,0FFH,0FFH,00H
DB 0FH,0FFH,0FFH,00H,0EH,38H,0C3H,40H,0FH,0FFH,0FFH,0E0H,0CH,30H,0C0H,0E0H
DB 00H,60H,0C0H,0C0H,01H,0C0H,0C7H,0C0H,07H,80H,0C3H,80H,1FH,0FFH,0FFH,00H
DB 31H,0FFH,0FEH,00H,01H,87H,0CH,00H,01H,87H,0CH,00H,01H,86H,0CH,00H
DB 01H,86H,0CH,00H,01H,8EH,0CH,00H,01H,8DH,0CCH,00H,00H,1CH,0F8H,00H
DB 00H,38H,3EH,00H,00H,0F0H,0FH,00H,07H,0C0H,07H,80H,3EH,00H,03H,00H
DB 00H,00H,00H,00H
TAB12:DB 00H,00H,00H,00H,01H,01H,00H,00H,03H,81H,0C0H,00H,03H,80H,0E0H,00H ;停
DB 03H,00H,0E0H,0C0H,07H,7FH,0FFH,0E0H,06H,00H,00H,00H,06H,0CH,06H,00H
DB 0EH,0FH,0FFH,00H,0FH,0CH,06H,00H,1EH,0CH,06H,00H,1EH,0FH,0FEH,00H
DB 36H,0CH,06H,00H,36H,48H,04H,40H,66H,7FH,0FFH,0E0H,46H,40H,00H,0E0H
DB 06H,0C0H,00H,80H,07H,0C0H,03H,80H,06H,0BFH,0FFH,80H,06H,00H,60H,00H
DB 06H,00H,60H,00H,06H,00H,60H,00H,06H,00H,60H,00H,06H,00H,60H,00H
DB 06H,00H,60H,00H,06H,07H,0E0H,00H,0EH,03H,0E0H,00H,0EH,01H,0C0H,00H
DB 00H,00H,00H,00H
TAB13:DB 00H,00H,00H,00H,03H,00H,00H,00H,03H,80H,00H,00H,03H,06H,06H,00H ;机
DB 03H,07H,0FFH,00H,03H,07H,0FH,00H,03H,07H,0EH,00H,03H,37H,0EH,00H
DB 7FH,0F7H,0EH,00H,3FH,0FFH,0EH,00H,03H,07H,0EH,00H,07H,07H,0EH,00H
DB 07H,87H,0EH,00H,07H,0E7H,0EH,00H,0FH,77H,0EH,00H,0FH,3FH,0EH,00H
DB 0FH,17H,0EH,00H,1BH,07H,0EH,00H,1BH,06H,0EH,00H,33H,06H,0EH,00H
DB 33H,06H,0EH,20H,63H,0EH,0EH,60H,43H,0CH,0EH,60H,03H,1CH,0EH,60H
DB 03H,18H,0EH,70H,03H,30H,07H,0F0H,03H,60H,07H,0E0H,03H,40H,00H,00H
DB 00H,00H,00H,00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -