ATMEAG16L驱动128x64点阵图形液晶模块的实验
点阵图型液晶模块是一种用于显示各类图像、符号、汉字的显示模块,其显示屏的点阵像素连续排列,行和列在排布中没有间隔,因此可以显示连续、完整的图形。当然他也能显示字母、数字等字符。点阵图型液晶模块依控制芯片的不同,其功能及控制方法与点阵字符液晶模块相比略有不同。点阵图型液晶模块的控制芯片生产厂商较多,如HD61202(日立公司产品)、T6963C(东芝公司产品)、HD61830(日立公司产品)、SED1330(E-1330)(精工公司产品)、MSM6255(冲电器公司产品)为典型的几种。
介绍点阵图形液晶模块,实际上就是介绍它的控制芯片。这里以市场上常见的128x64点阵图型液晶模块为例来做介绍,该液晶模块采用日立的HD61202和HD61203芯片组成。128x64点阵图型液晶模块,表示横向有128点,纵向有64点,如果以汉字16x16点而言,每行可显示8个中文字。4行共计32个中文字。用HD61202和HD61203芯片组成的128x64点阵图型液晶模块方框示意图见下图所示。
点阵图型液晶128x64是STN点矩阵LCD模组,由列驱动器HD61202、行驱动器HD61203组成,可以直接与8位单片机相接。128x64点阵图形液晶模块里有两个HD61202,每个有512字节(4096位)供RAM显示。RAM显示存储器单元的每位数据与LCD每点的像素状态1/0完全一致(1=亮,0=灭)。
1.128x64点阵图形液晶模块特性1)、+5V电压,反视度(明暗对比度)可调整
。2)、背光分为(EL冷光)背光和LED背光两种。3)、行驱动时COM1-COM64(或X1-X64)为行位置,由芯片HD61203做行驱动。4)、列驱动时Y1-Y128(或SEG1-SEG128)为列位置,由两颗芯片HD61202驱动,第一颗芯片U2驱动Y1-Y64,第二颗芯片HD61202驱动Y65-Y128。5)、左半屏/右半屏控制由CS1/CS2片选决定。CS1=1、CS2=0时,U2选中,U3不选中,既选择右半屏。6)、列驱动器HD61202有512Byte的寄存器,所以U2和U3加起来共有1024Byte寄存器。
2.128x64点阵图形液晶模块引脚功能1脚(Vss):接地。2脚(Vdd):电源5V±5%。3脚(VO):反视度调整。4脚(D/I):寄存器选择,1为选择数据寄存器;0为选择指令寄存器。5脚(R/W):读/写选择,1为读;0为写。6脚(E):使能操作;1为LCM可做读写操作;0为LCM不能做读写操作。7脚(DBO):双向数据总线的第0位。8脚(DB1):双向数据总线的第1位。9脚(DB2):双向数据总线的第2位。11脚(DB3):双向数据总线的第3位。11脚(DB4):双向数据总线的第4位。12脚(DB5):双向数据总线的第5位。13脚(DB6):双向数据总线的第6位。14脚(DB7):双向数据总的1.第7位。15脚(CS1):左半屏片选信号,1为选中;0为不选中。16脚(CS2):右半屏片选信号,1为选中:0为不选中。17脚(RST):复位信号,低电平有效。18脚(VEE):LCD负压驱动脚(-10~18V)。19脚(NC):空脚(或接背光电源)。20脚(NC):脚(或接背光电源)。
3..128x64点阵图形液晶模块的内部结构 128x64点阵图形液晶模块的内部结构可分为控制器、LCD驱动器、LCD显示装置三个部分,如下图所示。
应注意的是,无背光液晶模块同EL、LED背光的液晶模块内部结构有较大的区别,特别注意第19、20脚的供电来源及相关参数,图3为具有EL背光的点阵图形液晶模块方框示意图。下表为EL/LED背光供电参数表。
下图为128x64点阵图形液晶模块的供电原理及对比度调整电路。
LCD与MCU之间是利用LCD的控制器进行通信。点阵图形液晶128x64分行列驱动器,HD61203是行驱动器,HD61202是列驱动控制器。HD61202、HD61203是点阵图形液晶显示控制器的代表电路。熟知HD61202、HD61203将可通晓点阵图形液晶显示控制器的工作原理。下图为128x64点阵图形液晶的显示位置和RAM显示存储器映射图。
1.HD61203特点1、低阻抗输入(最大1.5kΩ)的图形普通行驱动器。2)、内部64路LCD驱动电路。3)、低功耗(显示时耗电仅5mW)。4)、工作电压:VCC=5V±5%。5)、显示驱动电压为8~17V。6)、100脚扁平塑料封装(FP一100)。7)、HD61203的引脚图见下图。
2.HD61202特点1、图形LCD列驱动器组成显示数据。2)、像素点亮/熄灭直接由内部RAM显示存储器单元。数据单元为“1”时,对应的像素点亮:RAM数据单元为“0”时,对应的像素点灭。3)、内部RAM地址自动递增。4)、显示RAM容量512Bytes(4096Bits)。5)、8位并行接口,适配M6800时序。6)、内部LCD列驱动电路为64路。7)、简单而较强的指令功能,可实现显示数据读/写、显示开/关、设置地址、设置开始行、读状态等。8)、LCD驱动电压范围为8~17V。9)、100脚扁平塑料封装(FP一100)。
HD61202工作原理HD61202的内部组成结构如字图所示。
下图为HD61202的引脚图。
1)、I/O缓冲器:I/O缓冲器为双向三态数据缓;中器。是HD61202内部总线与计算机总线连接部。其作用是将两个不同时钟下工作的系统连接起来,实现通讯。I/O缓冲1.器在三个片选信号/CS1、/CS2和CS3组合有效状态下,I/O缓冲器开放,实现HD61202与计算机之间的数据传递。当片选信号组合为无效状态时,I/O缓冲器将中断HD61202内部总线与计算机数据总线的联系,对外总线呈高阻状态。
2)、输入寄存器输入寄存器用于暂时储存要写入显示RAM(显示存储器)的资料。因为数据是由MCU写入输入寄存器,然后再由内部处理后自动地写入显示存储器内。当CS=1,D/I=1,且R/W=1时,数据在使能信号E的下降沿被锁入输入寄存器。
3)、输出寄存器从显示RAM中读出的数据首先暂时储存在输出寄存器。MCU要从输出寄存器读出数据则要令CS=D/I=R/W=1。不过读数据命令时,存于输出寄存器中的数据是在E脚为高电平时输出;然后在E脚信号落为低电平时,地址指针指向的显示数据接着被锁入输出寄存器而且地址指针递增。输出寄存器中,会因读数据的指令而被再写入新的数据,若为地址指针设定指令则数据维持不变。因此,发送完地址设定指令之后随即发送读取数据指令,将无法得到所指定位址的数据,必须再接着读取一次数据,该指定地址的数据才会输出。
4)、显示存储器电路HD61202具有4096位显示存储器。其结构是以一个64x64位的方阵形式排布的。显示存储器的作用一是存储计算机传来的显示数据,二是作为控制信号源直接控制液晶驱动电路的输出。显示存储器为双端口存储器结构,结构原理示意图如下图所示。
从数据总线侧看有64位,按8位数据总线长度分成8路,称为页面,由X地址寄存器控制;每个页面都有64个字节,用Y地址计数器控制,这-%是提供给计算机操作的,是双向传输形式。XY地址计数器选择了计算机所要操作的显示存储器的页面和列地址,从而唯一地确定计算机所要访问的显示存储器单元。从驱动数据传输侧看有64位,共64行,这一侧是提供给驱动器使用的,仅有输出形式。
HD61202列驱动器为64列驱动输出,正好与显示存储器列向(纵向)单元对应。Z地址计数器为显示行指针,用来选择当前要传输的数据行。
5)、XY地址计数器XY地址计数器为9位的寄存器,它确定了计算机所需访问的显示存储器单元的地址。X地址计数器为高3位,Y地址计数器为低6位,分别有各自的指令来设定X、Y地址。计算机在访问显示存储器之前必须要设置XY地址计数器。计算机写入或读出显示存储器的数据代表显示屏上某一列上的垂直8点的数据。D0代表最上一的点数据。X地址计数器是一个3位页地址寄存器,其输出控制着显示存储器中8个页面的选择,也就是控制着数据传输通道的八选一选择器。X地址寄存器可以由计算机以指令形式设置。X地址寄存器没有自动修改功能,所以要想转换页面需要重新设置X地址寄存器的内容。
Y地址计数器是一个6位循环加一计数器。它管理某~页面上的64个单元,该数据总线上的64位数据直接控制驱动电路输出Y1~Y64的输出波形。Y地址计数器可以由计算机以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元。Y地址计数器具有自动加一功能。在显示存储器读/写操作后Y地址计数器将自动加一。当计数器加至3FH后循环归零再继续递加。
6)、显示起始行寄存器显示起始行寄存器为6位寄存器,它规定了显示存储器所对应显示屏上第一行的行号。该行的数据将作为显示屏上第一行显示状态的控制信号。显示起始行寄存器的内容由计算机以指令代码的格式写入。此寄存器指定RAM中某一行数据对应到LCD屏幕的最上行,可用做荧幕卷动。
7)、Z地址计数器Z地址计数器也为6位地址计数器,用于确定当前显示行的扫描地址。Z地址计数器具有自动加一功能,它与行驱动器的行扫描输出同步,选择相应的列驱动器的数据输出。在行驱动器发来的CL时钟信号脉冲的下降沿时加一。在FRM信号的高电平时置入显示起始行寄存器的内容,以作为再循环显示的开始。
8)、显示开/关触发器该触发器的输出一路控制显示数据锁存器的清除端,一路返回到接口控制电路作为状态字中的一位表示当前的显示状态。该触发器的作用就是控制显示驱动输出的电平以控制显示屏的开关。在触发器输出为“关”电平时,显示数据锁存器的输入被封锁并将输出置“0”,从而使显示驱动输出全部为非选择波形,显示屏呈不显示状态。在触发器输出为“开”电平时,显示数据锁存器受CL控制,显示驱动输出受显示驱动数据总线上数据控制,显示屏将呈显示状态。显示开/关触发器受逻辑电路控制,计算机可以通过硬件/RST复位和软件指令“显示开关设置”。
9)、指令寄存器指令寄存器用于接收计算机发来的指令代码,通过译码将指令代码置入相关的寄存器或触发器内。
1O)、状态字寄存器状态字寄存器是HD61202与计算机通讯时唯一的”握手”信号。状态字寄存器向计算机表示了HD61202当前的工作状态。其中最主要的是忙碌信号(Busy),当忙碌信号为”表示HD61202正在忙于内部运作,除了状态读取指令外,其他任何指令部不被接受。忙碌信号(Busy)是由状态字读取指令所读出DB7表示。每次要发指令前,应先确定忙碌信号已为“O”。
11)、显示数据锁存器数据要从显示数据RAM中输出到液晶驱动电路前,先暂时储存于此锁存器中,在时钟信号上升沿时数据被锁存。显示器开/关指令控制此锁存器动作,不会影响显示数据RAM中的数据。
7.HD361202的工作过程计算机要想访问HD61202,必须首先读取状态字寄存器的内容,主要是要判别状态字中的“Busy”标志;在“Busy”标志表示为O时,计算机方可访问HD61202。在写操作时,HD61202在计算机写操作信号的作用下将计算机发来的数据锁存进输入寄存器内,使其转到HD61202内部时钟的控制之下,同时HD61202将I/O缓冲器封锁,置“Busy”标志位为1,向计算机提供HD61202正在处理计算机发来的数据的信息。HD61202根据计算机在写数据时提供的D/I状态将输入寄存器的内容送入指令寄存器处理或显示存储器相应的单元,处理完成后,HD61202将撤消对I/O缓冲器的封锁,同时将“Busy”标志位清零,向计算机表示HD61202已准备好接收下一个操作。
在读显示数据时,计算机要有一个操作周期的延时,即“空读”的过程。这是因为在计算机读操作下,HD61202向数据总线提供输出寄存器当前的数据,并在读操作结束时将当前地址指针所指的显示存储器单元的数据写入输出寄存器内,同时将列地址计数器加一。也就是说计算机不是直接读取到显示存储器单元,而是读取一个中间寄存器--输出寄存器的数据。而这个数据是上一次读操作后存入到输出寄存器的内容,这个数据可能是上一地址单元的内容,也可能是地址修改前某一单元的内容。因此在计算机设置所要读取的显示存储器地址后1.点阵图形液晶模块的控制器指令128x64图形液晶模块的控制指令共有显示开/关、设置页(PAGE1~PAGE8)、读状态、设置开始显示行、设置列地址Y、写显示数据、读显示数据7个。
1)、显示器开关
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
D |
D:显示屏开启或关闭控制位。D=1时,显示屏开启;D=0时,则显示屏关闭,但显示数据仍保存于DDRAM中。
2)、设置页(X地址)
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
A |
A |
A |
显示RAM数据的X地址AAA(二进制)被设置在X地址寄存器。设置后,读/写都在这一指定的页里执行,直到下页设置后再往下页执行,该指令设置了页面地址X地址寄存器的内容。HD61202将显示存储器分成8页,指令代码中AAA就是要确定当前所要选择的页面地址,取值范围为O~7H,代表第1~8页。
3)、读状态
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
1 |
0 |
Busy |
0 |
ON/OFF |
Reset |
0 |
0 |
0 |
0 |
Busy:表示当前HD61202接口控制电路运行状态。Busy=1表示HD61202正忙于处理MCU发来的指令或数据。此时接口电路被封锁,不能接受除读状态以外的任何操作:Busy=0表示HD61202接口控制电路已处于空闲状态,等待MCU的访问。ON/OFF:表示当前的显示状态。ON/OFF=I表示关显示状态:ON/OFF表示开显示状态。Reset:当Reset=1状态时,HD61202处于复位工作状态;当Reset=0状态时,HD61202为正常工作状态。
4)、显示开始行
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
0 |
0 |
1 |
1 |
A |
A |
A |
A |
A |
A |
该指令设置了显示起始行寄存器的内容。HD61202有64行显示的管理能力,该指令中AAAAAA(二进制)为显示起始行的地址,取值在O一3FH(1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。如果定时间隔地、等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。
5)、设置Y地址
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
0 |
0 |
0 |
1 |
A |
A |
A |
A |
A |
A |
该指令设置了Y地址计数器的内容,AAAAAA=0~3FH(1~64)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。
6)、写显示数据
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
1 |
1 |
D |
D |
D |
D |
D |
D |
D |
D |
该操作将8位数据写入先前已确定的显示存储器单元内操作完成后列地址计数器自动加一。
7)、读显示数据
R/W |
D/I |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
0 |
1 |
D |
D |
D |
D |
D |
D |
D |
D |
该操作将HD61202接口部的输出寄存器内容读出,然后列地址计数器自动加一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
9HD61202的操作时序图对HD61202的操作必须严格按照时序进行。
1)、写入时序(如下图所示)。
2)、读取时序(如下图所示)。
3)、时序参数(见下表)。
Ta=-20~+75℃GND=0VVcc=2.7~5.5V
项目 |
符号 |
最小值 |
典型值 |
最大值 |
单位 |
E周期时间 |
Tcyc |
1000 |
- |
- |
ns |
E高电平宽度 |
Pweh |
450 |
- |
- |
ns |
E低电平宽度 |
Pwel |
450 |
- |
-25 |
ns |
E上升时间 |
Tr |
- |
- |
25 |
ns |
E下降时间 |
Tf |
- |
- |
|
ns |
地址建立时间 |
Tas |
140 |
- |
- |
ns |
地址保持时间 |
Tah |
10 |
- |
- |
ns |
数据建立时间 |
Tdsw |
200 |
- |
- |
ns |
数据延时时间 |
Tddr |
- |
- |
320 |
ns |
数据保持时间(写) |
Tdhw |
10 |
- |
- |
ns |
数据保持时间(读) |
Tdhr |
20 |
- |
- |
ns |