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

📄 ocmj8x10d.asm

📁 OCMJ的代码 具体是关于金鹏电子的液晶屏的使用方法和介绍。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;****************************************************
BUSY	EQU	P3.0
INT	EQU	P3.1
CS1	EQU	P3.2					;L有效
CS2	EQU	P3.3					;H有效
RS	EQU	P3.4					;L:存取缓存器,H:存取DDRAM
WR	EQU	P3.5					;L有效
RD	EQU	P3.6					;L有效
RST	EQU	P3.7					;L有效

REGNAME		EQU	30H
REGDATA		EQU	31H
REGDATA1		EQU	32H
LCM_X			EQU	33H
LCM_Y			EQU	34H
LCM_DATA1		EQU	35H
LCM_DATA2		EQU	36H
COUNT1		EQU	37H
COUNT2		EQU	38H
;****************************************************
		ORG	0000H
		AJMP	MAIN
		ORG	0100H
MAIN:		NOP
		MOV	SP,#5FH
		LCALL	DELAY2			;延时120MS等待上电复位
		MOV	P3,#0FFH
		LCALL	LCM_INIT
		LCALL	LCM_CLR
;****************************************************
LGS1:		MOV	REGNAME,#10H
		MOV	REGDATA,#6BH
		LCALL	REG_WRITE
		MOV	REGNAME,#00H
		MOV	REGDATA,#0CDH
		LCALL	REG_WRITE
		MOV	DPTR,#TAB1
		LCALL	CHRT_DISP
		LCALL	DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS2:		MOV	REGNAME,#00H
		MOV	REGDATA,#0C5H
		LCALL	REG_WRITE
		MOV	LCM_DATA1,#0CCH
		MOV	LCM_DATA2,#0CCH
		LCALL	LAT_DISP
		LCALL	DELAY1

		MOV	LCM_DATA1,#33H
		MOV	LCM_DATA2,#33H
		LCALL	LAT_DISP
		LCALL	DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS3:		;MOV	REGNAME,#10H
		;MOV	REGDATA,#7BH
		;LCALL	REG_WRITE
		MOV	REGNAME,#00H
		MOV	REGDATA,#0CDH
		LCALL	REG_WRITE
		MOV	DPTR,#TAB2
		LCALL	CHRT_DISP
		LCALL	DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS4:		MOV	REGNAME,#00H
		MOV	REGDATA,#0C5H
		LCALL	REG_WRITE
		MOV	LCM_DATA1,#0CCH
		MOV	LCM_DATA2,#33H
		LCALL	LAT_DISP
		LCALL	DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS5:		MOV	DPTR,#TAB3
		LCALL	PHO_DISP
		LCALL	DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		LJMP	LGS1
;****************************************************
LCM_INIT:	MOV	COUNT1,#00H			;初始化
		MOV	COUNT2,#27H
LCM_INIT1:	MOV	DPTR,#INITTAB1
		MOV	A,COUNT1
		MOVC	A,@A+DPTR
		MOV	REGNAME,A
		MOV	DPTR,#INITTAB2
		MOV	A,COUNT1
		MOVC	A,@A+DPTR
		MOV	REGDATA,A
		LCALL	REG_WRITE
		INC	COUNT1
		DJNZ	COUNT2,LCM_INIT1
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LCM_CLR:	MOV	REGNAME,#0E0H		;清屏
		MOV	REGDATA,#00H
		LCALL	REG_WRITE
		MOV	REGNAME,#0F0H
		LCALL	REG_READ
		MOV	A,REGDATA1
		ORL	A,#08H
		MOV	REGDATA,A
		MOV	REGNAME,#0F0H
		LCALL	REG_WRITE

		MOV	REGNAME,#00H
		MOV	REGDATA,#0C5H
		LCALL	REG_WRITE
		MOV	LCM_X,#00H
		MOV	LCM_Y,#00H
		LCALL	WR_ZB
		MOV	A,#00H
		LCALL	DDR_WRITE
		RET
;****************************************************
CHRT_DISP:	MOV	LCM_X,#00H			;全屏显示中文或字符
		MOV	LCM_Y,#00H
		LCALL	WR_ZB
		MOV	COUNT1,#08H
CHRT_DISP1:	MOV	COUNT2,#14H
CHRT_DISP2:	CLR	A
		MOVC	A,@A+DPTR
		LCALL	DDR_WRITE
		INC	DPTR
		DJNZ	COUNT2,CHRT_DISP2
		DJNZ	COUNT1,CHRT_DISP1
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PHO_DISP:	MOV	LCM_X,#00H			;全屏显示图形
		MOV	LCM_Y,#00H
		LCALL	WR_ZB
		MOV	COUNT1,#80H
PHO_DISP1:	MOV	COUNT2,#14H
PHO_DISP2:	CLR	A
		MOVC	A,@A+DPTR
		LCALL	DDR_WRITE
		INC	DPTR
		DJNZ	COUNT2,PHO_DISP2
		DJNZ	COUNT1,PHO_DISP1
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LAT_DISP:	MOV	LCM_X,#00H			;全屏显示点阵
		MOV	LCM_Y,#00H
		LCALL	WR_ZB
		MOV	COUNT1,#20H

LAT_DISP1:	MOV	COUNT2,#28H
LAT_DISP2:	MOV	A,LCM_DATA1
		LCALL	DDR_WRITE
		DJNZ	COUNT2,LAT_DISP2

		MOV	COUNT2,#28H
LAT_DISP3:	MOV	A,LCM_DATA2
		LCALL	DDR_WRITE
		DJNZ	COUNT2,LAT_DISP3

		DJNZ	COUNT1,LAT_DISP1
		RET
;****************************************************
WR_ZB:	MOV	REGNAME,#60H		;定坐标
		MOV	REGDATA,LCM_X
		LCALL	REG_WRITE
		MOV	REGNAME,#70H
		MOV	REGDATA,LCM_Y
		LCALL	REG_WRITE
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
REG_WRITE:	MOV	A,REGNAME			;写资料到缓存器
		LCALL	REG_WR
		MOV	A,REGDATA
		LCALL	REG_WR
		RET

REG_WR:	MOV	P1,A
		CLR	CS1
		SETB	RD
		CLR	RS
		CLR	WR
		NOP
		NOP
		SETB	WR
		SETB	RS
		SETB	CS1
		RET

DDR_WRITE:	JB	BUSY,$			;写资料到DDRAM
		MOV	P1,A
		CLR	CS1
		SETB	RD
		SETB	RS
		CLR	WR
		NOP
		NOP
		SETB	WR
		SETB	RS
		SETB	CS1
		RET

REG_READ:	MOV	A,REGNAME			;读缓存器
		LCALL	REG_WR
		MOV	P1,#0FFH
		CLR	CS1
		SETB	WR
		CLR	RS
		CLR	RD
		NOP
		MOV	A,P1
		SETB	RD
		SETB	RS
		SETB	CS1
		MOV	REGDATA1,A
		RET
;****************************************************
DELAY1:	MOV	R5,#16H

⌨️ 快捷键说明

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