首页 百科知识 液晶显示实验

液晶显示实验

时间:2022-10-27 百科知识 版权反馈
【摘要】:(2)软件:μVision IDE for ARM集成开发环境,Windows 98/2000/NT/XP/7.通过使用Embest EduKit-Ⅲ实验板的256色彩色液晶屏(320×240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现以下功能:液晶屏(Liquid Crystal Display,LCD)主要用于显示文本及图形信息.液晶显示屏具有轻薄、体积小、低耗电量、无

7.7 液晶显示实验

7.7.1 实验目的

(1)初步掌握液晶屏的使用及其电路设计方法.

(2)掌握S3C2410X处理器的LCD控制器的使用.

(3)通过实验掌握液晶显示文本及图形的方法与程序设计.

7.7.2 实验设备

(1)硬件:Embest EduKit-Ⅲ实验平台,ULINK USB-JTAG仿真器套件,PC.

(2)软件:μVision IDE for ARM集成开发环境,Windows 98/2000/NT/XP/7.

7.7.3 实验内容

通过使用Embest EduKit-Ⅲ实验板的256色彩色液晶屏(320×240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现以下功能:

(1)画出多个矩形框.

(2)显示ASCII字符.

(3)显示汉字字符.

(4)显示彩色位图

7.7.4 实验原理

(1)液晶显示屏(LCD).

液晶屏(Liquid Crystal Display,LCD)主要用于显示文本及图形信息.液晶显示屏具有轻薄、体积小、低耗电量、无辐射危险、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面.

①主要类型及性能参数.

液晶显示屏按显示原理分为STN和TFT两种.

a.STN(Super Twisted Nematic,超扭曲向列)液晶屏.

STN液晶显示器与液晶材料、光线的干涉现象有关,因此显示的色调以淡绿色与橘色为主.STN液晶显示器中,使用X、Y轴交叉的单纯电极驱动方式,即X、Y轴由垂直与水平方向的驱动电极构成,水平方向驱动电压控制显示部分为亮或暗,垂直方向的电极则负责驱动液晶分子的显示.STN液晶显示屏加上彩色滤光片,并将单色显示矩阵中的每一像素分成三个子像素,分别通过彩色滤光片显示红、绿、蓝三原色,也可以显示出色彩.单色液晶屏及灰度液晶屏都是STN液晶屏.

b.TFT(Thin Film Transistor,薄膜晶体管)彩色液晶屏.

随着液晶显示技术的不断发展和进步,TFT液晶显示屏被广泛用于制作成电脑中的液晶显示设备.TFT液晶显示屏既可在笔记本电脑上应用(现在大多数笔记本电脑都使用TFT显示屏),也常用于主流台式显示器.

使用液晶显示屏时,主要考虑的参数有外形尺寸、分辨率、点宽、色彩模式等.以下是Embest EduKit-Ⅲ实验板所选用的液晶屏(LRH9J515XA STN/BW)的主要参数:

表7-3 LRH9J515XA STN/BW液晶屏主要技术参数

img350

可视屏幕的尺寸及参数示意如图7-18所示.

液晶屏外形如图7-19所示.

②驱动与显示.

液晶屏的显示要求设计专门的驱动与显示控制电路.驱动电路包括提供液晶屏的驱动电源和液晶分子偏置电压,以及液晶显示屏的驱动逻辑;显示控制部分可由专门的硬件电路组成,也可以采用集成电路(IC)模块,比如EPSON的视频驱动器等,还可以使用处理器外围LCD控制模块.实验板的驱动与显示系统包括S3C2410X片内外设LCD控制器、液晶显示屏的驱动逻辑以及外围驱动电路.

(2)S3C2410XLCD控制器.

①LCD控制器特点.

S3C2410X处理器集成了LCD控制器,主要功能是传输显示数据和产生控制信号,并且它支持屏幕水平和垂直滚动显示.数据的传送采用DMA(直接内存访问)方式,以达到最小的延迟.它可以支持多种液晶屏.

img351

图7-18 液晶屏参数示意图

img352

图7-19 LRH9J515XA STN/BW液晶屏外形

STN LCD:

a.支持3种类型的扫描方式:4位单扫描、4位双扫描和8位单扫描.

b.支持单色、4级灰度和16级灰度显示.

c.支持256色和4096色彩色STN LCD.

d.支持多种屏幕大小.

典型的实际屏幕大小是:640×480,320×240,160×160和其他.

最大虚拟屏幕占内存大小为4M字节.

256色模式下最大虚拟屏幕大小是:4096×1024,2048×2048,1024×4096和其他.

TFT LCD:

a.支持1bpp、2bpp、4bpp或8bpp彩色调色显示.

b.支持16bpp和24bpp非调色真彩显示.

c.在24bpp模式下,最多支持16M种颜色.

d.支持多种屏幕大小.

典型的实际屏幕大小是:640×480,320×240,160×160和其他.

最大虚拟屏幕占内存大小为4M字节.

64K色模式下最大虚拟屏幕大小是:2048×1024和其他.

②LCD控制器内部结构.

LCD控制器主要提供液晶屏显示数据的传送、时钟和各种信号的产生与控制功能.S3C2410X处理器的LCD控制器主要部分框图如图7-20所示:

img353

图7-20 LCD控制器框图

S3C2410XLCD控制器用于传输显示数据和产生控制信号,例如VFRAME、VLINE、VCLK、VM等.除了控制信号之外,S3C2410X还提供数据端口供显示数据传输,也就是VD[23∶0].如图7-11所示.LCD控制器包含REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600等控制模块.REGBANK中有17个可编程的寄存器组和256×16调色板内存用于配置LCD控制器.LCDCDMA是一个专用的DMA,它负责自动地将帧缓冲区中的显示数据发往LCD驱动器.通过特定的DMA,显示数据可以不需要CPU的干涉,自动地发送到屏幕上.VIDPRCS将LCDCDMA发送过来的数据变换为合适的格式(例如4/8位单扫描或4位双扫描显示模式)之后通过VD[23∶0]发送到LCD驱动器.TMIEGEN包含可编程逻辑,用于支持不同LCD驱动器对时序以及速率的需求.VFRAME、VLINE、VCLK、VM等控制信号由TIMEGEN产生.在LCD控制的33个输出接口中有24个用户数据输出,9个用于控制.如下表所示.

表7-4 S3C2410XLCD控制器输出接口说明

img354

续表

img355

LCD控制寄存器如下表所示.

表7-5 LCD控制器寄存器列表[注]

img356

注:以下实验说明中只是简单地介绍控制寄存器的含义,详细使用请参考S3C2410X处理器数据手册;地址从0x14A0002C到0x14A00048禁止使用,因为这个区域用作测试用保留地址.

S3C2410X能够支持STN LCD和TFT LCD,这两种LCD屏在显示的时候有很大的差别,而且所涉及的寄存器也会不同.Embest EduKit-Ⅲ实验平台采用的是STN LCD,下面对STN LCD的显示过程进行详细的介绍.

③STN LCD显示.

a.LCD控制器时间相关参数设定.

TIMEGEN产生LCD驱动器所需要的控制信号,例如VFRAME、VLINE、VCLK和VM.这些控制信号又和REGBANK中的寄存器LCDCON1/2/3/4/5的设置密切相关.可以对REGBANK中的这些寄存器进行设置以产生适合于不同种类LCD驱动器的控制信号.

VFRAME脉冲是LCD的帧控制信号,它在每一帧的整个第一行期间有效.

VM交流控制电压信号用于控制像素的亮和灭.VM信号的频率取决于LCDCON1寄存器的MMODE位和LCDCON4寄存器的MVAL域.如果MMODE位为0,则VM信号就在每一帧切换一次;如果MMODE位为1,则VM信号的切换位置由MVAL[7∶0],即LCDCON4[15∶8]的值来决定.具体的公式为:

VM速率=VLINE速率/(2×MVAL)

VM Rate=VLINE Rate/(2×MVAL)

VFRAME和VLINE脉冲的产生依赖于对LCDCON2/3寄存器中HOZVAL域和LINEVAL域的配置,HOZVAL和LIINEVAL可以由LCD的大小和显示模式,根据如下公式来确定:

HOZVAL=(水平尺寸/VD数据位)

在彩色模式下:

水平尺寸=3×水平像素点数

在4位单扫描模式和4位双扫描模式下,VD数据位均为4,而在8位单扫描模式下VD数据位为8.

单扫描模式:LINEVAL=垂直尺寸-1

双扫描模式:LINEVAL=(垂直尺寸/2)-1

VCLK取决于LCDCON1中CLKVAL域(LCDCON1[17∶8])的配置,CLKVAL最小值为2.

VCLK(Hz)=HCLK/(CLKVAL×2)

帧速率取决于VFARME的信号频率.帧速率和LCDCON1/2/3/4寄存器中的域WLH[1∶0](VLINE脉冲宽度)、WDLY[1∶0](VLINE脉冲之后延迟宽度)、HOZVAL、LINEBLANK和LINEVAL以及VCLK、HCLK有密切关系.多数LCD驱动器都需要按照下面的方法设置适当的帧速率.

帧速率(Hz)=1/{[(1/VCLK)×(HOZVAL+1)+(1/HCLK)×

       (A+B+(LINEBLANK×8))]×(LINEVAL+1)}

其中:

A=2(4+WLH),B=2(4+WDLY)

LINEBANK:水平扫描信号LINE持续时间设置(MCLK个数)

LINEVAL:显示屏的垂直尺寸

VCLK是LCD控制器的时钟信号,VCLK的计算需要先计算数据传送速率,并由此设定的一个大于数据传送速率的值为CLKVAL(LCDCON1[17∶8]).

每一种显示模式的MV值如表7-6所示.屏幕滚动显示的示例(单扫描)如图7-21所示.

数据传送速率=水平尺寸×垂直尺寸×帧速率×模式值(MV)

表7-6 每一种显示模式的MV值

img357

img358

图7-21 屏幕滚动显示的示例(单扫描)

b.LCD控制器帧显示控制参数设定.

LCD控制器中与帧显示控制相关的寄存器为LCDSADDR1~3.在表7-5中已经分别进行了说明,下面对这组寄存器中与帧显示控制相关的各个域再分别加以详细介绍:

LCDBANK(LCDSADDR1[29∶21]):访问系统内存中显示存储区的地址(A[30∶22])值.

LCDBASEU(LCDSADDR1[20∶0]):双扫描时,设置为帧缓存地址(A[21∶1])的高位缓存起始地址指针;单扫描时,设置为帧缓存起始地址指针.

LCDBASEL(LCDSADDR2[20∶0]):双扫描时,设置为帧缓存地址(A[21∶1])的低位缓存起始地址指针;单扫描时,设置为帧缓存结束地址指针.

LCDBASEL=((帧缓存结束地址)>>)+1=LCDBASEU+(PAGEWIDTH+OFFSIZE)×(LINEVAL+1).

OFFSIZE(LCDSADDR3[21∶11]):显示存储区的前行最后半字和后行第一个半字之间的半字数(计算方法:虚拟屏幕上一行的半字数-LCD屏上一行的半字数).

PAGEWIDTH(LCDSADDR3[11∶0]):显示存储区的可见帧宽度(半字数).

具体的参数设置可以参考下面几个例子:

例1.LCD∶2bpp STN,320×240,四位双扫描,虚拟屏幕:1024×1024.

1个半字=8像素(4级灰度,2位表示1像素)

虚拟屏幕上的一行=128个半字(1024×2/16)

LCD屏上的一行=40个半字(320×2/16)

OFFSIZE=128-40=88=0x58

PAGEWIDTH=40=0x28

LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)×(LINEVAL+1)=100+(40+88)×120=0x3C64

例2.LCD液晶屏:320×240,16级灰度,单扫描.

数据帧首地址=0x0c500000

偏移点数=2048dots(512半字)(假定值)

LINEVAL=240-1=0xef

PAGEWIDTH=320×4/16=0x50

OFFSIZE=512=0x200(假定值)

LCDBANK=0x0c500000>>22=0x31

LCDBASEU=0x100000>>1=0x80000(假定值)

LCDBASEL=0x80000+(0x50+0x200)×(0xef+1)=0xa2b00

例3.LCD液晶屏:320×240,16级灰度,双扫描.

数据帧首地址=0x0c500000

偏移点数=2048 dots(512半字)(假定值)

LINEVAL=120-1=0x77

PAGEWIDTH=320×4/16=0x50

OFFSIZE=512=0x200(假定值)

LCDBANK=0x0c500000>>22=0x31

LCDBASEU=0x100000>>1=0x80000(假定值)

LCDBASEL=0x80000+(0x50+0x200)×(0x77+1)=0x91580

例4.LCD液晶屏:320×240,彩色,单扫描.

数据帧首地址=0x0c500000

偏移点数=1024 dots(512半字)(假定值)

LINEVAL=240-1=0xef

PAGEWIDTH=320×8/16=0xa0

OFFSIZE=512=0x200

LCDBANK=0x0c500000>>22=0x31

LCDBASEU=0x100000>>1=0x80000

LCDBASEL=0x80000+(0xa0+0x200)×(0xef+1)=0xa7600

c.STN LCD控制器信号时序.

显示数据从内存中发送到LCD驱动器上就可以完成数据显示.首先,在VCLK的控制下,显示数据被送到LCD驱动器的移位寄存器上,当某一行上的数据全部进入移位寄存器后,这些数据在VLINE信号的下降沿经过WDLY指定的延迟时间后被显示到LCD屏上.

VM信号提供显示所需要的交流信号,来控制每一个像素的亮和灭.VM信号的极性变化有两种模式:当MMODE为0时,它每一帧变化一次;当MMODE为1时,它变化的周期由MVAL来决定.8位单扫描模式下SNTLCD控制信号时序如图7-22所示.

img359

图7-22 8位单扫描模式下STN LCD控制器信号时序(整帧)

注:1.WLH(STN):VLINE高电平的系统时钟个数(LCDCON4[7∶0]设置).

  2.WDLY(STN):VLINE后VCLK延时系统时钟个数(LCDCON3[25∶19]设置).

d.扫描模式支持.

S3C2410XLCD控制器扫描工作方式通过PNRMOD(LCDCON1[6∶5])设置,如表7-7所示.

表7-7 扫描模式选择

img360

  4位双扫描(STN):显示控制器分别使用两个扫描线进行数据显示.显示数据从VD

[3∶0]获得高扫描数据,从VD[7∶4]获得低扫描数据;彩色液晶屏数据位代表RGB色.

  4位单扫描(STN):显示控制器扫描线从左上角位置进行数据显示.显示数据从VD

[3∶0]获得,VD[7∶4]没有使用;彩色液晶屏数据位代表RGB色.

  8位单扫描(STN):显示控制器扫描线从左上角位置进行数据显示.显示数据从VD

[7∶0]获得;彩色液晶屏数据位代表RGB色.

  单色显示扫描类型如图7-23所示,彩色显示扫描类型如图7-24所示.

img361

图7-23 单色显示扫描类型(STN)

img362

图7-24 彩色显示扫描类型(STN)

e.数据的存放与显示.

液晶控制器传送的数据表示了一个像素的属性:4级灰度屏用两个数据位代表一个像素;16级灰度屏时使用4个数据位代表一个像素;256色RGB彩色模式使用8个数据位(R[7∶5]、G[4∶2]、B[1∶0])代表一个像素;4096色RGB彩色模式使用12个数据位(4位为红,4位为绿,4位为蓝)代表一个像素(每8个像素,即12个字节为显示数据的存放边界).显示缓存中存放的数据必须符合硬件及软件设置,即要注意字节对齐方式.

在4位或8位单扫描方式时,数据的存放与显示如图7-25所示:

img363

图7-25 4位或8位单扫描数据显示

在4位双扫描方式时,数据的存放与显示如图7-26所示:

img364

图7-26 4位双扫描数据显示

7.7.5 实验设计

(1)电路设计.

进行液晶屏控制电路设计时必须提供电源驱动、偏压驱动以及LCD显示控制器.由于S3C2410X处理器本身自带LCD控制器,而且可以驱动实验板所选用的液晶屏,所以控制电路的设计可以省去显示控制电路,只需进行电源驱动和偏压驱动的电路设计即可.

①液晶电路结构框图.

液晶电路结构如图7-27所示.

img365

图7-27 LCD结构框图

②管脚说明.液晶屏管脚如表7-8所示.

表7-8 液晶屏管脚

img366

③控制电路设计.

由前述可知实验板所选用的液晶屏的驱动电源是21.5V,因此直接使用实验系统的3V或5V电源时需要电压升压控制,实验系统采用的是MAX629电源管理模块,以提供液晶屏的驱动电源.偏压电源可由系统升压后的电源分压得到.以下是S3C2410实验板的电源驱动和偏压驱动参考电路.

img367

图7-28 电源驱动与偏压驱动电路

(2)软件程序设计.

由于实验要求在液晶显示屏上显示包括矩形、字符和位图文件,所以实验程序设计主要包括三大部分:矩形显示、字符显示、位图显示.

①设计思路.

使用液晶屏显示最基本的是像素控制数据的使用,像素控制数据的存放与传送形式,决定了显示的效果.这也是所有显示控制的基本程序设计思想.图形显示可以直接使用像素控制函数实现;把像素控制数据按一定形式存放即可实现字符显示,比如ASCII字符、语言文字字符等.

Embest EduKit-Ⅲ实验平台的LCD显示部分像素控制函数按如下设计:

void(*PutPixel)(UINT32T,UINT32T,UINT32T); //define pointer of function,display single pixel

void(*BitmapView)(UINT8T*pBuffer); //define pointer of function,display bitmap

②矩形显示.

矩形显示可以通过两条水平线和两条垂直线组成,因此在液晶显示屏上显示矩形实际就是画线函数的实现.画线函数则通过反复调用像素控制函数得到水平线或垂直线.

void Glib_Line(int x1,int y1,int x2,int y2,int color);      //draw line

void Glib_Rectangle(int x1,int y1,int x2,int y2,int color);    //draw rectangle

void Glib_FilledRectangle(int x1,int y1,int x2,int y2,int color);  //filled rectangle

void Glib_ClearScr(U32 c,int type);              //clear screen

③字符显示.

字符的显示包括ASCII字符和汉字的显示.字符的显示可以采用多种形式字体,其中常用的字体大小有(W×H或H×W):8×8、8×16、12×12、16×16、16×24、24×24等,用户可以使用不同的字库以显示不同的字体.如实验系统中使用8×16字体显示ASCII字符,使用24×24字体显示汉字.

不管显示ASCII字符还是点阵汉字,都是通过查找预先定义好的字符表来实现,这个存储字符的表我们叫做库,相应的有ASCII库和汉字库.

const INT8U g_Auc_Ascii8x16[]={//ASCII字符查找表}

ASCII字符的存储是把字符显示数据存放在以字符的ASCII值为下标的库文件(数组)中,显示时再按照字体的长与宽和库的关系取出作为像素控制数据显示.ASCII库文件只存放ANSI ASCII的共255个字符.请参考程序ascii8x16.c.

const INT8U g_auc_HZK24[]={//点阵汉字查找表}

点阵汉字库是按照方阵形式进行数据存放,所以汉字库的字体只能是方形的.汉字库的大小与汉字显示的个数及点阵数成正比.请参考程序hzk24.c.

④位图文件显示.

通过把位图文件转换成一定容量的显示数组,并按照一定的数据结构存放.与字符的显示一样,传送的数据需要设计软件控制程序.

Embest EduKit-Ⅲ实验平台位图显示的存放数据结构(请参考程序bmp_data.c)及控制程序:

const INT8U g_ucBitmap[]={//位图文件数据};

位图显示由void(*BitmapView)(UINT8T*pBuffer)完成,它实际上是指向下面函数的一个函数指针.

void BitmapViewCstn8Bit(UINT8T*pBuffer);

7.7.6 实验操作步骤

(1)准备实验环境.

使用ULINK USB-JTAG仿真器连接到目标板上.使用Embest EduKit-Ⅲ实验板附带的串口线,连接实验板上的UART0和PC的串口.

(2)串口接收设置.

在PC上运行Windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其他串口通信程序.

(3)打开实验例程.

①拷贝实验平台附带光盘CD1\CD1_Basic_070615\Software文件夹到RealView MDK软件的安装目录的Keil\ARM\Boards\Embest\目录下(如果已经拷贝,可跳过此步骤).

②使用μVision IDE for ARM通过ULINK USB-JTAG仿真器连接实验板,打开实验例程目录5.1_color_lcd_test子目录下的color_lcd_test.Uv2例程,编译链接工程成功.

③根据ReadMe目录下的ReadMeCommon.txt及readme.txt文件配置集成开发环境(工程默认已经配置正确),点击工具栏img368”,在Option for Target对话框的Linker页中选择RuninRAM.sct分散加载文件,点击MDK的Debug菜单,选择Start/Stop Debug Session项或点击工具栏“img369”,下载工程生成的.axf文件到目标板的RAM中调试运行.

④如果需要将程序烧写固化到Flash中,仅需要更改分散加载文件即可(须慎用,这一步的操作将会破坏Flash中原有固化程序,建议实验中不操作).在Option for Target对话框的Linker页中选择RuninFlash.sct分散加载文件,重新编译工程,点击MDK的Flash菜单,选择Download烧写调试代码到目标系统的Nor Flash中,重启实验板,实验板将会运行烧写到Nor Flash中的代码.

⑤点击Debug菜单的Go或F5键运行程序.

(4)观察实验结果.

在PC上观察超级终端程序主窗口,可以看到如下界面:

Boot success...

LCD display Test Example(please look at LCD screen)

Initializing GPIO ports...

[STN256 COLOR(8bit/1pixel)LCD TEST]

此时,观察LCD液晶屏,用户可以看到包含多个矩形框、ASCII字符、汉字字符和彩色位图显示.

7.7.7 实验参考程序及流程图

img370

图7-29 液晶显示实验流程图

代码

(1)液晶屏初始化.

img371

img372

img373

(2)显示像素和位图.

img374

img375

(3)显示ASCII码和汉字.

img376

img377

img378

7.7.8 练习题

1.请在液晶屏上显示下面的图形.

img379

2.修改程序使用DMA方式在彩色液晶屏上显示彩色位图.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