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

📄 ad12.h

📁 msp320F247单片机的AD采样及液晶1602显示
💻 H
字号:
#include "msp430x24x.h"
#include "All_functions.h"
#include "LCD1602.c"
//****************************

//#define ADC_times 10;//定义转换10次

//unsigned int ADCtimes=ADC_times;
unsigned int Waitflag;
extern unsigned int Ad_result;
unsigned int Ad_Mem[16];

//*************************
//       AD初始化
//*********************
void AD12Init()
{
  ADC12CTL0&=~ENC;
  ADC12CTL0=MSC+REFON+REF2_5V+SHT0_15+SHT1_15;//内部参考电压2.5V
 
}
//******************************************************
//address:转换首地址
//Cchannel:通道模式选择
//********************************************************
void AD_MOD(unsigned int address,unsigned int Cchannel)
{
  ADC12CTL1=(address<<12)+SHP+(Cchannel<<1);
}
//*****************************************************
//eos:序列结束控制痊
//SEL_channel:输入通道选择0-15
//SEL_mem:转换存储寄存器选择0-15
//SEL_REF:参考电压源选择0-7
//SEL_IE:中断使能
//*****************************************************
void S_INCH(unsigned int eos,unsigned int SEL_channel,unsigned int SEL_mem,unsigned int SEL_REF,unsigned int SEL_IE)
{
  ADC12CTL0&=~BIT1;//清ENC
  char *pm=ADC12MCTL;
  pm+=SEL_mem;
  *pm=eos+SEL_channel+(SEL_REF<<4);
  if(SEL_IE==1)
    ADC12IE&=0xFF;
  else
    ADC12IE&=0x00;  
}
//*************************************************
//
//************************************************
void ADopen(unsigned int flag)
{
  if(flag==1)
  {
    ADC12CTL0 |= ADC12ON;
    ADC12CTL0 |= ENC; 
  }
  else
  {
    ADC12CTL0 &= ~ADC12ON; 	//不允许转换
    ADC12CTL0 &= ~ENC;
  }
}
//***************************************************
//        转换开始
//**************************************************
void AD_start()
{
  unsigned char q0;

  for(q0=0;q0<16;q0++)
          Ad_Mem[q0]=0;
  Waitflag=0;
  ADC12CTL0 |= ENC+ADC12SC;	//转换开始
  LCD_display(0x85,'V');
  if(ADC12IFG==0x01)
  {
    Ad_result=ADC12MEM0;
  }
  
}
/*#pragma vector=ADC12_VECTOR
__interrupt void Adc()
{
  unsigned char q0;
  
  int *pmem=ADC12MEM;
  if(Waitflag==0)
  {
          for(q0=0;q0<16;q0++)
          {
                  Ad_Mem[q0] += *pmem;
                  pmem++;
          }
             ADopen(0); 	//关闭ADC12模块
             Waitflag=1;		//转换结束的标志位置位
             for(q0=0;q0<16;q0++)
             {
                 Ad_result[q0]=Ad_Mem[q0];
             }
              //ADCtimes=ADC_times;
    }
 }
 */

⌨️ 快捷键说明

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