This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem in interfacing lcd module

Other Parts Discussed in Thread: MSP430FE425

Hi everybody,

                     I am doing a project in msp430fe425 which need lcd interface. i have configured the registers but the segment turn on only for 1 to 2 seconds and then off .can any one know the reason for this .My configuration is like this as given below.

 

void main(void)
{
  int i;
  WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog timer
  FLL_CTL0 |= XCAP18PF;                 // Set load capacitance for xtal 
  LCDCTL = LCDON + LCDSG0_3 + LCD4MUX;  // 4mux LCD, segs0-23 = outputs
  BTCTL = BT_fLCD_DIV128;               // Set LCD frame freq = ACLK/128
 
  for( i = 0; i < 20; i ++)
  {
    LCDMEM[i] = 0;                      // Clear LCD
  }

  for (;;)
  {
    for (i=0; i<7; ++i)                
      LCDMEM[i] = oxFF;
  }

}

plz reply immediately .

  • If you use a transistor like an inversor in the ci output to drive power to the lcd the segment stay on?

    to do that you will need to invert the lcd output.

  • sorry its not working.my problem is that the basic timer 1 module is not working properly .it increments only 3 or 5 values and then stopping.plz suggest an idea for this problem. i think my configuration for ACLK is not proper.plz give a sample program for configuring the ACLK.I am using internal 32khz crystal.

                                                                    thank you.  

  • Afreesh,

    I am not sure if the basic timer is the real issue here.

    In any case if you plan to use 4 mux mode you will need to initialize the COM lines.

    Find below a code example:

    const char digit[10] =
    {
      0xB7,  /* "0" LCD segments a+b+c+d+e+f */
      0x12,  /* "1" */
      0x8F,  /* "2" */
      0x1F,  /* "3" */
      0x3A,  /* "4" */
      0x3D,  /* "5" */
      0xBD,  /* "6" */
      0x13,  /* "7" */
      0xBF,  /* "8" */
      0x3F   /* "9" */
    };

    void main(void)
    {
       int i;
      WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
      FLL_CTL0 |= XCAP14PF;                     // Configure load caps
      LCDCTL = LCDP2 + LCD4MUX + LCDON;         // STK LCD 4-Mux, segments S0-S27
      BTCTL = BTFRFQ1;                          // STK LCD freq = ACLK/128
      P5SEL = 0xFC;                             // Set Rxx and COM pins for LCD

      for (;;)
      {
        for (i=0; i<7; ++i)                     // Display "6543210"
          LCDMEM[i] = digit[i];
      }
    }

     

    Further LCD code examples for the FE42x can be found here: http://focus.ti.com/docs/prod/folders/print/msp430fe425.html#toolssoftware

    Regards,

    Priya

**Attention** This is a public forum