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

📄 ex36a_lcm.asm

📁 51单片机各类源程序集锦
💻 ASM
字号:
;********************************Copyright (c)********************************
;**                      广州周立功单片机发展有限公司
;**                            研    究    所
;**                        http://www.zlgmcu.com
;*********************************文件信息************************************
;文件名:
;	EX36A_LCD.asm
;目的  :
;	1.学习使用DP-51h实验的仿真调试程序的方法;
;	2.学习LCM图形液晶显示器的驱动方法和程序设计方法;
;	3.在DP-51h实验仪完成LCM点阵图形液晶显示,在液晶屏上显示"周立功单片机"。
;硬件设置:
;	左半屏的写命令操作地址为4004H,写数据操作地址为4005H,读状态字操作地址为4006H;
;	而右半屏的写命令操作地址为4000H,写数据操作地址为4001H,读状态字操作地址为4002H.
;最后修改时间:
;	2003年6月20	
;******************************************************************************
LCMCS2_C0M	EQU	4000H
LCMCS2_DAT	EQU	4001H

LCMCS1_COM	EQU	4004H
LCMCS1_DAT	EQU	4005H

	ORG	8000H
	AJMP	MAIN

	ORG	8100H
MAIN:
	MOV	SP,#60H
	MOV	A,#3FH			;命令字送A,开显示.
	ACALL	WR_COM_CS1		;写命令字
	ACALL	WR_COM_CS2
	
	;以下程序实现在左半屏显示"周立功"
		
	MOV	A,#50H			;命令字送A,从10H列开始显示.
	ACALL	WR_COM_CS1		;写命令字
	
	MOV	A,#0B8H			;命令字送A,从00页开始显示.
	ACALL	WR_COM_CS1
	
	MOV	R0,#00H			;开始取汉字"周立功"的字模
	MOV	DPTR,#ZLG		;字模首地址送数据指针寄存器
	
LOOP1:	MOV	A,R0			
	MOVC	A,@A+DPTR		;从字模表中查取该段字模
	ACALL	WR_DAT_CS1		;写数据到DDRAM
	INC	R0			;指向下一位数据
	CJNE	R0,#30H,LOOP1		;上半部分显示完了吗?
	
	MOV	A,#50H			;命令字送A,从10H列开始显示.
	ACALL	WR_COM_CS1		;写命令字
			
	MOV	A,#0B9H			;命令字送A,从01页开始显示.
	ACALL	WR_COM_CS1		;写命令字

LOOP2:	MOV	A,R0			
	MOVC	A,@A+DPTR
	ACALL	WR_DAT_CS1		;从字模表中查取该段字模
	INC	R0			;指向下一位数据
	CJNE	R0,#60H,LOOP2		;下半部分显示完了吗?

	;以下程序实现在右半屏显示"单片机"
		
	MOV	A,#40H			;命令字送A,从00H列开始显示.
	ACALL	WR_COM_CS2		;写命令字
	
	MOV	A,#0B8H			;命令字送A,从00页开始显示.
	ACALL	WR_COM_CS2		;写命令字	
		
	MOV	R0,#00H			;开始取汉字"单片机"的字模
	MOV	DPTR,#MCU		;字模首地址送数据指针寄存器
	
LOOP3:	MOV	A,R0
	MOVC	A,@A+DPTR		;从字模表中查取该段字模
	ACALL	WR_DAT_CS2		;写数据到DDRAM
	INC	R0
	CJNE	R0,#30H,LOOP3		;上半部分显示完了吗?
	
	MOV	A,#40H			;命令字送A,从00H列开始显示.
	ACALL	WR_COM_CS2		;写命令字
	
	MOV	A,#0B9H			;命令字送A,从00页开始显示.
	ACALL	WR_COM_CS2		;写命令字

LOOP4:	MOV	A,R0
	MOVC	A,@A+DPTR		;从字模表中查取该段字模
	ACALL	WR_DAT_CS2		;写数据到DDRAM
	INC	R0
	CJNE	R0,#60H,LOOP4		;下半部分显示完了吗?
	MOV	R0,#00H
	AJMP	$
	

;**************************************	
;子程序名:WR_COM_CS1
;写左半屏命令字子程序,命令字存放在A中.
;**************************************
WR_COM_CS1:
	PUSH	ACC
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#LCMCS1_COM
	MOVX	@DPTR,A
	ACALL	DELAY5US
	POP	DPL
	POP	DPH
	POP	ACC
	RET

;**************************************	
;子程序名:WR_DAT_CS1
;写左半屏数据子程序,数据存放在A中.
;**************************************
WR_DAT_CS1:
	PUSH	ACC
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#LCMCS1_DAT
	MOVX	@DPTR,A
	ACALL	DELAY5US
	POP	DPL
	POP	DPH
	POP	ACC
	RET

