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

📄 adc12.h

📁 MSP430 的AD转换
💻 H
字号:
/*************************************************************
*   文件名称:adc12.c
*   文件说明:adc12操作
*************************************************************/
#ifndef MSP430F247_H
#include <msp430x24x.h>
#endif
#define REFVOL 2.5             //vcc参考设为2.5
unsigned char adc_Flag;
unsigned int xindianresult;   //定义心电AD转换的结果
/************************************************************
*   初始化ADC12
************************************************************/
void init_ADC12(void)
{
  ADC12CTL0=ADC12ON+SHT0_2+REFON+REF2_5V;     //设置ADC12 REFON+REF2_5V+
  ADC12CTL1=SHP;                              //使用采样定时器输出做采集/转换信号SAMPCON
  ADC12MCTL0=SREF_1;                          //使用外部参考电压Vr+=VeREF+
  ADC12IE    |= 0x01;                              // 使能中断 
  ADC12CTL0|=ENC;                             //允许转换
     
}
/***********************************************************
*   启动  ADC12
************************************************************/
void start_ADC12()
{
     ADC12CTL0 |= ADC12SC;
     adc_Flag = 0;
}
/***********************************************************
*   把数据编程要显示的格式,然后写到lcd_Buf显示缓存中去
***********************************************************/
void format_Data()
{
     int result,tmpv,i,k;
     unsigned int data_buf[4];
     result = ADC12MEM0;
     result = (unsigned int)(result*(2.5/4096)*10000);
     xindianresult= result;
     for(tmpv=0;tmpv<LCD_IN_USE-1;tmpv++)
             {  
               for(k=4;k>0;k--)
                 {
                  result=result/10; 
                  data_buf[k-1] =result%10; 
                  for(i=0;i<16;i++)
                  { lcd_Buf[tmpv][i] = NUM_LCD[data_buf[tmpv]][i]; //更新LCDMEM中的内容 
                   }         
                  }
             }  
}
     
     
     //result = ( int)(((REFVOL * result )/ 4096 - 0.986) /0.0000355); //得到对应的温度值*10,以包括小数两位 ;
   
/***********************************************************
*   中断向量
************************************************************/
#pragma vector = ADC12_VECTOR 
 __interrupt void  ADC_ISR(void)
{
    format_Data();              //格式化数据并显示到LCD
    adc_Flag = 1;               //指示有数据要显示
}

⌨️ 快捷键说明

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