⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 自定义字符的显示程序.txt

📁 12832LCD自定义的字符显示程序
💻 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 + -