📄 29驱动1602液晶模块显示英文.asm
字号:
;程序说明: 五一电子STC编程实验学习仿真开发板配套例子演示程序-1602液晶模块lcd显示
;关于1602lcd的指令,请参阅本目录下的lcd-162指令表
;相关连接定义:
rs bit P2.0 ;rs为寄存器选择,1=数据寄存器、0=指令寄存器。
rw bit P2.1 ;rw为读写信号线,1=读操作,0=写操作。
;当rs=rw=0可以写入指令或者显示地址,
;当rs=0,rw=1可以读忙信号,当rs=1,rw=0可以写入数据。
en bit P2.2 ;当en端由高电平跳变成低电平时,液晶模块执行命令。
;P1为命令或数据线,请用8根的数据线将单片机的P1口和液晶模块的d0-d7连接,其中P1.7(d7)为忙指示
org 00h
mov p1,#00000001b ;清屏并光标复位
call wricomm ;调用写入命令子程序
mov p1,#00111000b ;设置显示模式:8位2行5x7点阵
call wricomm
mov p1,#00001100b ;显示器开、光标关、光标禁止闪烁
call wricomm
mov p1,#00000110b ;文字不动,光标自动右移
call wricomm
mov p1,#00h ;写入显示起始地址(第1行第2个位置)
orl p1,#80h ;按模块要求写入的地址最高位必需为1
call wricomm
mov p1,#' ' ;显示的字符
call wridata
mov p1,#' ' ;显示的字符
call wridata
mov p1,#'w'
call wridata
mov p1,#'w'
call wridata
mov p1,#'w'
call wridata
mov p1,#'.'
call wridata
mov p1,#'5'
call wridata
mov p1,#'1'
call wridata
mov p1,#'d'
call wridata
mov p1,#'z'
call wridata
mov p1,#'.'
call wridata
mov p1,#'c'
call wridata
mov p1,#'o'
call wridata
mov p1,#'m'
call wridata
mov p1,#' '
call wridata
mov p1,#' '
call wridata
mov p1,#40h ;写入显示起始地址(第二行第一个位置)
setb p1.7 ;按模块要求写入的地址最高位必需为1
call wricomm
mov p1,#'T'
call wridata
mov p1,#'e'
call wridata
mov p1,#'l'
call wridata
mov p1,#':'
call wridata
mov p1,#'0'
call wridata
mov p1,#'7'
call wridata
mov p1,#'5'
call wridata
mov p1,#'5'
call wridata
mov p1,#'2'
call wridata
mov p1,#'9'
call wridata
mov p1,#'7'
call wridata
mov p1,#'0'
call wridata
mov p1,#'5'
call wridata
mov p1,#'1'
call wridata
mov p1,#'5'
call wridata
mov p1,#'1'
call wridata
jmp $ ;已经完成液晶模块的显示工作,停止
wricomm: clr rs ;写入控制命令
clr rw
clr en
call dendai
setb en
ret
wridata: setb rs ;rs=1
clr rw ;rw=0 ,准备写入数据
clr en ;en=0 ,执行显示命令
call dendai ;判断液晶模块是否忙?
setb en ;en=1 ,显示完成,程序停车
ret
dendai: mov p1,#0ffh ;判断液晶显示器是否忙的子程序
clr rs
setb rw
clr en
nop
setb en
Jb p1.7,dendai ;如果数据线的d7为高电平表示忙就循环等待
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -