?? fe42x_simple_display.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 + -