⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 msp430单片机自带液晶驱动模块
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                                   太原理工大学测控技术
**                                     研    究    所
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: LCD.c
**创   建   人: 贺 虎
**最后修改日期: 2005年12月12日
**描        述: LCD Driver
**
**
**                                 Connections MSP430 -> LCD
**                                 -------------------------
**
**                                T.I.                  T.I.
**                           MSP430x44x MCU   STK/EVK 6.5 digit 4 mux LCD
**                                                    #T218010
**                           ---------------       --------------
**                          |          COM3 |-----|2    COM4     |
**                          |          COM2 |-----|1    COM3     |
**                          |          COM1 |-----|3    COM2     |
**                          |          COM0 |-----|4,20 COM1     |
**                          |          SEG0 |-----|19            |
**                          |          SEG1 |-----|18            |
**                          |          SEG2 |-----|17            |
**                          |          SEG3 |-----|16            |
**                          |          SEG4 |-----|15            |
**                          |          SEG5 |-----|14            |
**                          |          SEG6 |-----|13            |
**                          |          SEG7 |-----|12            |
**                          |          SEG8 |-----|11            |
**                          |          SEG9 |-----|10            |
**                          |          SEG10|-----|9             |
**                          |          SEG11|-----|8             |
**                          |          SEG12|-----|7             |
**                          |          SEG13|-----|6             |
**                          |          SEG14|-----|5 (bits C,E,H |
**                          |               |     |   of digit 7)|
**                          |               |      --------------
**                          |               |
**                           ---------------
**
**                   NOTE: Pin R03 on the MSP430 must be connected to GND              
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 贺 虎
** 版  本: v1.0 
** 日 期: 2005年12月12日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:显示码表:
**        Display Memory Bit:e h f c g d b a
**        调用函数display_number()7位以内任意位数整形数
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "msp430x44x.h"

#define SEGE 0X80
#define SEGH 0X40
#define SEGF 0X20
#define SEGC 0X10
#define SEGG 0X08
#define SEGD 0X04
#define SEGB 0X02
#define SEGA 0X01
const unsigned char digit[10] = {
  SEGA|SEGB|SEGC|SEGD|SEGE|SEGF,  /* "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 display_number(unsigned long value, int start, int width)
{
    int i;
    for (i = 0;  i < width;  i++)
    {
        LCDMEM[7 + i - start] = digit[value%10]; // remainder = character in table to display
        value /= 10;
    }
}
void Lcd_Clr(void)
{
  volatile unsigned char i;
  for (i=0; i<7; i++)
  {
    LCDMEM[i] = 0;
  }
}

float mmm= 1234.567;
void main(void)
{
  volatile unsigned int i;                  // Use volatile to prevent removal
                                            // by compiler optimization

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

  LCDCTL = LCDON + LCD4MUX + LCDSG0_1;      // LCD on, 4-Mux, segments S0-S15
  BTCTL = BT_fLCD_DIV128;                   // LCD clock freq is ACLK/128
  P5SEL = 0xFC;                             // Select P5.2-7 as Com and Rxx
  Lcd_Clr();

  while(1)
  {
      for (i = 0; i < 6000; i++)
      display_number(i,7,4);
      //LCDCTL ^= LCDSON;//在禁止和允许所有段输出之间切换
      //LCDCTL ^= LCDON;//通过开关定时发生器来实现闪烁
      LCDMEM[7] ^= (SEGG|SEGA|SEGD); //+  -->d
                                     //|  -->g
                                     //|  -->a
  }   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -