📄 main.c
字号:
#include "msp430x43x.h" // Standard Equations
static unsigned int adc_result;
static unsigned int adc_voltage;
float adc_temp;
unsigned char show_buf[6]; /* 存放6位LED显示的值 */
unsigned char led_ctrl; /* LED位控制 */
const unsigned char LED_SHOW[10]={
0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f, //9
};
void delay(void) /* 延时函数 */
{
int delaynum;
for(delaynum=0;delaynum<=50;delaynum++);
}
void led_value(void) /* 改变LED的值 */
{
show_buf[0]=LED_SHOW[adc_voltage%10];
show_buf[1]=LED_SHOW[(adc_voltage%100)/10];
show_buf[2]=LED_SHOW[(adc_voltage%1000)/100];
show_buf[3]=LED_SHOW[(adc_voltage%10000)/1000];
show_buf[4]=LED_SHOW[adc_voltage/10000];
show_buf[5]=LED_SHOW[0];
}
void led_show(void) /* LED动态显示 */
{
unsigned i;
led_ctrl=0xfb;
P5DIR|=0xfc;
P3DIR|=0XFF;
for(i=0;i<6;i++)
{
P3OUT=0x00;
P5OUT=led_ctrl;
P3OUT=show_buf[i];
delay();
led_ctrl=led_ctrl<<1;
led_ctrl=led_ctrl+1;
}
}
void init_led(void) /* LED初始化 */
{
P5DIR|=0xfc;
P5OUT|=0XFC;
P3DIR|=0XFF;
P3OUT|=0Xff;
}
void adc_chang(void){
ADC12CTL0 |= ENC+ADC12SC;
while ((ADC12IFG & BIT0)==0);
adc_result = ADC12MEM0;
}
void adc_voltageget(void){
adc_temp = adc_result*2.5/4095;
adc_voltage = adc_temp*10000;
}
void main(void)
{
unsigned int i;
WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer
P6SEL |= 0x01; // Enable A/D channel A0
ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; // Turn on and set up ADC12
ADC12CTL1 = SHP; // Use sampling timer
ADC12MCTL0 = SREF_1; // Vr+=Vref+
for ( i=0; i<0x3600; i++) // Delay for reference start-up
{
}
ADC12CTL0 |= ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conversion
while ((ADC12IFG & BIT0)==0);
_NOP(); // SET BREAKPOINT HERE
adc_result = ADC12MEM0;
FLL_CTL0|=XCAP10PF;
BTCTL=BTDIV+BTIP2+BTIP1+BTIP0;
IE2|=BTIE;
init_led();
_EINT();
while(1)
{
//adc_chang();
//adc_voltageget();
//led_value();
//show_buf[4]=show_buf[4]+0x80;
led_show();
for (i=1;i<60;i++);
}
}
#pragma vector=BASICTIMER_VECTOR /* 1S触发一次 */
__interrupt void basic_timer(void)
{
adc_chang();
adc_voltageget();
led_value();
show_buf[4]=show_buf[4]+0x80;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -