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

📄 lab-13.c

📁 MSP430FG4619的LCD子程序
💻 C
字号:
//*****************************************************************************
//  MSP430xG46x Demo  - LCD, Displays Numbers on a 4-Mux LCD
//
//  Description: This program displays digits stored in the
//  variable "LSD-430" on a 4-mux LCD then waits in low power mode 3.
//  To use the program run it as is or assign a different BCD number
//  (digits 0-9) to the data.
//  ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz
//  //* An external watch crystal between XIN & XOUT is required for ACLK *//	
//
//                                 Connections MSP430 -> LCD
//                                 -------------------------
//
//                                T.I.                  LSD
//                           MSP430xG46x  MCU        LSD048 4 mux LCD
//                                                     
//                           ---------------       --------------
//                          |          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             |
//                          |               |     |              |
//                          |               |      --------------
//                          |               |
//                           ---------------
//
//                   NOTE: Pin R03 on the MSP430 must be connected to GND
//
//   FengLF
//   LSD SCIENCE& TECHNOLOGY CO.,LTD 
//   2007.06
//   Built with IAR Embedded Workbench Version: 3.42A
//*****************************************************************************
#include <msp430xG46x.h>

char* LCD = LCDMEM;

#define SEG_a       0x01
#define SEG_b       0x02
#define SEG_d       0x04
#define SEG_g       0x08
#define SEG_c       0x10
#define SEG_f       0x20
#define SEG_h       0x40
#define SEG_e       0x80

#define CHAR_ALL            (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g|SEG_h)
#define CHAR_SPACE          0
#define CHAR_MINUS          (SEG_g)
#define CHAR_0              (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f)
#define CHAR_1              (SEG_b|SEG_c)
#define CHAR_2              (SEG_a|SEG_b|SEG_d|SEG_e|SEG_g)
#define CHAR_3              (SEG_a|SEG_b|SEG_c|SEG_d|SEG_g)
#define CHAR_4              (SEG_b|SEG_c|SEG_f|SEG_g)
#define CHAR_5              (SEG_a|SEG_c|SEG_d|SEG_f|SEG_g)
#define CHAR_6              (SEG_a|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
#define CHAR_7              (SEG_a|SEG_b|SEG_c)
#define CHAR_8              (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
#define CHAR_9              (SEG_a|SEG_b|SEG_c|SEG_d|SEG_f|SEG_g)
#define CHAR_A              (SEG_a|SEG_b|SEG_c|SEG_e|SEG_f|SEG_g)
#define CHAR_B              (SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
#define CHAR_C              (SEG_a|SEG_d|SEG_e|SEG_f)
#define CHAR_D              (SEG_b|SEG_c|SEG_d|SEG_e|SEG_g)
#define CHAR_E              (SEG_a|SEG_d|SEG_e|SEG_f|SEG_g)
#define CHAR_F              (SEG_a|SEG_e|SEG_f|SEG_g)
#define CHAR_t              (SEG_d|SEG_e|SEG_f|SEG_g)
#define CHAR_L              (SEG_d|SEG_e|SEG_f)
#define CHAR_X              (SEG_g)
const char digit[13] =
{
  CHAR_0,  // "0"  
  CHAR_1,  // "1"
  CHAR_2,  // "2"
  CHAR_3,  // "3"
  CHAR_4,  // "4"
  CHAR_5,  // "5"
  CHAR_6,  // "6"
  CHAR_7,  // "7"
  CHAR_8,  // "8"
  CHAR_9,  // "9"
  CHAR_X,  // "10"
  CHAR_D,  //"11"
  CHAR_L  // "12"
};

void main(void)
{
  volatile unsigned int i;                 
  WDTCTL = WDTPW + WDTHOLD;                 // 关看门狗
  FLL_CTL0 |= XCAP14PF;                     // 设置装载电容
  for (i = 0; i < 10000; i++);              // 延时
  BTCTL = BT_fCLK2_DIV128 | BT_fCLK2_ACLK_DIV256;
                                           // 设置基本定时器 
  for (i = 0;  i < 20;  i++)
      LCDMEM[i] = 0;
  P5SEL |= (BIT4 | BIT3 | BIT2);
  P5DIR |= (BIT4 | BIT3 | BIT2);
  LCDACTL = LCDFREQ_128 | LCD4MUX | LCDSON | LCDON;
  LCDAPCTL0 = LCDS0 | LCDS4 | LCDS8 | LCDS12 | LCDS16 | LCDS20 | LCDS24;
  LCDAPCTL1 = 0;
  LCDAVCTL0 = LCDCPEN;
  LCDAVCTL1 = 1 << 1;
    LCDMEM[2] = digit[0];
    LCDMEM[3] = digit[3];
    LCDMEM[4] = digit[4];
    LCDMEM[5] = digit[10];
    LCDMEM[6] = digit[11];
    LCDMEM[7] = digit[5];
    LCDMEM[8] = digit[12];         
  LPM3;                         
}

⌨️ 快捷键说明

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