zqd311107 发表于 2011-5-9 16:34:51

MSP430液晶LCD048

概述

TI公司MSP430系列单片机是一种超低功耗的混合信号控制器,其中包括一系列器件,它们针对不用的应用由不同的模块组成。其中FLASH系列使高效电子系统变得轻巧,FLASH存储器也具有很强的灵活性。同时为了在低频率振荡器的驱动下得到较高的稳定频率,某些MSP430器件上使用了锁频技术FLL或增强型锁频环技术FLL+。如MSP430F425的时钟模块中使用了FLL+技术,这样可以得到稳定的频率。

液晶驱动

    MSP430器件上的液晶显示器的控制/驱动将简化液晶显示器的显示。不同型号的液晶驱动能力不同,我们采用 MSP430的F42X系列,有128段驱动能力。

液晶的驱动有4种方法:静态,2MUX或1/2占空比,3MUX或1/3占空比, 4MUX或1/4占空比。对于不同系列、不同型号的液晶驱动原理,控制方法都是一样的,不同点在于驱动液晶段数不一样,或可显示信息的多少不一样。我们采用4MUX,这种方式也最简单。

其中需要注意以下两点:

    (1)液晶的偏压。由于液晶驱动使用交流电压,所以必须根据液晶的工作模MSP430进行偏压设置,具体的操作是:STATIC模式下,R33开路,R03-R23接地,2MUX模式下,分别在R33、R13以及R13、R03之间接上10K的电阻;3/4MUX模式下,分别在R33、R23之间,R23、R13以及R13、R03之间接上10K的电阻,这样就能保证COM0-COM3出来供给液晶块的电压符合要求。

    (2)频率的设置。MSP430有三种时钟ACLK(辅助时钟)、MCLK(主时钟)、SMCLK(子时钟),其中液晶的驱动频率FCLK来自ACLK。在XTIN和XTOUT之间接上振荡频率为32KHz的晶振,Fclk可以根据需要选为1024Hz、512Hz、256Hz、128Hz等。由FRFQ0和FRFQ1的设置可以满足不同液晶对频率的要求,其中Flcd=2*MUX(rate)*F(framing)。

    例如:采用3MUX,已知F(framing)=100Hz-30Hz,

    由F(LCD)=2*MUX(rate)*F(framing)=6*F(framing),

    可知F(LCD)=180Hz-600Hz。可选择的F(LCD)为1024Hz、512Hz、256Hz、128Hz,所以F(LCD)=32K/128=256Hz,所以FRFQ0=1、FRFQ1=0。

    在以上两点做好的基础上,我们只要把要输出的数字所对应的代码输出到MSP430的显存就可以显示。实验中如液晶抖动,可适当提高液晶的驱动频率。如液晶亮度不够,应适当调整偏压电阻的大小。

    在驱动电路中,液晶可以等效为电容。两个电极分别为公共极与段极。公共极由CMOn信号驱动,段极由SEGn信号驱动。由此可以得到4种驱动方法。

    (1)静态驱动:使用一个引脚作为液晶公共端COM0,而每一段段极需要另一个引脚驱动。

    (2)2MUX驱动:使用两个引脚作为液晶公共端COM0、COM1每两段段极需要另一引脚驱动。

    (3)3MUX驱动:使用三个引脚作为液晶公共端COM0、COM1、COM2,每3段段极需要另一引脚驱动。

    (4)4MUX驱动:使用4个引脚作为液晶公共端COM0、COM1、COM2,每4段段极需要另一引脚驱动。

    LCD048的资料

http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_638526SXJQ4K.jpg
(原文件名:59ca7ac506f6decdef893&690.jpg)



    显示“123456”程序

#include<msp430x42x.h>

const char digit =
{

0x7B,// "0"    LCD segments a+b+c+d+e+f    lcd= lsd048
0x12,// "1"
0x4F,// "2"
0x1F,// "3"
0x36,// "4"
0x3D,// "5"
0x7D,// "6"
0x13,// "7"
0x7F,// "8"
0x3F   // "9"
};
char *LCD=LCDMEM;


void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;               // Stop WDT
FLL_CTL0 |= XCAP14PF;                     // Configure load caps
for (i = 0; i < 10000; i++);         // Delay for 32 kHz crystal to

LCDCTL = 0x03d;                            // 4-Mux LCD, segments S0-S15
BTCTL= BTFRFQ1;                         // Set freqLCD = ACLK/128

for (i=0;i<6;i++)
{
   LCD=0;
}


    for(i=1;i<7;i++)
      LCD=digit;

}

补充:采用4MUX方式,相应的段顺序为:HEFCDGBA。显示1~9见上述程序,显示A~F:

      0x77,// "A"
      0x7c,// "B"
      0x69,// "C"
      0x5e,// "D"
      0x6d,// "E"
      0x65   // "F"

archi9966 发表于 2011-5-9 21:32:42

呵呵,好东西哈

test007 发表于 2011-5-14 15:05:22

“所以F(LCD)=32K/128=256Hz,所以FRFQ0=1、FRFQ1=0。 ”
这儿为什么不选择512hz呢,另外,FRFQ0=1、FRFQ1=0又是怎么来的?还望解惑,多谢
页: [1]
查看完整版本: MSP430液晶LCD048