📄 1602
字号:
;****************************************************************
;* ★★★ 1602液晶模块测试程序 ★★★ *
;* 『电子驿站单片机实验板、开发板配套例程,程序转载请著明出处』 *
;* E-mail: support@ourmpu.com QQ留言:451338254 476485321 *
;* 编程:ourmpu http://www.ourmpu.com/ 更多例程请登陆网站 *
;****************************************************************
;* 液晶模块第一行显示的是本站联系电话“"Welcome!"” *
;* 液晶模块第二行显示的是本站域名“www.ourmpu.com” *
;****************************************************************
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
LCD EQU P0
ORG 0000H
AJMP START
ORG 0033H
START: MOV SP,#60H
MAIN:
LCALL DELAY ;延时一段时间
MOV LCD,#01H ;写指令01H,清屏
LCALL ENABLE
MOV LCD,#38H ;写指令38H,设定LCD为16*2显示,5*7点阵,8位数据接口
LCALL ENABLE
MOV LCD,#0FH ;写指令0FH,显示ON,光标ON,闪烁ON
LCALL ENABLE
MOV LCD,#06H ;写指令06H,光标输入方式增量移位
LCALL ENABLE
MOV LCD,#80H ;第一行起始字符地址
LCALL ENABLE ;写指令
MOV DPTR,#TABLE1 ;第一行显示字符表头地址
LCALL DISP ;显示第一行数据
MOV LCD,#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 LCD,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 20H,20H,20H,20H,77H,65H,6CH,63H,6FH,6DH,65H,21H,20H,20H,20H,20
TABLE2: DB 20H,77H,77H,77H,2EH,6FH,75H,72H,6DH,70H,75H,2EH,63H,6FH,6DH,20
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -