📄 51+Ҧ
字号:
/***************************************************************************
标题: LCD1602
效果: 本程序在液晶LCD1602上显示两行字符
本店网站 http://xxdpj.taobao.com/
以芯换心 竭诚为您服务 您学习单片机的好帮手
近期本店有很多优惠活动 有空就进来看看吧
http://xxdpj.taobao.com/
技术支持QQ:412150384
******************************************************************************/
RS EQU P1.0
RW EQU P1.1
E EQU P1.2
LCDDATA EQU P0
ORG 0000H
AJMP START
ORG 0033H
START: MOV SP,#60H
MAIN: LCALL DELAY ;延时一段时间
MOV LCDDATA,#01H ;写指令01H,清屏
LCALL ENABLE
MOV LCDDATA,#38H ;写指令38H,设定LCD为16*2显示,5*7 点阵,8位数据接口
LCALL ENABLE
MOV LCDDATA,#0FH ;写指令0FH,显示ON,光标ON,闪烁ON
LCALL ENABLE
MOV LCDDATA,#06H ;写指令06H,光标输入方式增量移位
LCALL ENABLE
MOV LCDDATA,#80H ;第一行起始字符地址
MOV R1,#12
LCALL ENABLE
MOV DPTR,#TABLE1 ;第一行显示字符表头地址
LCALL DISP ;显示第一行数据
MOV R1,#13
MOV LCDDATA,#0C0H ;第二行起始字符地址
LCALL ENABLE
MOV DPTR,#TABLE2 ;第二行显示字符表头地址
LCALL DISP ;显示第二行数据
MOV R5,#50 ;;稍等待10秒续继
LA: MOV R7,#255
L1: MOV R6,#255
L2: DJNZ R6,L2
DJNZ R7,L1
DJNZ R5,LA
AJMP MAIN ;返回主程序循环
;-----------------
ENABLE: CLR RS ;写指令子程序(请参照1602LCD使用说 明书)
CLR RW
CLR E
LCALL DELAY
SETB E
RET
;-----------------
;DISP: MOV R1,#16 ;准备显示一行16个字符
DISP: MOV A,#00H ;将ACC清零
MOVC A,@A+DPTR ;查表取得要显示的数据
LCALL DISP1 ;写入一个数据
INC DPTR ;数据表指针加1,准备取下一个数据
DJNZ R1,DISP ;一行没有显示完就继续
RET
;-----------------
DISP1: MOV LCDDATA,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 "frank welcome!"
TABLE2: DB "xxdpj.taobao.com"
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -