无论是单个LED(发光二极管)还是LED七段码显示器(数码管),都不能显示字符(含汉字)及更为复杂的图形信息,主要是因为它们没有足够的信息显示单位。LED点阵显示是把很多的LED按矩阵方式排列在一起,通过对各LED发光与不发光的控制完成各种字符或图形的显示,最常见的LED点阵显示模块有5×7(5列7行),7×9,8×8结构,前两种主要用于显示各种西文字符,后一种可用于大型电子显示屏的基本组建单元。本书将简略介绍LED大屏幕显示原理及接口。
1.8×8 LED点阵简介
8×8LED点阵的外观及引脚图如图7.21所示,其等效电路图如图7.22所示,只要各LED处于正偏(Y方向为1,X方向为0)则该LED发光。如Y7(0)=1,X7(H)=0时,则其对应的右下角的LED会发光。各LED还需接上限流电阻,实际应用时,限流电阻即可接在X轴,也可接在Y轴。
图7.21 8×8点阵的外观及引脚图
图7.22 8×8点阵的等效电路
2.LED大屏幕显示器接口电路
LED大屏幕显示器不仅能显示文字,还可以显示图形、图像,而且能产生各种动画效果,是广告宣传、新闻传播的有力工具。LED大屏幕不仅有单色显示,还有彩色显示,其应用越来越广,已渗透到人们的日常生活之中。
1)LED大屏幕的显示方式
LED大屏幕显示可分为静态显示和动态扫描显示两种。
静态显示每一个像素需要一套驱动电路,如果显示屏为n×m个像素,则需要n×m套驱动电路;动态扫描显示则采用多路复用技术,如果是P路复用,则每P个像素需一套驱动电路, n×m个像素仅需 n×m /P套驱动电路。对动态扫描显示而言,P越大驱动电路就越少,成本也就越低,引线也大大减少,更有利于高密度显示屏的制造。在实际使用的LED大屏幕显示器中,很少采用静态驱动。
2)8051与LED大屏幕显示器的接口
实际应用中,由于显示屏体与计算机及控制器有一定距离,所以应尽量减少两者之间控制信号线的数量。信号一般采用串行移动传送方式,由计算机控制器送出的信号只有5个,即时钟PCLK,显示数据DATA,行控制信号HS(串行传送时,仅需一根信号线),场控制信号VS(串行传送时,仅需一根信号线)以及地线。
图7.23是8051与LED大屏幕显示器接口的一种具体应用。图中,LED显示器为 8×64点阵,由 8个8×8的点阵的 LED显示块拼装而成。8个块的行线相应地并接在一起,形成8路复用,行控制信号HS由Pl口经行驱动后形成行扫描信号输出(并行传送,8根信号线)。8个块的列控制信号分别经由各74LS164驱动后输出。74LS164为8位串入并出移位寄存器,8个74LS164串接在一起,形成8×8=64位串入并出的移位寄存器,其输出对应64点列。显示数据DATA由8051的 RXD端输出,时钟PCLK由8051的TXD端输出。RXD发送串行数据,而TXD输出移位时钟,此时串行口工作于方式0,即同步串行移位寄存器状态。
显示屏体的工作以行扫描方式进行,扫描显示过程是每一次显示一行64个LED点,显示时间称为行周期,8行扫描显示完成后开始新一轮扫描,这段时间称为场周期。
3路信号都为同步传送信号,显示数据DATA与时钟PCLK配合传送某一行(64个点)的显示信息,在一行周期内有64个PCLK脉冲信号,它将一行的显示信息串行移入8个串入并出移位寄存器74LS164中,在行结束时,由行信号HS控制存入对应锁存电路并开始新一行显示,直到下一行显示数据开始锁入为止,由此实现行扫描。
因图7.23所示LED显示屏只有8行,无须采用场扫描控制信号VS,且行、场扫描的控制可通过单片机对P1口编程实现。图中的锁存与驱动电路可采用74LS273、74LS373、74LS374等集成电路。
图7.23 8051与LED大屏幕显示器的接口
3)LED大屏幕显示的编程要点:
由上述内容可知,LED大屏幕显示一般都采用动态显示,要实现稳定显示,需遵循动态扫描的规律,现将编程要点叙述如下:
(1)从串行口输出8字节共64bit的数据到74LS 164中,形成64列的列驱动信号;
(2)从P1口输出相应的行扫描信号,与列信号在一起,点亮行中有关的点;
(3)延时l~2ms。此时间受50Hz闪烁频率的限制,不能太大,应保证扫描所有8行(即一帧数据)所用时间之和在20ms以内;
(4)从串行口输出下一组数据,从P1口输出下一行扫描信号并延时l~2ms,完成下一行的显示;
(5)重复上述操作,直到所有8行全扫描显示一次,即完成一帧数据的显示;
(6)重新扫描显示的第一行,开始下一帧数据的扫描显示工作,如此不断地循环,即可完成相应的画面显示;
(7)要更新画面时,只须将新画面的点阵数据输入到显示缓冲区中即可;
(8)通过控制画面的显示,可以形成多种显示方式,如左平移、右平移、开幕式、合幕式、上移、下移及动画等。
4)LED大屏幕显示的扩展
如将图7.23显示屏扩展为320×32点阵的显示屏,则水平方向应有40个8×8LED点阵,垂直方向应有4个8×8LED点阵,整个显示屏由40×4=160个8×8LED点阵组成。由于一行的 LED点数太多,可将行驱动分成 5组驱动,每一组驱动8×8=64个LED点。由于每一场对应的行数达32行,如仍采用8路复用,则垂直方向应分成4组驱动,每一组驱动8行LED点。此时必须引入场扫描控制信号VS,如采用并行传送方式,则需占用单片机的4根I/O口线(加译码器只需2根),场扫描控制信号VS与相应的行驱动电路配合,使行扫描信号分时送入垂直方向的4组LED点阵,以此实现场扫描。
上述大屏幕LED显示的行、场控制信号的传输均采用并行方式,扫描驱动电路相对简单,但其占用单片机的资源较多(需10~12根I/O口线),且信号传输线多,成本高,抗干扰性能差,不适合远距离控制。因此在实用电路中,经常采用串行传输方式。采用串行传输只需占用2根I/O口线,相应的信号传输线减少,成本降低,抗干扰性能增强。不足之处是扫描驱动需增加8位移位寄存器(可采用74LS164),硬件电路相对复杂一些。
以上简要地介绍了大屏幕LED显示器的工作原理,实际的大屏幕显示器比这要复杂得多,要考虑很多问题,如采用多少路复用为好、选择什么样的驱动器,当显示像素很多时,是否要采用DMA传输等等。但不论LED大屏幕显示器的实际电路如何复杂,其显示原理是相同的,即用动态扫描显示。限于篇幅,本书不再叙述,读者如有兴趣,可参阅有关参考资料。
7.2.4 LCD液晶显示和接口
液晶显示器(LCD)是一种功耗极低的显示器件,它广泛应用于便携式电子产品中,它不仅省电,而且能够显示大量的信息,如文字、曲线、图形等,其显示界面较之数码管有了质的提高。近年来液晶显示技术发展很快,LCD显示器已经成为仅次于显象管的第二大显示产业。
1.LCD显示器简介
LCD显示器由于类型、用途不同,其性能、结构不可能完全相同,但其基本形态和结构却是大同小异。
1)LCD显示器的结构
液晶显示器的结构图如图7.24所示。不同类型的液晶显示器件其组成可能会有不同,但是所有液晶显示器件都可以认为是由两片光刻有透明导电电极的基板,夹持一个液晶层,封接成一个偏平盒,有时在外表面还可能贴装上偏振片等构成。
图7.24 液晶显示器结构图
现将构成液晶显示器件的三大基本部件和特点介绍如下:
(1)玻璃基板
这是一种表面极其平整的浮法生产薄玻璃片。表面蒸镀有一层 In2O3或 SnO2透明导电层,即ITO膜层。经光刻加工制成透明导电图形。这些图形由像素图形和外引线图形组成。因此,外引线不能进行传统的锡焊,只能通过导电橡胶条或导电胶带等进行连接。如果划伤、割断或腐蚀,则会造成器件报废。
(2)液晶
液晶材料是液晶显示器件的主体。不同器件所用液晶材料不同,液晶材料大都是由几种乃至十几种单体液晶材料混合而成。每种液晶材料都有自己固定的清亮点TL和结晶点TS。因此也要求每种液晶显示器件必须使用和保存在Ts~TL之间的一定温度范围内,如果使用或保存温度过低,结晶会破坏液晶显示器件的定向层;而温度过高,液晶会失去液晶态,也就失去了液晶显示器件的功能。
(3)偏振片
偏振片又称偏光片,由塑料膜材料制成。涂有一层光学压敏胶,可以贴在液晶盒的表面。前偏振片表面还有一保护膜,使用时应揭去,偏振片怕高温、高湿,在高温高湿条件下会使其退偏振或起泡。
2)LCD显示器的特点
液晶显示器有以下显著特点。
(1)低压微功耗:工作电压只有 3~5V,工作电流只有几个
(2)平板型结构:LCD显示器内由两片平行玻璃组成的夹层盒,面积可大可小,且适合于大批量生产,安装时占用体积小,减小了设备体积。
(3)被动显示:液晶本身不发光,而是靠调制外界光进行显示。因此适合人的视觉习惯,不会使人眼睛疲劳。
(4)显示信息量大:LCD显示器,其像素可以做得很小,相同面积上可容纳更多信息。
(5)易于彩色化
(6)没有电磁辐射:在其显示期间不会产生电磁辐射,对环境无污染,有利于人体健康。
(7)寿命长:LCD器件本身无老化问题,寿命极长。
2.LCD显示器分类
通常可将LCD为笔段型、字符型和点阵图形型。
(1)笔段型。笔段型是以长条状显示像素组成一位显示。该类型主要用于数字显示,也可用于显示西文字母或某些字符。这种段型显示通常有六段、七段、八段、九段、十四段和十六段等,在形状上总是围绕数字“
(2)字符型。字符型液晶显示模块是专门用来显示字母、数字、符号等的点阵型液晶显示模块。在电极图形设计上它是由若干个 5 × 8或 5×11点阵组成,每一个点阵显示一个字符。这类模块广泛应用于寻呼机、大哥大电话、电子笔记本等类电子设备中。
(3)点阵图形型。点阵图形型是在一平板上排列多行和多列,形成矩阵形式的晶格点,点的大小可根据显示的清晰度来设计。这类液晶显示器可广泛用于图形显示如游戏机、笔记本电脑和彩色电视等设备中。
LCD还有一些其他的分类方法。按采光方式可分为自然采光,背光源采光LCD。按LCD的显示驱动方式可分为静态驱动,动态驱动,双频驱动LCD。按控制器的安装方式可分为含有控制器和不含控制器两类。
含有控制器的LCD又称为内置式LCD。内置式LCD把控制器和驱动器用厚膜电路做在液晶显示模块印制底板上,只需通过控制器接口外接数字信号或模拟信号即可驱动LCD显示。因内置式LCD使用方便,简洁,在字符型LCD和点阵图形型LCD中得到广泛应用。
不含控制器的LCD还需另外选配相应的控制器和驱动器才能工作。
3.8051与笔段型LCD的接口
用单片机的并行接口与笔段型LCD直接相连,再通过软件编程驱动笔段型LCD显示,是实现静态液晶显示器件驱动的常用方法之一,尤其适合于位数较少的笔段型LCD。图7.25
图7.25 笔段型接口电路
给出了8751与
软件编写启动程序的基本要求是:
(1)显示位的状态与背电极BP不在同一状态上,即当BP为1状态时,显示位数据为0状态;当BP为0状态时,显示位数据为1状态。
(2)不显示位的状态与BP状态相同。
(3)定时间隔地将驱动信号取反,以实现交流驱动波形的变化。
在编程时首先要建立显示缓冲区和显示驱动区。比如把 DIS1, DIS2, DIS3单元设置为显示缓冲区,同时建立驱动区DRIl,DRI2,DRI3单元用来实现驱动波形的变化和输出。P1,P2,P3为驱动的输出瑞。各区与驱动输出的对应关系如表7.5所示。
表7.5 各区与驱动输出的对应关系
显示单元 驱动单元 驱动输出 |
位-段对应关系 D7 D6 D5 D4 D3 D2 D1 D0 |
DIS1 DRI1 P1 DIS2 DRI2 P2 DIS3 DRI3 P3 |
4bc BP |
在编程时首先还要建立显示字形数据库。现设定显示状态为“l”,不显示状态为“0”,可得0~9的字型数据为:5FH,06H,3BH,2FH,66H,6DH,7DH,07H,7FH,6FH。
编程的基本思路是:
(1)使用定时器产生交流驱动波形。在显示驱动区内将数据求反,然后送人驱动输出。
(2)在显示缓冲区内修改显示数据,然后将BP位置“
(3)在显示驱动程序中先判断驱动区BP位是否为“
(4)如此循环下去,实现了在液晶显示器件上的交流驱动,进而达到显示的效果。
驱动程序如下。
驱动基础程序:采用定时器0为驱动时钟,中断程序为驱动子程序。
DIS1 EQU 30H
DIS2 EQU 31H
DIS3 EQU 32H
DRIl EQU 33H
DRI2 EQU 34H
DRI3 EQU 35H
ORG 000BH ;定时器0中断入口
LCD: MOV TL0,#OEFH ;设置时间常数
MOV TH0,#OD8H ;扫描频率= 50HZ
PUSH ACC ;A入“栈”
MOV A,DRI3 ;取驱动单元DRI3
JNB ACC.7,LCD1 ;判 BP= 1否,否则转
MOV A,DIS3 ;取小时单元DIS3
JB ACC.7,LCD1 ;判 BP= 0否,否则转
MOV DIR3,A ;显示区→驱动区
SETB ACC.7 ;置BP= 1表示数据已旧
MOV DIS3,A ;写入显示单元
MOV DRI2,DIS2
MOV DRI1,DIS1
LJMP LCD2 ;转驱动输出
LCD1: MOV A,DRI3
CPL A ;驱动单元数据取反
MOV DRI3,A
MOV A,DRI2
CPL A
MOV DRI2,A
MOV A,DRI1
CPL A
MOV DRI1,A
LCD2: MOV P1,DRI1 ;驱动输出
MOV P2,DRI2
MOV P3,DRI3
POP ACC ;A出“栈”
SETB TR0
RETI
驱动程序使用了定时器0中断方式,定时器每20ms中断一次,在程序中要判断显示驱动区BP位的状态。当BP= 1时,可以修改显示驱动区内容,这时判断一下显示区BP位的状态。当BP= 0时表示显示区的数据已被更新。此时需要将显示区的数据传输给驱动区,再输出给驱动输出瑞。由于原 BP为“l”,所以此时修改驱动区数据正好也是交流驱动的实现。若驱动区 BP=0,或显示区 BP=1(表示数据未被修改),那么仅将驱动区数据取反,再输出给驱动输出瑞驱动液晶显示器件。
在主程序中,要实现中断方式驱动液晶显示器件,需要一些初始化设置,同样也对显示缓冲区,显示驱动区和驱动输出初始化。
因受篇幅限制,主程序及四位数字修改子程序不再叙述。
4.8051与字符型LCD的接口
字符型液晶显示模块是一类专用于显示字母,数字,符号等的点阵型液晶显示模块,字符型液晶显示模块是由若干个 5 ×8或 5 ×11点阵块组成的字符块集。每一个字符块是一个字符位,每一位都可以显示一个字符,字符位之间空有一个点距的间隔起着字符间距和行距的作用;这类模块使用的是专用于字符显示控制与驱动的IC芯片。因此,这类模块的应用范围仅局限于字符而显示不了图形,所以称其为字符型液晶显示模块。
字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上。目前最常用的字符型液晶显示驱动控制器是HD44780U,最常用的液晶显示驱动器为HD44100及其替代品。
字符型液晶显示模块在世界上是比较通用的,而且接口格式也是比较统一的,其主要原因是各制造商所采用的模块控制器都是HD44780U及其兼容品,不管它的显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。所以会使用一种字符型液晶显示模块,就会通晓所有的字符型液晶显示模块。
HD44780U由控制部,驱动部和接口部三部分组成。
控制部是HD44780U的核心,它产生HD44789U内部的工作时钟,控制着各功能电路的工作。控制部控制全部功能逻辑电路的工作状态,管理字符发生器CGROM和CGRAM、显示存储器DDRAM。HD44780U的控制部由时序发生器电路,地址指针计数器AC,光标闪烁控制电路,字符发生器,显示存储器和复位电路组成。
HD44780U的驱动部具有液晶显示驱动能力和扩展驱动能力,由并/串数据转换电路、16路行驱动器和16位移位寄存器、40路列驱动器和40位锁存器、40位移位寄存器和液晶显示驱动信号输出和液晶显示驱动偏压等组成。
HD44780U的接口部是HD44780U与计算机的接口,由I/O缓冲器,指令寄存器和译码器,数据寄存器,“忙”标志BF触发器等组成。
HD44780U的指令系统共有8条指令,限于篇幅这里不再列出。
5.字符型液晶显示模块接口电路
HD44780可与单片机接口,由单片机输出直接控制HD44780及其时序。HD44780与液晶显示器连接方框图如图7.26所示。
图7.26 HD44780与液晶连接框图
单片机与字符型LCD显示模块的连接方法分为直接访问和间接访问两种,数据传输的形式可分为8位和4位两种。
1) 直接访问方式
直接访问方式是把字符型液晶显示模块作为存储器或I/O接口设备直接连到单片机总线上,采用8位数据传输形式时,数据端DB0~DB7直接与单片机的数据线相连,寄存器选择端RS信号和读写选择端
在图7.27中,8位数据总线与8031的数据总线直接相连,P0口产生的地址信号被锁存在74LS373内,其输出A0、A1给出了RS和
单片机对字符型LCD显示模块的操作是通过软件实现的。编程时要求单片机每一次访问都要先对忙标志BF进行识别,当BE为0时,即HD 44780允许单片机访问时,再进行下一步操作。
图7.27 直接控制方式下8031与字符型液晶显示模块的接口
在图7.27的电路下产生操作字符型液晶显示模块的各驱动子程序如下:
COM EQU 20H ;指令寄存器
DAT EQU 21H ;数据寄存器
CW_Add EQU
CR_Add EQU
DW_Add EQU
DR-Add EQU
(1)读BF和AC值子程序
PRO: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
MOVX A,@DPTR ;读BF和AC值
MOV COM,A ;存入COM单元
POP ACC
POP DPL
POP DPH
RET
(2)写指令代码子程序
PR1: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PRll: MOVX A,@DPTR ;读 BF和 AC值
JB ACC.7,PRll ;判BF=0?是,继续
MOV A,COM ;取指令代码
MOV DPTR,#CW_Add ;设置指令口写地址
MOVX @DPTR,A ;写指令代码
POP ACC
POP DPL
POP DPH
RET
(3)写显示数据子程序
PR2: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PR21: MOVX A,@DPTR ;读BF和AC值
JB ACC.7,PR21 ;判BF=0?是继续
MOV A,DAT ;取数据
MOV DPTR,# DW_Add ;设置数据口写地址
MOVX @DPTR,A ;写数据
POP ACC
POP DPL
POP DPH
RET
(4)读显示数据子程序
PR3: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PR31: MOVX A,@DPTR ;读BF和AC值
JB ACC.7,PR31 ;判BF=0?是,继续
MOV DPTR,#DR_Add ;设置数据口读地址
MOVX A,@DPTR ;读数据
MOV DAT,A ;存入 DAT单元
POP ACC
POP DPL
POP DPH
RET
(5)初始化子程序
INT: MOV A,#30H ;工作方式设置指令代码
MOV DPTR,#CW_Add ;指令口地址设置
MOV R2,#03H ;循环量=3
INT1: MOVX @DPTR,A ;写指令代码
LCALL DELAY ;调延时子程序
DJNZ R2,INT1
MOV A,#38H ;设置工作方式(8位总线)
MOV A,#28H ;设置工作方式(4位总线)
MOVX @DPTR,A
MOV COM,#28H ;以 4位总线形式设置
LCALL PR1
MOV COM,#01H ;清屏
LCALL PR1
MOV COM,#06H ;设置输入方式
LCALL PR1
MOV COM,#OFH ;设置显示方式
LCALL PRI
RET
DELAY:…… ;延时子程序
RET
以上给出了8位数据总线形式的接口电路及驱动软件。4位数据总线形式是应用于4位计算机的接口。在8031上应用4位数据线是将数据总线高4位认为是字符型液晶显示模块的数据总线,数据总线的低4位无用,这样图7.27的电路不变就可以仿真出4位计算机对字符型液晶显示模块的接口。因受篇幅限制,这里不再叙述,请读者查阅有关参考资料。
2)间接访问方式
间接控制方式是计算机把字符型液晶显示模块作为终端与计算机的并行接口连接,计算机通过对该并行接口的操作间接实现对字符型液晶显示模块的控制。图7.28以8031的P1和P3接口作为并行接口与字符型液晶显示模块连接的实用接口电路。图中电位器为V0口提供可调的驱动电压,用以实现显示对比度的调节。在写操作时,使能信号E的下降沿有效,在软件设置顺序上,先设置 RS,
图7.28 间接控制方式下8031与字符型液晶显示模块的接口
6.图形液晶显示接口
图形液晶显示器可显示汉字及复杂图形,广泛应用于游戏机、笔记本电脑和彩色电视等设备中。图形液晶显示一般都需与专用液晶显示控制器配套使用,属于内置式LCD。常用的图形液晶显示控制器有SED1520,HD61202,T