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

📄 main.c

📁 msp430F435做的医疗器械,包括语音模块,知识源于网络
💻 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 + -