📄 lcd2.asm
字号:
RS EQU P1.2 ;引脚定义
RW EQU P1.1
E EQU P1.0
ORG 0000H
MOV P0,#01H ;清屏
ACALL ENABLE
MOV P0,#38H ;8位2行5x7点阵
ACALL ENABLE
MOV P0,#0FH ;显示器开、光标开、闪烁开
ACALL ENABLE
MOV P0,#06H ;文字不动,光标自动右移
ACALL ENABLE
;********显示数据和地址,可变***********
LOOP: MOV P0,#90H ;写入显示起始地址(第一行第一个位置)
ACALL ENABLE
MOV DPTR,#TAB1 ;显示第一行
CALL WRITE1
MOV P0,#0d0H ;写入显示起始地址(第一行第一个位置)
CALL ENABLE
MOV DPTR,#TAB2 ;显示第二行
CALL WRITE1
;MOV P0,#0CFH ;光标闪烁位置
;CALL ENABLE
MOV R5,#16
LOOP1: MOV P0,#00011000B ;文字右移一位
ACALL ENABLE
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
DJNZ R5,LOOP1
AAA: LJMP $
;*******************************
WRITE1: MOV R1,#00H
A1: MOV A,R1
MOVC A,@A+DPTR
CALL WRITE2
INC R1
CJNE A,#00H,A1
RET
WRITE2: MOV P0,A
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
;***************************
ENABLE: CLR RS ;;写入控制命令的子程序
CLR RW
CLR E
ACALL DELAY
SETB E
RET
;CHACK: MOV P1,#0FFH; ;判断液晶显示器是否忙的子程序
;CLR RS
;SETB RW
;CLR E
;NOP
;SETB E
;JB P1.7,CHACK ;;如果P0.7为高电平表示忙就循环等待
;RET
;*****************************
DELAY: MOV R7,#40 ;约20MS,因为复位要15MS,其他只要5MS,所以20MS符合要求!!!
D1: MOV R6,#250
DJNZ R6,$
DJNZ R7,D1
RET
;////////////////////
TAB1: DB 'WELCOME TO HUANG',00H
TAB2: DB 'TEL:13956175546',00H
END
;*****************注:DELAY不能太短,否则不能显示,一般延时15MS以上
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -