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

📄 ad974_main.c

📁 利用MSP430模拟串口模式控制16位高精度A/D转换器AD974。
💻 C
字号:
#include <MSP430x16x.h>


#define DATA (P3IN & BIT5)          //DATA
#define  CLK_H (P3OUT|=BIT4)        //DATACLK
#define  CLK_L (P3OUT&=~BIT4)
#define  R_C_H (P3OUT|=BIT2)  
#define  R_C_L (P3OUT&=~BIT2)
#define  BUSY_974 (P3IN & BIT3)
#define  A0_H  (P3OUT|=BIT0)
#define  A0_L   (P3OUT&=~BIT0)
#define  A1_H  (P3OUT|=BIT1)
#define  A1_L  (P3OUT&=~BIT1)

unsigned int AD974_DataReg=0;

void delay1(int m)
{
  int i;
  for(i=0;i<m;i++);
}

 void AD974_PORT_INIT()
 {  
   //P3DIR =0x00;
   P3OUT =0x00;
   P3DIR|=BIT2+BIT4+BIT0+BIT1;
   P3DIR &=~BIT3;
   //P4DIR&=~BIT7;
   R_C_H;
   CLK_L;
   //CLK_H;
   
 }


 unsigned int AD974_ReceiveWord(unsigned char channel)
{

 //unsigned int AD977_DataReg=0;//ReceiveWord
 unsigned char AD974_Loop;
     if (channel==0)
     {
      A1_L;
      A0_L;
     }

     else if (channel==1)
     {
      A1_L;
      A0_H;
     }
     else if (channel==2)
     {
      A1_H;
      A0_L;
     }
     else if (channel==3)
     {
      A1_H;
      A0_H;
     }

  delay1(1);
  //CLK_H;
  R_C_L;
  _NOP();  //t1:125ns
  
  while (BUSY_974!=BIT3); 
  R_C_H;
  P3DIR &=~BIT5;
  

 for (AD974_Loop=0;AD974_Loop<15;AD974_Loop++)
 {     
   CLK_H;
   CLK_L;
   if (DATA==BIT5)
   {
     AD974_DataReg|=BIT0;
   }
   AD974_DataReg<<=1;
 }
   
    CLK_H; 
    CLK_L;
    if (DATA==BIT5)
   {
     AD974_DataReg|=BIT0;
   }  
   //CLK_H;
   //CLK_L;

    return (AD974_DataReg);
}
void Init_Clk()
{
  unsigned int iq0;
  
  //使用XT2振荡器
  BCSCTL1 &=~XT2OFF; //打开XT2振荡器,ACLK 为XT1
  do
  {
    IFG1 &= ~OFIFG; //清除振荡器失效标志
    for(iq0=0xFF;iq0>0;iq0--);
  }
  
  while((IFG1 & OFIFG)==0); //判断Xt2是否起振
  BCSCTL2=SELM_2+SELS; //选择MCLK,SMCLK为XT2时钟
  _EINT(); //打开全局中断
}
unsigned int fsd;
float Vin;
float Vout;
int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
  Init_Clk();
  while(1)
  {
    AD974_DataReg=0;
    AD974_PORT_INIT();
    fsd=AD974_ReceiveWord(1);
    Vin=(float)(fsd*4.0)/13107.0;
    Vin=Vin-10.0;
    _NOP();
  }
}

⌨️ 快捷键说明

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