LCD液晶驱动模块本节提要•LCD液晶显示器简介•MSP430LCD控制器液晶显示器原理在单片机的应用中,人机界面占据相当重要的地位。人机界面主要包括事件输入和结果指示,事件输入包括键盘输入,通讯接口,事件中断等,结果指示包括LED/LCD显示、通讯接口、外围设备操作等。而在这些人机界面当中,LCD显示技术由于其具有界面友好,成本较低等特点而在很多应用场合得以广泛应用。液晶显示器的原理是利用液晶的物理特性,通电时导通,排列变得有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。通过和不通过的组合就可以在屏幕上显示出图像来。通俗地说,液晶显示器就是两块玻璃中间夹了一层(或多层)液晶材料,液晶材料在信号控制下改变自己的透光状态,于是就能在玻璃面板前看到图像了。由于液晶是通过环境光来显示信息的,液晶本身不主动发光,所以液晶功耗很低,更加适合于单片机低功耗应用系统。整个LCDPanel由上下玻璃基板和偏振片组成,在上下玻璃之间,按照螺旋结构将液晶分子有规律的进行涂层。液晶面板的电极是通过一种ITO的金属化合物蚀刻在上下玻璃基板上。如图所示,液晶分子的排列为螺旋结构,对光线具有旋光性,上下偏振片的偏振角度相互垂直。在上下基板间的电压为0时,自然光通过偏振片后,只有与偏振片方向相同的光线得以进入液晶分子的螺旋结构的涂层中,由于螺旋结构的的旋旋光性,将入射光线的方向旋转90度后照射到另一端的偏振片上,由于上下偏振片的偏振角度相互垂直,这样入射光线通过另一端的偏振片完全的射出,光线完全进入观察者的眼中,看到的效果就为白色。而在上下基板间的电压为一交流电压时,液晶分子的螺旋结构在电(磁)场的作用下,变成了同向排列结构,对光线的方向没有作任何旋转,而上下偏振片的偏振角度相互垂直,这样入射光线就无法通过另一端的偏振片射出,光线无法进入观察者的眼中,看到的效果就为黑色。这样通过在上下玻璃基板电极间施加不同的交流电压,即可实现液晶显示的两种基本状态亮(On)和暗(Off)。下面以直视型简单多路液晶显示面板TN/STNLCDPanel的基本结构介绍LCD的基本显示原理。LCD的几个关键参数•在实际的液晶模拟驱动电压中,有几个参数非常关键:1、交流电压,液晶分子是需要交流信号来驱动的,长时间的直流电压加在液晶分子两端,会影响液晶分子的电气化学特性,引起显示模糊,寿命的减少,其破坏性为不可恢复;2、扫描频率,直接驱动液晶分子的交流电压的频率一般在60~100Hz之间,具体是依据LCDPanel的面积和设计而定,频率过高,会导致驱动功耗的增加,频率过低,会导致显示闪烁,同时如果扫描频率同光源的频率之间有倍数关系,则显示也会有闪烁现象出现。LCD的几个关键参数3、占空比(Duty),该项参数一般也称为Duty数或COM数。由于STN/TN的LCD一般是采用时分动态扫描的驱动模式,在此模式下,每个COM的有效选通时间与整个扫描周期的比值即占空比(Duty)是固定的,等于1/COM数。4、偏置(Bias),LCD的SEG/COM的驱动波形为模拟信号,而各档模拟电压相对于LCD输出的最高电压的比例称为偏置,而一般来讲,Bias是以最低一档与输出最高电压的比值来表示。液晶的分类•段式:段式液晶所显示的图形都是事先制定好的,如七段数码字的段码,在显示时不能变化。•点阵式:可以组成任何图形,但比较复杂,需要配备专门的驱动电路和控制命令。MSP430液晶驱动模块LCD_B主要特点•具有显示缓存器•所需的SEG、COM信号自动产生•多种扫描频率•每个闪烁段都有独立的闪烁存储器•稳压电荷泵•软件实现反向控制•显示缓存器可作为一般存储器•4种驱动方法•静态–2-mux,1/2bias或1/3bias–3-mux,1/2bias或1/3bias–4-mux,1/2bias或1/3bias不同驱动方式下公共极和驱动段的关系液晶显示缓存器和段、公共极输出控制液晶显示缓存器各个位与液晶的段一一对应。存储位置位则可以点亮对应的液晶段,存储位复位液晶段变暗。段、公共极输出控制能够自动从显示缓存器读取数据,送出相应信号到液晶玻璃片上。因为不同器件驱动液晶的段数不同,所以液晶显示缓存器的数量也不一样。数量越大,驱动能力越强,显示的内容就越多。静态方式静态方式只有一个公共极,所以位0和位4存储段信息。每个字的8段安排在4个显存字节中。根据图4-54所示的连接情况和显存结构,在静态方式下显示数字“0”,可将连续四个显存字节内容设置为:0X11、0X11、0X11、0X00,即显示a、b、c、d、e、f段。2-mux方式2MUX方式有2个公共极,所以可以用显示缓存器的位4、5和位0、1来存储段信息。每个字的8段安排在2个显存字节中。根据图4-55所示的连接情况和显存结构,在2MUX方式下显示数字“0”,可将连续2个显存字节内容设置为:0X23、0X13、即显示a、b、c、d、e、f段。3-mux方式3MUX方式有3个公共极,所以可以用显示缓存器的位4、5、6和位0、1、2来存储段信息。3MUX方式支持每个字9段,而不是8段,每个字的9段被安排在1.5个显存字节中。根据图4-56所示的连接情况和显存结构,在3MUX方式下显示数字“0”,可将连续2个显存字节内容设置为:0X53、0X06即显示a、b、c、d、e、f段。4-mux方式4MUX方式有4个公共极,所以可以用显示缓存器的位4、5、6、7和位0、1、2、3来存储段信息。每个字的全部8段被安排在同一个显存字节中。4MUX方式是最简单、方便的显示方式。根据图4-59所示的连接情况和显存结构,在4MUX方式下显示数字“0”,可将1个显存字节内容设置为:0XEB即显示a、b、c、d、e、f段。电路图SEG_BL_EN连接430单片机P5.7,对于单片机,P5.7作为普通的GPIO使用,对于LCD,可以认为是片选信号。其余的SEG0~SEG11,COM0~COM3是单片机的引脚直接连接到LCD接口上。LCD段定义//LCD段定义#defined0x01#definec0x20#defineb0x40#definea0x80#definedp0x10#defineg0x04#definef0x08#definee0x02constcharchar_gen[]={//Asusedin430DayWatchDemoboarda+b+c+d+e+f,//Displays0b+c,//Displays1a+b+d+e+g,//Displays2a+b+c+d+g,//Displays3b+c+f+g,//Displays4a+c+d+f+g,//Displays5a+c+d+e+f+g,//Displays6a+b+c,//Displays7a+b+c+d+e+f+g,//Displays8a+b+c+d+f+g,//Displays9a+b+c+e+f+g,//DisplaysAc+d+e+f+g,//Displaysba+d+e+f,//Displayscb+c+d+e+g,//Displaysda+d+e+f+g,//DisplaysEa+e+f+g,//Displaysfa+b+c+d+f+g,//Displaysgc+e+f+g,//Displayshb+c,//Displaysib+c+d,//Displaysjb+c+e+f+g,//Displayskd+e+f,//DisplaysLa+b+c+e+f,//Displaysna+b+c+d+e+f+g+dp//Displaysfull};LCD寄存器LCD的寄存器主要包括三大类:控制寄存器(共10个)显示缓冲寄存器LCDM1~LCDM28闪烁缓冲寄存器LCDBM1~LCDBM28LCD控制寄存器0(LCDBCTL0)LCDDIVx:第11~15位,LCD频率选择。LCDPREx:第8~10位,LCD频率选择。LCDSSEL:第7位,LCD刷新频率和闪烁频率时钟源选择位0:ACLK;1:VLOCLK;LCDMXx:第3~5位,LCD的驱动模式控制位。000:静态驱动;001:2MUX驱动;010:3MUX驱动;011:4MUX驱动;100:5MUX驱动;101:6MUX驱动;110:7MUX驱动;111:8MUX驱动;LCDSON:第2位,LCD所有段熄灭控制位。0:所有LED段熄灭;1:所有LED段使能,根据相应显示缓存点亮或熄灭。LCDLP:第1位,LCD低功耗波形驱动使能控制位。0:标准LCD驱动波形;1:低功耗LCD驱动波形。LCDON:第0位,LCD开关控制位。0:LCD关闭;1:LCD打开。例一:数码管动态显示数字0—5voidInit_lcd(void){LCDBCTL0=LCDDIV0+LCDPRE0+LCD4MUX;//时钟1分频,时钟源ACLK,4MUX驱动LCDBPCTL0=LCDS0+LCDS1+LCDS2+LCDS3+LCDS4+LCDS5+LCDS6+LCDS7+LCDS8+LCDS9+LCDS10+LCDS11;P5SEL|=BIT3+BIT4+BIT5;}voidBacklight_Enable(void){P8DIR|=BIT0;P8OUT|=BIT0;}voidLCD_Clear(void)//清屏{unsignedcharindex;for(index=0;index12;index++){LCDMEM[index]=0;}}voidLcdGo(unsignedcharDot){if(Dot==1){//打开液晶显示LCDBCTL0|=LCDON;}elseif(Dot==0){//关闭液晶显示LCDBCTL0&=~LCDON;}}voidmain(void){……Init_lcd();//LCD初始化Backlight_Enable();//打开背光LcdGo(1);//打开液晶模块LCD_Clear();//清屏while(1){for(i=0;i6;i++)//Display012345{for(j=0;j6;j++){LCDMEM[j]=char_gen[i];}delay_ms(1000);}}}基本任务:数码管动态显示数字0—5。进阶任务:1、数码管同时显示“012345”2、加按键控制,初始值为0(只有一位显示,其余消隐),通过按键改变显示的值,按一次加1,变成10后显示两位。TFT结构G1G2G3GmGm-1S1S2S3Sn-1SnSource线储存电容Gate线液晶电容TFTPixeldot每個像素均由三種颜色红(R)绿(G)蓝(B)的小光点(dot)构成先开启第一行,其余关闭。TFT玻璃电极DataLineScanLineONOFFOFFOFFTFTLCD的显示方式接着关闭第一列,电压已经固定,所以显示颜色也已固定。开启第二列,其余仍保持关闭。依此类推,可完成整个画面之显示。ONOFFOFFOFF