查看: 3641|回复: 2

如何对 MSP430 的液晶模块的控制(网友西门吹猫贡献)

[复制链接]
  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-8-24 11:28:29 | 显示全部楼层 |阅读模式
    分享到:
    如何对 MSP430 的液晶模块的控制(网友西门吹猫贡献)

           上次看到有人在群里问MSP430自带的控制器,如何控制液晶。下面给大家讲讲430的LCD的控制器:
    首先先说下液晶,液晶属于绝缘体,靠电场而非电流来改变显示状态,理论上是不耗电的。但LCD在结构上相当一个电容器(两个电极中间是绝缘的液晶),交流电加在电容两极仍会有充放电电流。扫描频率越高,耗电越大。一般的LCD屏电容造成的耗电在3~5uA左右,屏幕增大、显示位数增多都会导致增大。
    //------------------------------------------------------------------------------------------------------//
    //               MSP430F4270
    //            -------------------------
    //          /|\|               XIN|-
    //           | |                  | 32kHz
    //          --|RST         XOUT|-
    //           |                   |
    //           |                   |
    //           |                S0 |   ----------
    //           |                -  |--> | 4 3 2 1 |
    //           |                S7 |   ----------
    //           |             COM0|-----||||
    //           |             COM1|------|||
    //           |             COM2|-------||
    //           |             COM3|--------|
    //           |                   |
    //-------------------------------------------------------------------------------------------------------------//
    下面看下例程:
    void main(void)
    {
    int i;
    WDTCTL = WDTPW + WDTHOLD;             // 关闭看门狗
    FLL_CTL0 |= XCAP18PF;                             //设置时钟为外部时钟
    LCDACTL = LCDON + LCD4MUX + LCDFREQ_128;
                                                                                // LCDON :打开LCD控制器;LCD4MUX:选择4mux COM LCD;LCDFREQ_128:ACLK/128:频率高了后显示不清楚,但是频率低了后,显示清楚了,但是没有连续感。
    LCDAPCTL0 = LCDS0 + LCDS4;                // 用了7段,
    //LCDAVCTL1 = VLCD_0;                              // 这个在这里是没有用的,只有我们外部接外部电容的时候,他控制电荷泵的。形成压差,控制显示。
    P5SEL = 0x1C;                                                 // 设置P5为第2功能,即LCD显示功能。

    for( i = 0; i < 4; i ++)
    {
        LCDMEM = 0;                                              // Clear LCD
    }
        LCDMEM[0] = 0XF6;                     
    //LCDMEM[0] = b4   b3   b2    b1   a4 a3 a2 a1
        LCDMEM[1] = 0XE8;                     
    //LCDMEM[1] = g4   g3   g2    g1   f4   f3  f2  f1
        LCDMEM[2] = 0X2D;                       
    //LCDMEM[2] = e4   e3   e2    e1   c4  c3 c2 c1
        LCDMEM[3] = 0X66;                     
    //LCDMEM[3] = dp4 dp3 dp2 dp1 d4 d3 d2 d1
    }
    下图是我的液晶的资料:

    我的硬件连接为
    COM1   -  COM0  
        |             |      
        |             |     
    COM4   -  COM3   
       A         -  S0   
       B         -  S1     
       F         -  S2
       G        -  S3
       C        -  S4
       E        -  S5
       D        -  S6   
    DP1     -  S7  
    但是上面的软件下载下去后,可以显示,但是显示的不是很清楚。然后我看了下data sheet,看下图:

    上面我少配置了几个,跟据4270的接线图,我选择的是1/2 BIAS,而且分压要设置为外部分压,并将V5设置为接地。所以需要加下一句就可以了:
    LCDAVCTL0 = LCD2B+LCDREXT + LCDR03EXT ;
    这样LCD就可以很清楚的显示:

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-11-22 00:51
  • 签到天数: 32 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-4-25 22:39:35 | 显示全部楼层
    呵呵 看到了这个帖子,想起我以前搞3段的液晶,比较难,但是还是用的汇编,唯一用汇编写的程序,当时还问过西门吹猫~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-1-12 22:37
  • 签到天数: 259 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-5-5 13:42:32 | 显示全部楼层
    火箭板里面的2552芯片里面有没有液晶控制器啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 01:09 , Processed in 0.135224 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.