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

📄 192_64cog_drv.a51

📁 192*64COG液晶驱动.用于显示汉字
💻 A51
字号:
NAME	LCD_Drv


?PR?_CLR_LCD?LCD_Drv 			SEGMENT CODE
?PR?_InitializationLcd?LCD_Drv	SEGMENT	CODE
?PR?_SET_LCD_LIGHT?LCD_Drv		SEGMENT	CODE
;?PR?_W_Lcd?LCD_Drv				SEGMENT	CODE
?PR?_W_DOT?LCD_Drv				SEGMENT	CODE
?PR?_R_ZK?LCD_Drv				SEGMENT	CODE

PUBLIC	_CLR_LCD
PUBLIC	_InitializationLcd
PUBLIC	_SET_LCD_LIGHT
;PUBLIC	_W_Lcd
PUBLIC	_W_DOT
PUBLIC	_R_ZK

EXTRN	DATA	(ROW,LINE)
EXTRN	DATA	(Bar)

LCD_SCK BIT P1.7; 
LCD_SI	BIT P1.5;
LCD_CMD BIT P3.5;
LCDCS1 BIT P1.6;
LCDCS2 BIT P1.3;

;ZJZKADDR	DATA	01C40H		;用于存放自检时要用到的部份ASCII码的点阵


;读字库
;R7为字节数
;Page为开始页面,Address为开始地址
RSEG	?PR?_R_ZK?LCD_Drv

_R_ZK:
	MOV		DPTR, #ZJZKADDR
	CLR		C
	MOV		A, DPL
	ADD		A, r5
	MOV		DPL, A
	MOV		A, DPH
	ADDC	A, r4
	MOV		DPH, A
	
	MOV		R0,#Bar
R_ZK1:
	CLR		A
	MOVC	A,@A+DPTR
	INC		DPTR
	MOV		@R0,A
	INC		R0
	DJNZ	R7,R_ZK1	
	RET

;清屏
RSEG  ?PR?_CLR_LCD?LCD_Drv

_CLR_LCD:
	CLR		LCDCS1
	CLR		LCDCS2

	MOV		0,7
	MOV		R3,#0
CLR_LCD1:	
	MOV		R7,#0
	LCALL	_SET_Y_ADDR
	MOV		7,3
	LCALL 	_SET_X_ADDR
	MOV		R1,#96			;128
CLR_Lcd3:
	MOV		A,R0
	LCALL	SENDLCD_DATA
	DJNZ	R1,CLR_Lcd3
	INC		R3
	CJNE	R3,#8,CLR_LCD1
	RET

;初始化液晶
;R7为液晶对比度值
RSEG  ?PR?_InitializationLcd?LCD_Drv

_InitializationLcd:
	MOV		A, R7
	PUSH	ACC
	CLR		LCDCS1
	CLR		LCDCS2
	
	MOV		A,#0E2H			;Initialise the internal fuction
	LCALL	SENDLCD_ORD
	MOV		A,#0A2H			;Set LCD Bias
	LCALL	SENDLCD_ORD
	MOV		A,#0A0H			;ACD Seting (normal direction)
	LCALL	SENDLCD_ORD
	MOV		A,#0C8H			;Selects COM output scan direction
	LCALL	SENDLCD_ORD
	MOV		A,#2FH
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	MOV		A,#81H			;
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	POP		ACC
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	MOV		A,#23H
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	MOV		A,#0AFH
	LCALL	SENDLCD_ORD
	MOV		A,#60H
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	RET
LDELAY:
	MOV		R2,#10
LDELAY1:
	MOV		R0,#50
	DJNZ	R0,$
	DJNZ	R2,LDELAY1
	RET	
	
SENDLCD_ORD:
	CPL		A
	MOV		R2,#8
	CLR		LCD_CMD
	SJMP	SENDLCD		;送命令
SENDLCD_DATA:
	CPL		A
	MOV		R2,#8
	SETB	LCD_CMD		;送数据
SENDLCD:
	CLR		C
SENDLCD1:
	RLC		A
	clr		LCD_SCK
	NOP
	MOV		LCD_SI, C
	nop
	setb	LCD_SCK
	DJNZ	R2,SENDLCD1
	RET


