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

📄 1602液晶模块多字符显示程序.asm

📁 适合初学者的基于汇编语言的1602液晶模块多字符显示程序
💻 ASM
字号:
;******** 1602液晶模块多字符显示程序 ********
;******** 第一行显示"welcome to hi.ba"       ********
;******** 第二行显示"idu.com/liweidiy" ********
RS	EQU	P1.2
RW 	EQU	P1.1
E 	EQU	P1.0
        ORG	0000H
        AJMP	START
        ORG	0033H
START:	MOV	SP,#60H
MAIN:	LCALL	DELAY		;延时一段时间
        MOV	P2,#01H		;写指令01H,清屏
        LCALL	ENABLE
        MOV	P2,#38H		;写指令38H,设定LCD为16*2显示,5*7点阵,8位数据接口
        LCALL	ENABLE
        MOV	P2,#0FH		;写指令0FH,显示ON,光标ON,闪烁ON
        LCALL	ENABLE
        MOV	P2,#06H		;写指令06H,光标输入方式增量移位
        LCALL	ENABLE
        MOV	P2,#80H		;第一行起始字符地址
        LCALL	ENABLE
        MOV	DPTR,#TABLE1	;第一行显示字符表头地址
        LCALL	DISP		;显示第一行数据
        MOV	P2,#0C0H	;第二行起始字符地址
        LCALL	ENABLE
        MOV	DPTR,#TABLE2	;第二行显示字符表头地址
        LCALL	DISP		;显示第二行数据
        AJMP	MAIN		;返回主程序循环
;-------------------------------------------------------------------------------------
ENABLE: CLR	RS		;写指令子程序(请参照1602LCD使用说明书)
        CLR	RW
        CLR	E
        LCALL	DELAY
        SETB	E
        RET
;-------------------------------------------------------------------------------------
DISP: 	MOV	R1,#16		;准备显示一行16个字符
LOOP: 	MOV	A,#00H 		;将ACC清零
        MOVC	A,@A+DPTR	;查表取得要显示的数据
        LCALL	DISP1		;写入一个数据
        INC	DPTR		;数据表指针加1,准备取下一个数据
        DJNZ	R1,LOOP		;一行没有显示完就继续
        RET
;-------------------------------------------------------------------------------------
DISP1: 	MOV	P2,A		;写1字节数据到显示端口
        SETB	RS		;写数据时序(请参照1602LCD使用说明书)
        CLR	RW
        CLR	E
        LCALL	DELAY
        SETB	E
        RET
;-------------------------------------------------------------------------------------
DELAY:  MOV	R7,#255		;延时子程序
D1:     MOV	R6,#255
D2: 	DJNZ	R6,D2
        DJNZ	R7,D1
        RET

TABLE1: DB	"welcome to hi.ba"
TABLE2: DB 	"idu.com/liweidiy"
        END

⌨️ 快捷键说明

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