字符型液晶显示模块的应用.docx
- 文档编号:24181524
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:21
- 大小:97.27KB
字符型液晶显示模块的应用.docx
《字符型液晶显示模块的应用.docx》由会员分享,可在线阅读,更多相关《字符型液晶显示模块的应用.docx(21页珍藏版)》请在冰豆网上搜索。
字符型液晶显示模块的应用
字符型液晶显示模块的应用
字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模块。
之所以称字符型液晶显示模块是因为其液晶显示器件的电极图形是由若干个5×8或5×ll点阵块组成的字符块集。
每一个字符块是一个字符位,每一位都可以显示一个字符,字符位之间空有一个点距的间隔起着字符间距和行距的作用,这是其一;其二是这类模块使用的是专用于字符显示控制与驱动的IC芯片。
这两种因素确定了这类模块的应用范围仅局限于字符而显示不了图形,所以称其为字符型液晶显示模块。
字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上。
目前最常用的字符型液晶显示驱动控制器是HD44780U,也出现使用HD667O1或HD66702等字符型液晶显示驱动控制器单片控制的字符型液晶显示模块。
液晶显示驱动器为HD44100及其替代品。
字符型液晶显示模块在世界上是比较通用的,而且接口格式也是比较统一的,其主要原因可能是各制造商所采用的模块控制器都是HD44780U及其兼容品,不管它的显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。
所以会使用一种字符型液晶显示模块,就会通晓所有的字符型液晶显示模块。
本文将以香港精电公司字符型液晶显示模块为例全面叙述字符型液晶显示模块的应用。
HD44780U接口部的总线操作时序图如图下:
第一节字符型液晶显示模块的软件特性
在上一节已经叙述了字符型液晶显示模块电路特性,由于电路特性决定了字符型液晶员
示模块的软件特性实际上就是HD44780U的软件功能。
HD44780U有8条指令,指令裕时
常简单。
指令一览表如下表所示。
HD447800指令一格装
指令名称
控制信号
控制代码
D/IR/W
D7D6D5D4D3D2D1D0
清屏
00
00000001
归home位
00
0000001*
输入方式设置
00
000001I/DS
显示状态设置
00
00001DCB
光标画面滚动
00
0001S/CR/L**
工作方式设置
00
001DLNF**
CGRAM地址设置
00
01A5A4A3A2A1A0
DDRAM地址设置
00
1A6A5A4A3A2A1A0
读BF和AC
01
BFAC6AC5AC4AC3AC2AC1AC0
写数据
10
数据
读数据
11
数据
注;“*”表示任意值,在实际应用时一般认为是“0”。
指令详细解释如下:
●清屏(ClearDisPlay)
格式
0
0
0
0
0
0
0
1
01H
该指令完成下列功能:
将空码(20H)写入DDRAM的全部80个单元内;
将地址指针计数器AC清零,光标或闪烁归home位;
设置输入方式参数I/D=1,即地址指针AC为自动加一输入方式。
该指令多用于上电时或更新全屏显示内容时。
在使用该指令之前要确认DDRAM的当前内容是否有用。
●归home位(Returnhome)
格式
0
0
0
0
0
0
1
0
02H
该指令将地址指针计数器AC清零。
执行该指令的效果有;将光标或闪烁位返回到显示屏的左上第一字符位上,即DDRAM地址00H单元位置;这是因为光标和闪烁位都是以地址指针计数器AC当前值定位的。
如果画面已滚动,则撤消滚动效果,将画面拉回到home位。
●输入方式设置(EnterModeSet)
格式
0
0
0
0
0
1
I/D
S
04H-07H
该指令的功能在于设置了显示字符的输入方式,即在计算机读/写DDRAM或CGRAM后,地址指针计数器AC的修改方式,反映在显示效果上,当写入一个字符后画面或光标的移动。
该指令的两个参数位1/D和S确定了字符的输入方式。
I/D表示当计算机读/写DDRAM或CGRAM的数据后,地址指针计数器AC的修改方式,由于光标位置也是由AC值确定,所以也是光标移动的方式。
I/D=0AC为减1计数器,光标左移一个字符位。
I/D=1AC为加1计数器,光标右移一个字符位。
S表示在写入字符时,是否允许显示画面的滚动。
S=0禁止滚动。
S=1允许滚动。
S=1且I/D=O显示画面向右滚动一个字符位。
S=1且I/D=1显示画面向左滚动一个字符位。
●显示状态设置(Displayon/offControl)
格式
0
0
0
0
1
D
C
B
08H-0FH
该指令控制着画面,光标及闪烁的开关。
该指令有三个状态位D、C、B,这三个状态位分别控着画面,光标和闪烁的显示状态。
D画面显示状态位。
当D=1时为开显示,D=0时为关显示。
注意关显示仅是画面不
出现,而DDRAM内容不变。
这与清屏指令截然不同。
C光标显示状态位。
当C=1时为光标显示,C=0时为光标消失。
光标为底线形式(5
×1点阵),出现在第八行或第十一行上。
光标的位置由地址指针计数器AC确定
,并随其变动而移动。
当AC值超出了画面的显示范围,光标将随之消失。
B闪烁显示状态位。
当B=l时为闪烁启用,B=0时为闪烁禁止。
闪烁是指一个字符位
交替进行正常显示态和全亮显示态,闪烁频率在控制器工作频率为250kHz时为
2.4Hz。
闪烁位置同光标~样受地址指针计数器AC的控制。
闪烁出现在有字符或光标显示的字符位时,正常显示态为当前字符或光标的显示;全亮显示态为该字符位所有点全显示。
若出现在无字符或光标显示的字符位时,正常显示态为无显示,全亮显示态为该字符位所有点全显示。
这种闪烁方式可以设计成块光标,如同计算机CRT上块状光标闪烁提示符的效果。
●光标或画面滚动(CursorOrInsplayShift)
格式
0
0
0
1
S/C
R/L
0
0
执行该指令将产生画面或光标向左或向右滚动一个字符位。
如果定时间隔地执行该指令将产生画面或光标的平滑滚动。
画面的滚动是在一行内连续循环进行的,也就是说一行的第一单元与最后一个单元连接起来,形成了闭环式的滚动。
当未开光标显示时,执行画面滚动指令时不修改地址指针计数器AC值;有光标显示时,由于执行任意一条滚动指令时都将使光标产生位移,所以地址指针计数器AC都需要被修改。
光标的滚动是在DDRAM内全程进行的,它不分是一行显示还是两行显示。
如果用光标的指针——地址指针计数器AC加一和减一功能来解释,就能理解光标从第1显示位左移至第80显示位,或从第80显示位右移至第1显示位原理了。
光标的滚动功能可以用于搜寻需要修改的显示字符。
该指令有两个参数位:
S/C滚动对象的选择
S/C=l画面滚动
S/C=0光标滚动
R/L滚动方向的选择
R/L=l向右滚动
R/L=0向左滚动
该指令与输入方式设置指令都可以产生光标或画面的滚动,区别在于该指令专用于滚动功能,执行一次,显示呈现一次滚动效果;而输入方式设置指令仅是完成了一种字符输入方式的设置,仅在计算机对DDRAM等进行操作时才能产生滚动的效果。
●工作方式设置(FunctionSet)
格式
0
0
1
DL
N
F
0
0
该指令设置了控制器的工作方式,包括有控制器与计算机的接口形式和控制器显示驱动的占空比系数等。
该指令有三个参数DL,N和F.它们的作用是:
DL设置控制器与计算机的接口形式。
接口形式体现在数据总线长度上。
DL=1设置数据总线为8位长度,即DB7~DBO有效。
DL=0设置数据总线为4位长度,即DB7~DB4有效。
在该方式下8位指令代码
和数据将按先高4位后低4位的顺序分两次传输。
N设置显示的字符行数。
N=0为一行字符行。
N=1为两行字符行。
F设置显示字符的字体。
F=0为5×7点阵字符体。
F=1为5×10点阵字符体。
该指令可以说是字符型液晶显示控制器的初始化设置指令,也是唯一的软件复位指令。
HD44780U虽然具有复位电路,但为了可靠的工作,HD44780U要求计算机在征作HD44780U时首先对其进行软件复位。
也就是说在控制字符型液晶显示模块工作时首先要进行的软件复位。
●CGRAM地址设置(SetCGRAMAddress)
格式
0
1
A5
A4
A3
A2
A1
A0
该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对CGRAM的读/写操作。
●DDRAM地址设置(SetDDRAMAddress)
格式
1
A6
A5
A4
A3
A2
A1
A0
该指令将7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对DDRAM的读/写操作。
●读“忙”标志和地址指针值(ReadBusyFlagandAddress)
格式
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
计算机对指令寄存器通道读操作(RS=0,R/W=l)时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。
计算机随时都可以对HD44780U读“忙”操作。
BP值反映HD4478OU的接口状态。
计算机在对HD44780U每次操作时首先都要读BF值判断HD44780U的当前接口状态,仅有在BF=01时计算机才可以向HD44780U写指令代码或显示数据和从HD44780U读出显示数据。
计算机读出的地址指针计数器AC当前值可能是DDRAM地址也可能是CGRAM的地址,
这取决于最近一次计算机向AC写入的是哪类地址。
●写数据(WhteDatatoCGorDDRAM)
计算机向数据寄存器通道写入数据,HD44780U根据当前地址指针计数器AC值的属性及数值将该数据送入相应的存储器内的AC所指的单元里。
如果AC值为DDRAM地址指针,则认为写人的数据为字符代码并进入DDRAM内AC所指的单元里;如果AC值为CGRAM的地址指针,则认为写入的数据是自定义字符的字模数据并送入CGRAM内AC所指的单元里。
所以计算机在写数据操作之前要先设置地址指针或人为的确认地址指针的属性及数值。
在写人数据后地址指针计数器AC将根据最近设置的输入方式自动修改。
由此可知,计算机在写数据操作之前要作两项工作,其一是设置或确认地址计数器AC值的属性及数值,以保证所写数据能够正确到位;其二是设置或确认输入方式,以保证连续写入数据时AC值的修改方式符合要求。
●读数据(ReadDatafromCGorDDRAM)
在HD44780U的内部运行时序的操作下,地址指针计数器AC的每一次修改,包括新的AC值的写入,光标滚动位移所引起的AC值的修改或由计算机读写数据操作后所产生的AC值的修改,HD44780U都会把当前AC所指单元的内容送到接口部数据输出寄存器内,供计算机读取。
如果AC值为DDRAM地址指针,则认为接口部数据输出寄存器的数据为DDRAM内AC所指单元的字符代码;如果AC值为CGRAM的地址指针,则认为数据输出寄存器的数据是CGRAM内AC所指单元的自定义字符的字模数据。
计算机的读数据是从数据寄存器通道中数据输出寄存器读取当前所存放的数据。
所以计算机在首次读数据操作之前需要重新设置一次地址指针AC值,或用光标滚动指令将地址指针计数器AC值修改到所需的地址上,然后进行的读数据操作将能获得所需的数据。
在读取数据后地址指针计数器AC将根据最近设置的输入方式自动修改。
由此可知,计算机在读数据操作之前要作两项工作,其一是设立或确认地址计数器AC值的属性及数值,以保证所读数据的正确性;其二是设置或确认输入方式,以保证连续读取数据时AC值的修改方式符合要求。
第二节应用举例
初始化程序举例;
ORG0000H
LJMPKKoO
KKOO:
LCALLWatB
MOVp3,#OFOH
MOVRO,#03H
KK01;CLRP3.0;RS=O
CLRP3.1;R/W=0
MOVP1,#30H
SETBP3.2;E=1
CLRP3.2;E=0
LCALLWAITB
DJNZRO,KK01
LCALLWAITB
MOVA,#38H
LCALLWRCA
MOVA,#08H;OFF-DSW
LCALLWRCA
MOVA,#01H;DEL-DSIP
LCALLWRCA
MOVA,#O6H
LCALLWRCA
MOVA,#10H
LCALLWRCA
MOVA,#0CH;ON-DISP
LCALLWRCA
LCALLWAITB
LCALLWAITB
WAITA:
PUSH00H
MOVRO,#19H
WAA00:
DJNZRO,WAA00
POP00H
RET
WAITB:
PUSH00H
PUSH0lH
PUSH02H
MOVRZ,#01H
WAB03:
MOVRO;#OFFH
WAB01:
MOVR1,#OFFH
WAV02;DJNZR1,WAB02
DJNZRO,WAB01
DJNZR2,WAB03
POP02H
POP01H
POP00H
RET
WRCA:
NOP
LCALLWAITA
CLRP3.0
CLRP3.1
SETBP3.2
MOVP1,A
CLRP3.2
RET
例一:
检查DMC16230的忙标志
操作:
将“读忙“功能编成子程序,以便以后操作时使用该子程序
RDBUSY:
PUSHACC
PUSH00H
MOVRO,#12H
RDSS:
MOVXA,@RO
RLCA
JCRDBS
POP00H
POPACC
RET
例二:
清屏
操作:
此程序可用于更新显示
CLRDSP;MOVRO,#10H
MOVA,#OIH
ACALLRDBUSY
MOVX@R0,A
例三:
系统设置
操作:
由于DMC16230为16位字符X2行,故应设置成8位数据总线,显示两行5×7点阵字符.其程序为:
SYSSET;MOVRO,#10H
MOVA,#38H
ACALLRDBUSY
MDVX@RO,A
例四:
设置光标移动方式,自动地址为增量方式
操作:
MODSET:
MOVRO,#10H
MOVA,#06H
ACALLRDBUSY
MOVX@RO,A
例五:
开启显示器,显示光标,且使光标闪烁.
操作:
DSPON:
MOVRO,#10H
MOVA,#0FH
ACALLRDBUSY
MOVX@RO,A
例六:
将“WELCOMETOLCDWORLD“分两行显示在LCD上.然后左移至出屏幕.
分析:
应按以下5个步骤进行操作.
①建立显示缓冲区:
将8031内部RAM的30H~3FH作为第一杆行字符的显示缓冲区.与之对应的DMC16230地址为80H~8FH;将8031内部RAM的40H~4FH作为第二行字符显示缓冲区,与之时应的DMC16230的地址为COH~CFH.
②将“WELCOMETOLCDWORLD!
”的ASCII码送至显示缓冲区
③设置DMC16230的系统方式
④将缓冲区内容送至显示屏显示
⑤将显示器内容左移16次
操作软件:
STARTMOVDPTR,#CHATABMOVX@RO,A
MOVR7,#32INCR1
MOVR1,#30HDJNZR7,DSPND
DSPBUF:
CLRAMOVR7,#10
MOVCA,@A+DPTRDlY10ACALLDELAY
MOV@R1,ADJNZR7,DLY10
INCDPTRMOVRO,#10H
INCR1M0V,R7,#16
DJNZR7,DSPBUFMOVA,#18H
MOVA,#38HSHIFT:
ACALLRDBUSY
MOVRO,#10HMOVX@RO,A
ACALLRDBUSYACALLDELAY
MOVX@R0,ADJNZR7,SHIFT
MOVA,01HAJMPSTART
ACALLRDBUSYDELAY:
MOVR5,#OFFH
MOVX@RO,ADL1:
MOVR6,#OFFH
MOVR7,#16DL2;DJNZR6,DL2
MOVR1,#30HDJNZR5,DL1
MOVRO,#12HRET
DISPIST:
MOVA,@R1RDBUSY:
(略)
ACALLRDBUSYCHATAB:
DB57H,45H,4CH,43H
MOVX@RO,ADB4FH,4DH,45H,20H
INCR1DB44H,4FH,20H,20H
DJNZR7,DSPISTDB20H,20H,20H,20H
MOVRO:
#l0HDB2OH,2OH,2OH,20H
MOVA,#OCOHDB20H,4CH,43H,44H
ACALLRDBUSYDB20H,57H,4FH,52H
MOVX@R0,ADB4CH,44H,2OH,21H
MOVR7,#16END
MOVRO,#12H例七:
将‘中”字显示在屏幕左上角
DSPIND:
MOVA,@R1分析;本例关因是将‘中”字写入自编字库
ACALLRDBUSYCGRAM
操作;
START:
MOVA,#38HINCR1
MOVRO,#10HINCCDPTR
ACALLRDBUSYDJNZR7,WRCGRAM
MOVX@R0,AMOVRO,#1OH
MOVA,#01MMOVA,#80H
ACALLRDBUSYACALLRDBUSY
MOVX@R0,AMOVX@RO,#12H
M0VA,#OCHM0VA,#OOH
ACALLRDBUSYACALLRDBUSY
MDVX@RO,AMOVX@RO,A
M0VDPTR,#CGRAMAJMPSTART
MOVR7,#8RDBUSY;PUSHACC
MOVR1,#4OHPUSH00H.
WRCGRAM:
MOVRO,#10HM0VRO,#11H
MOVA,R1RDBS:
MOVXA,@RO
ACALLRDBUSYRLCA
MOVX@RO,AJCRDBS
CLRAPOPOOHPOPACC
MOVCA,@A+DPTRRET
MOVRO,#12HCGRAM:
DBO4H,04H,1FH,15H
ACALLRDBUSYDB15H,IFH,04H,04H
MOVX@R0,AEND
第三节一个完整的实例
以下是一个以AT89C51为控制MCU驱动16X2字符型液晶显示器的完整的汇编语言实例,运行后液晶屏幕上显示“WELCOME!
2003”字样。
在该例中,包含了驱动字符型液晶显示器所需要的子程序,在实际应用中可以直接套用和调用。
;******************************************
;*HD44780液晶显示模块测试程序(16X2模式)*
;*BD7RC/李映超,2003.11.7*
;******************************************
;
;模块14根接线的说明:
(3为对比度调整,可以直接接地)
;
;引脚:
1234567891011121314
;-------------------------------------
;接法:
接地+5V接地RSR/WEDB0--DB7
;---------------------------------------------------------------
;LCD第一行各个字符位置对应的地址:
;12345678910111213141516
;80H81H82H83H84H85H86H87H88H89H8AH8BH8CH8DH8EH8FH
;
;LCD第二行各个字符位置对应的地址:
;12345678910111213141516
;COHC1HC2HC3HC4HC5HC6HC7HC8HC9HCAHCBHCCHCDHCEHCFH
;---------------------------------------------------------------
;模块DB0--DB7分别接P0.0---P0.7,若接别的口,请把P0换为相应的口线号
;而RS、R/W、E则由以下指令定义
;=================================================================
;
;定义模块控制脚与89C51的连接,可以根据实际情况自己定义为别的口线
;
RSEQUP2.0;RS<---->P2.0
RWEQUP2.1;R/W<--->P2.1
EEQUP2.2;E<----->P2.2
ORG0000H
AJMPLCD_INT
;说明:
使用前,必须先对液晶显示模块进行初始化。
然后,先把
;显示地址(位置)送到液晶模块的数据口,再调用"ENABLE"
;子程序把这个地址送入模块中。
之后,把要显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 液晶显示 模块 应用