导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→ADC_7705_应用程序[原创][ZhouYongliang]

 *第35804篇: ADC_7705_应用程序[原创]

  
楼 主:ZhouYongliang 2011年7月19日09:00
 ADC_7705_应用程序[原创]
 unsigned long  L1_Scale , L2_Scale; // ADC 采样变量
 unsigned int AD16_Bit;

    sbit ADC_DOUT  = P1^0;       // INP
    sbit ADC_CLK   = P1^1;       // OUT
    sbit ADC_DIN   = P1^2;       // OUT
    sbit ADC_CS    = P1^3;       // OUT
    sbit ADC_RESET = P1^4;       // OUT
    sbit DRDY      = P0^4;      // 中断入口

// ADC_DRDY  = Interrupt   // 中断入口

/***** 初始化 *** ADC 配置等******/

 ADC_CS  = 0; 
 Delay_ms(1);
 ADC_RESET = 0;
 Delay_ms(1);
 ADC_RESET = 1;

InitADC();
/*******************/

void Switch1_Gate(New_char Ch)  // Ch == 通道号
{
 ADC_CS  = 0; 
  WritcToReg_ADC_Init(0x38 | (Ch && 0x01));  // 设置当前采样通道
    for(;DRDY != 0;);
    for(i = 0 ; i   < 16 ; i ++)
     {
      ADC_CLK = 0;
      AD16_Bit   <  <= 1;
      ADC_CLK = 1;
      if(ADC_DOUT == 1)AD16_Bit |= 0x01; // 读取数据位
     }

if(Ch == 0)L1_Scale = (float)AD16_Bit; 
if(Ch == 1)L2_Scale = (float)AD16_Bit; 

 ADC_CS  = 1; 
return;
}


//******************* InitADC  初始化 ADC 配置 ****************************
void InitADC(void)
{
 ADC_CLK = 1;
 ADC_DIN = 1;

 Delay_ms(1);
 WritcToReg_ADC_Init(0x20); // 0x20 通讯,下一个写时钟寄存器
 WritcToReg_ADC_Init(0x04); // 0x04 写时钟寄存器设置更新速率为 50 Hz  

 Delay_ms(1);
 WritcToReg_ADC_Init(0x10); // 0x10 通讯,下一个写增校准寄存器 
 WritcToReg_ADC_Init(0x7C); // 0x46 增益 7C = 128、滤波器工作、自校准。64 == 16G

// Delay_ms(1);
// WritcToReg_ADC_Init(0x38 | (0 && 0x01));  // 设置当前采样通道
return;
}


//******************* WritcToReg_ADC_Init ****************************
void WritcToReg_ADC_Init(unsigned char byteword)
{
 ADC_CLK = 1;
 ADC_CS  = 0; 

 Token    = 0x80;
 AD16_Bit = byteword;

 for(i = 0 ; i   < 8 ; i++)
  {
  if(AD16_Bit & Token)ADC_DIN = 1; // 输入数据位
  else ADC_DIN = 0;

  ADC_CLK = 1 ;
  ADC_CLK = 0 ;
  ADC_CLK = 1 ;
  Token = Token >  >   1;
  }

 ADC_CLK = 1;
 ADC_DIN = 1; // 结束
return;
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:谁有数字音响方面的资料,比如I2S格式.

[下一篇主题]:热卖IPW90R500C3  SPA20N60C3