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

📄 fe42x_simple_display.c

📁 应用于利而达MSP430-TEST42X板的液晶屏测试代码
💻 C
字号:
//******************************************************************************
//  MSP430FE427 Demo - Getting the SD16 to work at power save mode
//
//  Description; This program display a row of numbers on the LCD screen
//******************************************************************************
//  MSP430FE427 Demo - Getting the SD16 to work at power save mode
//
//  Description; This program measures the rms current through a shunt resistor.
//
//		  MSP430FE427
//             ---------------
//         /|\|            XIN|-  
//          | |               | 32kHz
//          --|RST        XOUT|-
//            |               |
//            |           I1+ |<--
//            |           I1- |<-- 
//            |               |
//            |           I2+ |<--
//            |           I2- |<--
//            |               |
//            |           V+  |<--
//            |           V-  |<--
//            |               |       #T218010
//            |               |      --------------
//            |          COM3 |-----|2    COM4     |
//            |          COM2 |-----|1    COM3     |
//            |          COM1 |-----|3    COM2     | 
//            |          COM0 |-----|4,20 COM1     |
//            |          SEG6 |-----|19            |
//            |          SEG7 |-----|18            |
//            |          SEG8 |-----|17            |
//            |          SEG9 |-----|16            |  
//            |          SEG10|-----|15            |
//            |          SEG11|-----|14            |
//            |          SEG12|-----|13            |
//            |          SEG13|-----|12            |
//            |          SEG14|-----|11            | 
//            |          SEG15|-----|10            |
//            |          SEG16|-----|9             |
//            |          SEG17|-----|8             |
//            |          SEG18|-----|7             | 
//            |          SEG19|-----|6             |
//            |          SEG20|-----|5 (bits C,E,H |
//            |               |     |   of digit 7)|
//            |               |      --------------
//            |               | 
//                           ---------------  
//******************************************************************************
#include "msp430xE42x.h"
#include "lcd-segments.h"

void Display(void);

char Display_Buffer[];
char digit[16] = {
	CHAR_0,
	CHAR_1,
	CHAR_2,
	CHAR_3,
	CHAR_4,
	CHAR_5,
	CHAR_6,
	CHAR_7,
	CHAR_8,
	CHAR_9,
	CHAR_A,
	CHAR_B,
	CHAR_C,
	CHAR_D,
	CHAR_E,
	CHAR_F
};
void display_dec(unsigned int value);

void main(void)
{
    char *LCD = LCDMEM;
    unsigned int i;

    WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog timer 
    FLL_CTL0 = XCAP18PF;                  //set load capacitance for 32k xtal
  
//Default Mclk at 1Mhz
    SCFQCTL=SCFQ_4M;
    FLL_CTL0|=DCOPLUS;                    //activate loop MPY factor D.
                                          //FLL should now lock to 4.096MHz
    P1OUT = 0x03;
    P2OUT = 0x00;
    P1DIR = 0xFF;                         // P1.0 + P1.1 = LED Output
                                          // P1.2 - P1.7 = LCD
    P2DIR = 0xC3;                         // P2.0 + P2.1 = LCD
                                          // P2.2 + P2.3 = switch input
                                          // P2.4 + P2.5 = UART
    P2IFG = 0x00;                         // Clear interrupt Flags
    LCDCTL = LCDON + LCD4MUX + LCDSG0_3;  // Enable LCD
    BTCTL  = BTHOLD + BTFRFQ1;            // f(LCD) = ACLK / 256 = 128 Hz                                   

    // clear LCD memory to clear display
    for (i=0; i<12; i++)
        {
          LCD[i] = 0;
        } 
    display_dec(1234567890);
    while(1);
}
  
void display_dec(unsigned int value)
{
    unsigned int i;
    char *LCD = LCDMEM;

    for (i=0; i<8; i++)
        {
          Display_Buffer[i]= 0;
        } 
    
    for (i=0; i<5; i++)
        {
          #ifndef STAR_BURST
              LCD[i] = digit[value%10];   // remainder = character in table to display
          #else
              Display_Buffer[i]= (value%10);
          #endif
          value = value/10;               // shifts right so next character can be displayed
        } 
    #ifdef STAR_BURST     
        Display();
    #endif 
}

⌨️ 快捷键说明

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