您的位置 首页 软件

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

下面是头文件的内容,复制文本保存到stc_adh即可ifndef__STC_AD_H__define__STC_AD_H__defineADC_FLAG0x10defineADC_STOP

下面是头文件的内容,仿制文本保存到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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/254095.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部