;X页地址设置
;R7为X地址,R5为显示区域
_SET_X_ADDR:
	MOV		A,R7
	MOV		DPTR,#X_ADDR
	MOVC	A,@A+DPTR
	ANL		A,#0FH
	ORL		A,#0B0H
	LCALL	SENDLCD_ORD
	RET
X_ADDR:
	DB 		4,5,6,7,0,1,2,3
			
;Y地址设置,R7为Y地址
_SET_Y_ADDR:
	MOV		A,R7
	SWAP	A
	ANL		A,#0FH
	ORL		A,#10H
	LCALL	SENDLCD_ORD
	MOV		A,R7
	ANL		A,#0FH
	LCALL	SENDLCD_ORD
	
	RET

;液晶显示屏背光调节
RSEG  ?PR?_SET_LCD_LIGHT?LCD_Drv

_SET_LCD_LIGHT:
	CLR		LCDCS1
	CLR		LCDCS2
	
	MOV		A,#81H			;
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	MOV		A,R7
	LCALL	SENDLCD_ORD
	LCALL	LDELAY
	RET
	
;写显示数据
;R7为要写的数据 R5为显示字符个数
;RSEG  ?PR?_W_Lcd?LCD_Drv

;_W_Lcd:
;	MOV		0,7
;	MOV		R4,#2
;	MOV		A,LINE
;	MOV		B,#8
;	MUL		AB
;	MOV		R3,A
;	MOV		A,ROW
;	ADD		A,ROW
;	MOV		R1,A
;W_Lcd5:
;	PUSH	5
;	PUSH	3
;	PUSH	1
;W_Lcd4:
;	MOV		A,R3
;	CLR		C
;	SUBB	A,#96		
;	JC		W_LCD4_0
;	SETB	LCDCS1
;	CLR		LCDCS2
;	MOV		A,R3
;	CLR		C
;	SUBB	A,#96
;	MOV		B,A
;	SJMP	W_LCD4_1	
;W_LCD4_0:
;	MOV		A,R3
;	MOV		B,A
;	CLR		LCDCS1
;	SETB	LCDCS2	
;W_LCD4_1:
;	MOV		7,B
;	LCALL	_SET_Y_ADDR
;	MOV		7,1
;	LCALL	_SET_X_ADDR
;W_Lcd6:
;	MOV		R7,#8
;W_Lcd1:
;	MOV		A,R0
;	LCALL	SENDLCD_DATA
;	DJNZ	R7,W_Lcd1
;	MOV		A,R3
;	ADD		A,#8
;	MOV		R3,A
;	CLR		C
;	SUBB	A,#192
;	JC		W_Lcd2
;	INC		R1
;	INC		R1
;	MOV		R3,#0
;	DJNZ	R5,W_Lcd4
;	SJMP	W_Lcd3
;W_Lcd2:
;	DJNZ	R5,W_Lcd4	;W_Lcd6
;W_Lcd3:
;	POP		1
;	POP		3
;	POP		5
;	INC		R1
;	DJNZ	R4,W_Lcd5
;	RET
	
	
;写字符点阵到液晶
;R7为点阵计数
RSEG	?PR?_W_DOT?LCD_Drv

_W_DOT:	
	MOV		5,7
	MOV		A,LINE
	MOV		B,#8
	MUL		AB
	MOV		R3,A
	MOV		A,ROW
	ADD		A,ROW
	MOV		R1,A
	MOV		R0,#Bar
	MOV		R4,#2
W_DOT2:
	PUSH	1
	PUSH	3
	PUSH	5
W_DOT5:
	MOV		A,R3
	CLR		C
	SUBB	A,#96		
	JC		W_DOT5_0
	SETB	LCDCS1
	CLR		LCDCS2
	MOV		A,R3
	CLR		C
	SUBB	A,#96
	MOV		B,A
	SJMP	W_DOT5_1	
W_DOT5_0:
	CLR		LCDCS1
	SETB	LCDCS2
	MOV		A,R3
	MOV		B,A	
W_DOT5_1:
	MOV		7,B
	LCALL	_SET_Y_ADDR
	MOV		7,1
	LCALL	_SET_X_ADDR
W_DOT1:
	MOV		A,R3
	CLR		C
	SUBB	A,#192
	JNC		W_DOT3
	MOV		R7,#8
