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

📄 lcd.asm

📁 单片机开发板源码 适合初学者 第四部分 字符型LCD显示1-2
💻 ASM
字号:
;实验名称:字符型LCD接口实验
;  功能:在LCD上显示
;	 AT89S51 DEMO
;	www.mcuprog.com
;  作者:http://www.mcuprog.com
;        05-02-01
;

E		BIT	P2.2
RW		BIT	P2.1
RS		BIT	P2.0
LCDPORT		EQU	P0
CMD_BYTE	EQU	30H
DAT_BYTE	EQU	31H

		ORG	0000H
		AJMP	MAIN
		ORG	0050H
MAIN:		MOV	SP,#60H
		LCALL	INITLCD
		LCALL	DISPMSG1
		LCALL	DISPMSG2
		SJMP	$
		
;LCD1602要用到的一些子程序
;写命令(入口参数CMD_BYTE)
WRITE_CMD:	CLR	RS
		CLR	RW
		MOV	A,CMD_BYTE
		MOV	LCDPORT,A
		SETB	E
		NOP
		NOP
		CLR	E
		LCALL	DELAY
		RET

;写显示数据(入口参数DAT_BYTE)
WRITE_DAT:	SETB	RS
		CLR	RW
		MOV	A,DAT_BYTE
		MOV	LCDPORT,A
		SETB	E
		NOP
		NOP
		CLR	E
		LCALL	DELAY
		RET

;LCD显示初始化
INITLCD:	MOV	CMD_BYTE,#30H
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#30H
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#30H
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#38H		;设定工作方式
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#0CH		;显示状态设置
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#01H		;清屏
		LCALL	WRITE_CMD
		MOV	CMD_BYTE,#06H		;输入方式设置
		LCALL	WRITE_CMD		
		RET
;在第一行显示表格1的内容
DISPMSG1:	MOV	CMD_BYTE,#80H		//设置DDRAM的地址
		LCALL	WRITE_CMD
		MOV	R7,#10H
		MOV	R6,#00H
		MOV	DPTR,#TAB1
DISPMSG1_1:	MOV	A,R6
		MOVC	A,@A+DPTR
		MOV	DAT_BYTE,A
		LCALL	WRITE_DAT
		INC	R6
		DJNZ	R7,DISPMSG1_1
		RET

;在第二行显示表格1的内容
DISPMSG2:	MOV	CMD_BYTE,#0C0H		//设置DDRAM的地址
		LCALL	WRITE_CMD
		MOV	R7,#10H
		MOV	R6,#00H
		MOV	DPTR,#TAB2
DISPMSG2_1:	MOV	A,R6
		MOVC	A,@A+DPTR
		MOV	DAT_BYTE,A
		LCALL	WRITE_DAT
		INC	R6
		DJNZ	R7,DISPMSG2_1
		RET

;延时子程序
DELAY:		MOV	R5,#0A0H
DELAY1:		NOP
		DJNZ	R5,DELAY1
		RET

		ORG	0200H
;要显示的内容
TAB1:		DB	"  AT89S51 DEMO  "
TAB2:		DB	"www.mcuprog.com "
		END

⌨️ 快捷键说明

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