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

📄 ocm4x16a.asm

📁 This a test file,which is used to check whether the LCD is working
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;********************OCM4x16********************
RW	EQU	P3.0
E1	EQU	P3.1
E2	EQU	P3.2
RS	EQU	P3.3
RST	EQU	P3.4
CHOE1	EQU	20H.0
CHOE2	EQU	20H.1
;/*choe1为1,控制上半屏,choe2为1,控制下半屏*/

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
;***********************************************
		ORG	0000H
		LJMP	MAIN
		ORG	0100H
MAIN:		MOV	SP,#5FH
		LCALL	DELAY2
		CLR	RST
		NOP
		SETB	RST
;********************初始化**********************
LGS0:		SETB	CHOE1
		SETB	CHOE2
		
		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
;***********************************************
LGS1:		MOV	DPTR,#TAB1		;显示汉字和字符
		SETB	CHOE1
		CLR	CHOE2
		MOV	COUNT,#40H
		MOV	A,#80H
		LCALL	SEND_I
LGS11:		CLR	A
		MOVC	A,@A+DPTR
		LCALL	SEND_D
		INC	DPTR
		DJNZ	COUNT,LGS11
		
		CLR	CHOE1
		SETB	CHOE2
		MOV	COUNT,#40H
		MOV	A,#80H
		LCALL	SEND_I
LGS12:		CLR	A
		MOVC	A,@A+DPTR
		LCALL	SEND_D
		INC	DPTR
		DJNZ	COUNT,LGS12
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS2:		SETB	CHOE1			;显示点阵
		SETB	CHOE2
		
		MOV	A,#01H
		LCALL	SEND_I
		MOV	LCD_DATA1,#0CCH
		MOV	LCD_DATA2,#0CCH
		LCALL	WRLATTICE
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS3:		MOV	A,#34H			;显示汉字和字符
		LCALL	SEND_I
		MOV	A,#30H
		LCALL	SEND_I
		
		SETB	CHOE1
		CLR	CHOE2
		MOV	LCD_DATA,#02H
		MOV	COUNT,#3EH
		MOV	A,#81H
		LCALL	SEND_I
LGS31:		MOV	A,LCD_DATA
		LCALL	SEND_D
		INC	LCD_DATA
		DJNZ	COUNT,LGS31
		
		CLR	CHOE1
		SETB	CHOE2
		MOV	COUNT,#40H
		MOV	A,#80H
		LCALL	SEND_I
LGS32:		MOV	A,LCD_DATA
		LCALL	SEND_D
		INC	LCD_DATA
		DJNZ	COUNT,LGS32
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS4:		SETB	CHOE1			;显示点阵
		SETB	CHOE2
		
		MOV	A,#01H
		LCALL	SEND_I
		MOV	LCD_DATA1,#0FFH
		MOV	LCD_DATA2,#00H
		LCALL	WRLATTICE
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS5:		MOV	DPTR,#TAB5		;显示图形
		LCALL	PHO_DISP
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		SETB	CHOE1
		SETB	CHOE2
		MOV	A,#34H
		LCALL	SEND_I
		MOV	A,#30H
		LCALL	SEND_I
		LJMP	LGS1
;***********************************************
PHO_DISP:	MOV	LCD_X,#80H		;全屏显示图形子程序
		MOV	LCD_Y1,#80H
		SETB	CHOE1
		CLR	CHOE2
		MOV	COUNT3,#02H
PHO_DISP1:	MOV	COUNT2,#20H
PHO_DISP2:	MOV	COUNT1,#10H
		MOV	LCD_X1,LCD_X
PHO_DISP3:	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_X1
		DJNZ	COUNT1,PHO_DISP3
		INC	LCD_Y1
		DJNZ	COUNT2,PHO_DISP2
		CLR	CHOE1
		SETB	CHOE2
		MOV	LCD_Y1,#80H
		DJNZ	COUNT3,PHO_DISP1
		
		SETB	CHOE1
		SETB	CHOE2
		MOV	A,#36H
		LCALL	SEND_I
;		LCALL	DELAY1
		MOV	A,#30H
		LCALL	SEND_I
		RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
CLRRAM:		SETB	CHOE1
		SETB	CHOE2
		MOV	LCD_DATA1,#00H		;GDRAM写0子程序
		MOV	LCD_DATA2,#00H
		LCALL	WRLATTICE
		RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WRLATTICE:	MOV	LCD_X,#80H		;显示点阵子程序
		MOV	LCD_Y1,#80H
WRLAT1:		CLR	F0
		MOV	COUNT2,#20H
WRLAT2:		MOV	COUNT1,#10H
		MOV	LCD_X1,LCD_X
WRLAT3:		JB	F0,WRLAT32
		MOV	LCD_DATA,LCD_DATA1
		AJMP	WRLAT31
WRLAT32:	MOV	LCD_DATA,LCD_DATA2
WRLAT31:	LCALL	WR_ZB
		MOV	A,LCD_DATA
		LCALL	SEND_D
		MOV	A,LCD_DATA
		LCALL	SEND_D
		INC	LCD_X1
		DJNZ	COUNT1,WRLAT3
		INC	LCD_Y1
		CPL	F0
		DJNZ	COUNT2,WRLAT2
		
		MOV	A,#36H
		LCALL	SEND_I
;		LCALL	DELAY1
		MOV	A,#30H
		LCALL	SEND_I
		RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WR_ZB:		MOV	A,#34H
		LCALL	SEND_I
;		LCALL	DELAY1
		MOV	A,LCD_Y1
		LCALL	SEND_I
		MOV	A,LCD_X1
		LCALL	SEND_I
		MOV	A,#30H
		LCALL	SEND_I
		RET
;***********************************************
SEND_D:		LCALL	CHK_BUSY		;写数据子程序

⌨️ 快捷键说明

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