W_DOT4:
	MOV		A,@R0
	LCALL	SENDLCD_DATA
	INC		R0
	DJNZ	R7,W_DOT4
	MOV		A,R3
	ADD		A,#8
	MOV		R3,A
	DJNZ	R5,W_DOT5	;WDOT1
	POP		5
	POP		3
	POP		1
	INC		R1
	DJNZ	R4,W_DOT2
	RET
W_DOT3:
	INC		R1
	INC		R1
	MOV		R3,#0
	SJMP	W_DOT5
	
	RET
	



ZJZKADDR:
DB    00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB    00H,00H,38H,0FCH,0FCH,38H,00H,00H,00H,00H,00H,0DH,0DH,00H,00H,00H
DB    00H,0EH,1EH,00H,00H,1EH,0EH,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB    20H,0F8H,0F8H,20H,0F8H,0F8H,20H,00H,02H,0FH,0FH,02H,0FH,0FH,02H,00H
DB    38H,7CH,44H,47H,47H,0CCH,98H,00H,06H,0CH,08H,38H,38H,0FH,07H,00H
DB    30H,30H,00H,80H,0C0H,60H,30H,00H,0CH,06H,03H,01H,00H,0CH,0CH,00H
DB    80H,0D8H,7CH,0E4H,0BCH,0D8H,40H,00H,07H,0FH,08H,08H,07H,0FH,08H,00H
DB    00H,10H,1EH,0EH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB    00H,00H,0F0H,0F8H,0CH,04H,00H,00H,00H,00H,03H,07H,0CH,08H,00H,00H
DB    00H,00H,04H,0CH,0F8H,0F0H,00H,00H,00H,00H,08H,0CH,07H,03H,00H,00H
DB    80H,0A0H,0E0H,0C0H,0C0H,0E0H,0A0H,80H,00H,02H,03H,01H,01H,03H,02H,00H
DB    00H,80H,80H,0E0H,0E0H,80H,80H,00H,00H,00H,00H,03H,03H,00H,00H,00H
DB    00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,10H,1EH,0EH,00H,00H,00H
DB    80H,80H,80H,80H,80H,80H,80H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB    00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0CH,0CH,00H,00H,00H
DB    00H,00H,00H,80H,0C0H,60H,30H,00H,0CH,06H,03H,01H,00H,00H,00H,00H
DB    0F0H,0F8H,0CH,0C4H,0CH,0F8H,0F0H,00H,03H,07H,0CH,08H,0CH,07H,03H,00H
DB    00H,10H,18H,0FCH,0FCH,00H,00H,00H,00H,08H,08H,0FH,0FH,08H,08H,00H
DB    08H,0CH,84H,0C4H,64H,3CH,18H,00H,0EH,0FH,09H,08H,08H,0CH,0CH,00H
DB    08H,0CH,44H,44H,44H,0FCH,0B8H,00H,04H,0CH,08H,08H,08H,0FH,07H,00H
DB    0C0H,0E0H,0B0H,98H,0FCH,0FCH,80H,00H,00H,00H,00H,08H,0FH,0FH,08H,00H
DB    7CH,7CH,44H,44H,44H,0C4H,84H,00H,04H,0CH,08H,08H,08H,0FH,07H,00H
DB    0F0H,0F8H,4CH,44H,44H,0C0H,80H,00H,07H,0FH,08H,08H,08H,0FH,07H,00H
DB    0CH,0CH,04H,84H,0C4H,7CH,3CH,00H,00H,00H,0FH,0FH,00H,00H,00H,00H
DB    0B8H,0FCH,44H,44H,44H,0FCH,0B8H,00H,07H,0FH,08H,08H,08H,0FH,07H,00H
DB    38H,7CH,44H,44H,44H,0FCH,0F8H,00H,00H,08H,08H,08H,0CH,07H,03H,00H
DB    00H,00H,00H,30H,30H,00H,00H,00H,00H,00H,00H,06H,06H,00H,00H,00H
DB    00H,00H,00H,30H,30H,00H,00H,00H,00H,00H,08H,0EH,06H,00H,00H,00H
DB    00H,80H,0C0H,60H,30H,18H,08H,00H,00H,00H,01H,03H,06H,0CH,08H,00H
DB    00H,20H,20H,20H,20H,20H,20H,00H,00H,01H,01H,01H,01H,01H,01H,00H
DB    00H,08H,18H,30H,60H,0C0H,80H,00H,00H,08H,0CH,06H,03H,01H,00H,00H
DB    18H,1CH,04H,0C4H,0E4H,3CH,18H,00H,00H,00H,00H,0DH,0DH,00H,00H,00H
DB    0F0H,0F8H,08H,0C8H,0C8H,0F8H,0F0H,00H,07H,0FH,08H,0BH,0BH,0BH,01H,00H
DB    0E0H,0F0H,98H,8CH,98H,0F0H,0E0H,00H,0FH,0FH,00H,00H,00H,0FH,0FH,00H
DB    04H,0FCH,0FCH,44H,44H,0FCH,0B8H,00H,08H,0FH,0FH,08H,08H,0FH,07H,00H
DB    0F0H,0F8H,0CH,04H,04H,0CH,18H,00H,03H,07H,0CH,08H,08H,0CH,06H,00H
DB    04H,0FCH,0FCH,04H,0CH,0F8H,0F0H,00H,08H,0FH,0FH,08H,0CH,07H,03H,00H
DB    04H,0FCH,0FCH,44H,0E4H,0CH,1CH,00H,08H,0FH,0FH,08H,08H,0CH,0EH,00H
DB    04H,0FCH,0FCH,44H,0E4H,0CH,1CH,00H,08H,0FH,0FH,08H,00H,00H,00H,00H
DB    0F0H,0F8H,0CH,84H,84H,8CH,98H,00H,03H,07H,0CH,08H,08H,07H,0FH,00H
DB    0FCH,0FCH,40H,40H,40H,0FCH,0FCH,00H,0FH,0FH,00H,00H,00H,0FH,0FH,00H
DB    00H,00H,04H,0FCH,0FCH,04H,00H,00H,00H,00H,08H,0FH,0FH,08H,00H,00H
DB    00H,00H,00H,04H,0FCH,0FCH,04H,00H,07H,0FH,08H,08H,0FH,07H,00H,00H
DB    04H,0FCH,0FCH,0C0H,0E0H,3CH,1CH,00H,08H,0FH,0FH,00H,01H,0FH,0EH,00H
DB    04H,0FCH,0FCH,04H,00H,00H,00H,00H,08H,0FH,0FH,08H,08H,0CH,0EH,00H
DB    0FCH,0FCH,38H,70H,38H,0FCH,0FCH,00H,0FH,0FH,00H,00H,00H,0FH,0FH,00H
DB    0FCH,0FCH,38H,70H,0E0H,0FCH,0FCH,00H,0FH,0FH,00H,00H,00H,0FH,0FH,00H
DB    0F8H,0FCH,04H,04H,04H,0FCH,0F8H,00H,07H,0FH,08H,08H,08H,0FH,07H,00H
DB    04H,0FCH,0FCH,44H,44H,7CH,38H,00H,08H,0FH,0FH,08H,00H,00H,00H,00H
DB    0F8H,0FCH,04H,04H,04H,0FCH,0F8H,00H,07H,0FH,08H,0EH,3CH,3FH,27H,00H
DB    04H,0FCH,0FCH,44H,0C4H,0FCH,38H,00H,08H,0FH,0FH,00H,00H,0FH,0FH,00H
DB    18H,3CH,64H,44H,0C4H,9CH,18H,00H,06H,0EH,08H,08H,08H,0FH,07H,00H
DB    00H,1CH,0CH,0FCH,0FCH,0CH,1CH,00H,00H,00H,08H,0FH,0FH,08H,00H,00H
DB    0FCH,0FCH,00H,00H,00H,0FCH,0FCH,00H,07H,0FH,08H,08H,08H,0FH,07H,00H
DB    0FCH,0FCH,00H,00H,00H,0FCH,0FCH,00H,01H,03H,06H,0CH,06H,03H,01H,00H
DB    0FCH,0FCH,00H,0C0H,00H,0FCH,0FCH,00H,07H,0FH,0EH,03H,0EH,0FH,07H,00H
DB    0CH,3CH,0F0H,0E0H,0F0H,3CH,0CH,00H,0CH,0FH,03H,01H,03H,0FH,0CH,00H
DB    00H,3CH,7CH,0C0H,0C0H,7CH,3CH,00H,00H,00H,08H,0FH,0FH,08H,00H,00H
DB    1CH,0CH,84H,0C4H,64H,3CH,1CH,00H,0EH,0FH,09H,08H,08H,0CH,0EH,00H

	
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -