×
嵌入式 > 技术百科 > 详情

STC内部10位AD转换器程序(stc_ad.h头文件)

发布时间:2020-06-15 发布时间:
|
下面是头文件的内容,复制文本保存到stc_ad.h即可

#ifndef __STC_AD_H__
#define __STC_AD_H__

#define ADC_FLAG      0x10
#define ADC_STOP      0xEF
#define ADC_START     0x08
#define ADC_SPEED_HH  0x00   // 89 us
#define ADC_SPEED_H   0x20   //178 us
#define ADC_SPEED_L   0x40   //356 us
#define ADC_SPEED_LL  0x60   //534 us

void Delay(unsigned int z);
void Delay_us();
void ADC_init();
unsigned char ADC_convert(unsigned char Gallery);

/************************************************
延时function:
************************************************/
void Delay_ad(unsigned int z)
{
      unsigned char x;
      while(--z)
      {
          for(x=0;x<250;x++);
      }
}
/************************************************
延时—10 colocks function:
************************************************/
void Delay_us()
{
      unsigned char i;
      for(i=0;i<6;i++);  
}
/************************************************
AD初始化function:
************************************************/
void ADC_init()
{
      P1_ADC_EN= 0xff;                //断开P1口上拉电阻
      ADC_DATA = 0x00;                //清零低8位数据存储器
      ADC_LOW2 = 0x00;                //清零高2位数据存储器
      ADC_CONTR= ADC_SPEED_HH;         //设置AD转换速率178clocks
      Delay_ad(20);                      //上电延迟等待
}

/************************************************
AD转换function:
************************************************/
unsigned int ADC_convert(unsigned char Gallery)
{
      unsigned int Con_dat=0;         //AD转换数据暂存变量
  //  ADC_CONTR |= ADC_SPEED_H;       //设置AD转换速率
      ADC_CONTR |= ADC_START;         //开始AD转换
      ADC_CONTR |= Gallery;           //选择AD通道
      ADC_DATA   = 0x00;              //清零低8位数据存储器
      ADC_LOW2   = 0x00;              //清零高2位数据存储器
      Delay_us();                     //转换延迟等待
      while(!(ADC_CONTR & ADC_FLAG)); //等待转换结束
      ADC_CONTR &= ADC_STOP;          //关闭AD 并且清零
      Con_dat    = ADC_LOW2;          //读取并处理AD转换值
      Con_dat  <<= 8;
      Con_dat   |= ADC_DATA;
      return Con_dat;                 //返回AD转换值
}
#endif




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Semtech的LoRa技术携手Chipsafer将牧场连接至云端