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

📄 lcd.asm

📁 液晶屏功能的读写程序
💻 ASM
字号:
;*****************************************************************************************
;								MCS8051-III学习板演示程序
;							
;						(c) Copyright 2007-2007,广州恒芯电子
;								All Rights Reserved
;*****************************************************************************************

;*****************************************************************************************
;程序说明
;*****************************************************************************************
;名称: MCS8051-III学习板演示程序(LCD演示内容)
;功能: 在LCD上显示内容
;版本:2007-07-01

;*****************************************************************************************
;硬件说明
;*****************************************************************************************
;单片机: 	兼容MCS-51单片机/STC89C51
;晶振频率:  12MHz

;*****************************************************************************************
;说明:程序预定义	
;*****************************************************************************************
LCD_DATA	EQU		P0					;LCD数据引脚
LCD_RW		EQU		P3.5				;LCD读写引脚(0:读数据,1:写数据)
LCD_E		EQU		P3.6				;LCD使能引脚
LCD_A0		EQU		P3.4				;LCD数据/指令引脚(0:指令,1:数据)

;*****************************************************************************************
;说明:程序开始	
;*****************************************************************************************
			ORG		0000H				;程序首地址 PC=0000H
			JMP		START				;程序跳转至START PC=0030H   
	
			ORG		0030H				;程序开始
START:		
		   	CALL	DELAY				;LCD延时

			MOV		A, #030H			;配置LCD参数
			CALL	LCD_WRITE_ORDER

 			MOV		A, #004H
			CALL	LCD_WRITE_ORDER

			MOV		A, #00CH
			CALL	LCD_WRITE_ORDER

			MOV		A, #001H
			CALL	LCD_WRITE_ORDER

			MOV		A, #002H
			CALL	LCD_WRITE_ORDER

			MOV		A, #080H		 	 ;光标定位到第一行左边第一个字节
			CALL	LCD_WRITE_ORDER

			MOV		DPTR, #LCDTAB1		 ;写数据
			MOV		A, #0
			MOV		R6,	A
L1:
			MOVC	A, @A+DPTR
			CALL	LCD_WRITE_DATA
			MOV		A, R6
			INC		A
			MOV		R6, A
			CJNE	A, #14,	L1


			MOV		A, #090H			 ;光标定位到第二行左边第一个字节
			CALL	LCD_WRITE_ORDER

			MOV		DPTR, #LCDTAB2	 	 ;写数据
			MOV		A, #0
			MOV		R6, A
L2:
			MOVC	A, @A+DPTR
			CALL	LCD_WRITE_DATA
			MOV		A, R6
			INC		A
			MOV		R6, A
			CJNE	A, #13, L2
							
			JMP		$					 ;程序等待


;*****************************************************************************************		
;函数:LCD_WRITE_DATA
;说明:LCD写数据	
;参数: 无
;返回: 无
;*****************************************************************************************		
LCD_WRITE_DATA:	
			SETB 	LCD_E
			SETB	LCD_A0
			CLR		LCD_RW
			MOV		LCD_DATA,	A
			CLR		LCD_E
			CALL	DELAY
			RET

;*****************************************************************************************		
;函数:LCD_WRITE_ORDER
;说明:LCD写数据	
;参数: 无
;返回: 无
;*****************************************************************************************		
LCD_WRITE_ORDER:	
			SETB 	LCD_E
			CLR		LCD_A0
			CLR		LCD_RW
			MOV		LCD_DATA,	A
			CLR		LCD_E
			CALL	DELAY
			RET

;*****************************************************************************************		
;函数:DELAY
;说明:程序延时	
;参数: 无
;返回: 无
;*****************************************************************************************		
DELAY:		
			MOV		R7,		#0FFH
DELAY_1:
			DJNZ	R7,		DELAY_1

			RET

;*****************************************************************************************		
;说明:LCD数据显示表
;*****************************************************************************************		
LCDTAB1:
			DB	"MCU8051 学习板"

LCDTAB2:
			DB	"LCD 演示程序"

;*****************************************************************************************		
;说明:程序结束	
;*****************************************************************************************		
			END							;程序结束


⌨️ 快捷键说明

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