;**************************************	
;子程序名:WR_COM_CS2
;写右半屏命令字子程序,命令字存放在A中.
;**************************************
WR_COM_CS2:
	PUSH	ACC
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#LCMCS2_C0M
	MOVX	@DPTR,A
	ACALL	DELAY5US
	POP	DPL
	POP	DPH
	POP	ACC
	RET

;**************************************	
;子程序名:WR_DAT_CS2
;写左半屏数据子程序,数据存放在A中.
;**************************************
WR_DAT_CS2:
	PUSH	ACC
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#LCMCS2_DAT
	MOVX	@DPTR,A
	ACALL	DELAY5US
	POP	DPL
	POP	DPH
	POP	ACC
	RET

;****************************
;子程序名:DELAY5US
;延时子程序,延时时间:5us。
;****************************
DELAY5US:
	MOV	R7,#60H
	DJNZ	R7,$
	RET

ZLG:	DB	00H,00H,00H,0E0H,0E0H,60H,60H,0F0H,0F0H,60H,60H,60H,0E0H,20H,00H,00H
	DB	00H,00H,40H,40H,40H,0C0H,40H,70H,70H,0C0H,0C0H,40H,40H,40H,00H,00H
	DB	00H,40H,40H,40H,0C0H,40H,40H,00H,80H,80H,0F0H,0F0H,80H,80H,80H,00H

	DB	00H,10H,18H,0FH,01H,05H,1DH,15H,15H,1DH,1DH,01H,3FH,38H,00H,00H     
	DB	00H,18H,18H,18H,08H,0FH,08H,08H,08H,1FH,19H,18H,18H,38H,18H,08H
	DB	04H,04H,06H,06H,33H,12H,1AH,0EH,16H,13H,11H,18H,1CH,07H,01H,00H

MCU:	DB	00H,00H,00H,40H,0C0H,0D0H,0B0H,0C0H,0C0H,0B0H,0D0H,0C0H,0E0H,00H,00H,00H	
	DB	00H,00H,00H,00H,0F0H,0C0H,40H,40H,70H,60H,40H,40H,40H,00H,00H,00H
	DB	00H,00H,40H,40H,0F0H,40H,40H,00H,0E0H,20H,20H,0E0H,20H,00H,00H,00H
	
	DB	00H,0CH,0CH,04H,07H,06H,06H,1FH,3FH,06H,06H,06H,0DH,0CH,0CH,00H
	DB	00H,18H,08H,0CH,07H,01H,01H,01H,3FH,3FH,01H,01H,03H,03H,03H,01H
	DB	00H,04H,06H,03H,3FH,03H,12H,1CH,0FH,00H,00H,0FH,18H,18H,18H,08H

ZHOU:	DB	00H,00H,00H,0E0H,0E0H,60H,60H,0F0H,0F0H,60H,60H,60H,0E0H,20H,00H,00H
	DB	00H,10H,18H,0FH,01H,05H,1DH,15H,15H,1DH,1DH,01H,3FH,38H,00H,00H     ;周 16X16的字模码

LI:	DB	00H,00H,40H,40H,40H,0C0H,40H,70H,70H,0C0H,0C0H,40H,40H,40H,00H,00H
	DB	00H,18H,18H,18H,08H,0FH,08H,08H,08H,1FH,19H,18H,18H,38H,18H,08H     ;立 16X16的字模码

GONG:	DB	00H,40H,40H,40H,0C0H,40H,40H,00H,80H,80H,0F0H,0F0H,80H,80H,80H,00H
	DB	04H,04H,06H,06H,33H,12H,1AH,0EH,16H,13H,11H,18H,1CH,07H,01H,00H     ;功 16X16的字模码

DAN:	DB	00H,00H,00H,40H,0C0H,0D0H,0B0H,0C0H,0C0H,0B0H,0D0H,0C0H,0E0H,00H,00H,00H	
	DB	00H,0CH,0CH,04H,07H,06H,06H,1FH,3FH,06H,06H,06H,0DH,0CH,0CH,00H

PIAN:	DB	00H,00H,00H,00H,0F0H,0C0H,40H,40H,70H,60H,40H,40H,40H,00H,00H,00H
	DB	00H,18H,08H,0CH,07H,01H,01H,01H,3FH,3FH,01H,01H,03H,03H,03H,01H

JI:	DB	00H,00H,40H,40H,0F0H,40H,40H,00H,0E0H,20H,20H,0E0H,20H,00H,00H,00H	
	DB	00H,04H,06H,03H,3FH,03H,12H,1CH,0FH,00H,00H,0FH,18H,18H,18H,08H
	;
	END

⌨️ 快捷键说明

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