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

📄 ocm4x8c.asm

📁 点阵显示 点阵显示
💻 ASM
字号:
;******************OCM4x8C并口******************
RS	EQU	P2.4
RW	EQU	P2.5
E	EQU	P2.6
PSB	EQU	P3.3
RST	EQU	P3.4

LCD_X	EQU	30H
LCD_Y	EQU	31H
COUNT	EQU	32H
COUNT1	EQU	33H
COUNT2	EQU	34H
COUNT3	EQU	35H
LCD_DATA	EQU	36H
LCD_DATA1	EQU	37H
LCD_DATA2	EQU	38H
STORE		EQU	39H
;***********************************************
		ORG	0000H
		LJMP	MAIN
		ORG	0100H
MAIN:		NOP
                clr     p3.2         ;开背光灯
		NOP
		MOV	SP,#5FH
		SETB	RST
		NOP
		SETB	PSB
;********************初始化**********************
LGS0:		MOV	A,#34H			;34H--扩充指令操作
               LCALL	SEND_I
		MOV	A,#30H			;30H--基本指令操作
		LCALL	SEND_I
		MOV	A,#01H			;清除显示
		LCALL	SEND_I
		MOV	A,#06H			;指定在资料写入或读取时,光标的移动方向
		LCALL	SEND_I
		MOV	A,#0CH			;开显示,关光标,不闪烁
		LCALL	SEND_I

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS2:		MOV	A,#01H
		LCALL	SEND_I

		MOV	LCD_DATA1,#0CCH		;显示点阵
		MOV	LCD_DATA2,#0CCH
		LCALL	LAT_DISP
		LCALL	DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		MOV	A,#34H
		LCALL	SEND_I
		MOV	A,#30H
		LCALL	SEND_I
		LJMP	LGS0

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LAT_DISP:	MOV	COUNT3,#02H		;显示点阵子程序
		MOV	LCD_X,#80H
LAT_DISP1:	MOV	LCD_Y,#80H
		CLR	F0                   ;B寄存器第一位
		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

		MOV	A,#36H
		LCALL	SEND_I
		MOV	A,#30H
		LCALL	SEND_I
		RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WR_ZB:		MOV	A,#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
;***********************************************
SEND_D:		LCALL	CHK_BUSY		;写数据子程序
		SETB	RS
		CLR	RW
		MOV	P1,A
		SETB	E
		NOP
		NOP
		CLR	E
		RET

SEND_I:		LCALL	CHK_BUSY		;写指令子程序
		CLR	RS
		CLR	RW
		MOV	P1,A
		SETB	E
		NOP
		NOP
		CLR	E
		RET

READ_D:		LCALL	CHK_BUSY		;读数据子程序
		SETB	RS
		SETB	RW
		SETB	E
		NOP
		MOV	A,P1
		CLR	E
		MOV	STORE,A
		RET

CHK_BUSY:	MOV	P1,#0FFH		;测忙碌子程序
		CLR	RS
		SETB	RW
		SETB	E
		JB	P1.7,$
		CLR	E
		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,#0CH
DEL21:		MOV	R7,#18H
DEL22:		DJNZ	R7,DEL22
		DJNZ	R6,DEL21
		RET

DELAY1:		MOV	R6,#06H
DEL11:		MOV	R7,#08H
DEL12:		DJNZ	R7,DEL12
		DJNZ	R6,DEL11
		RET



		END

⌨️ 快捷键说明

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