#include”STC12C5410AD.h”
#defineucharunsignedchar
unsignedcharaa,bb;
voiddelay(uchardd)
{
intx,y;
for(x=dd;x>0;x–)
for(y=100;y>0;y–);
}
unsignedcharRead_ADC(unsignedcharadcvcc)
{
//将P1.0–P1.1设置成合适AD转化的形式
ADC_CONTR=ADC_CONTR|0x80;//1000,0000翻开A/D转化电源
delay(20);//20ms
ADC_CONTR=ADC_CONTR&0xE0;//1110,0000清ADC_FLAG,ADC_START位和低3位
ADC_CONTR=ADC_CONTR&0xf8|adcvcc;//设置当时通道号
delay(10);//延时使输入电压到达安稳
ADC_DATA=0;//清A/D转化成果寄存器
ADC_CONTR=ADC_CONTR|0x08;//0000,1000ADCS=1,发动转化
do{;}while((ADC_CONTR&0x10)==0);//0001,0000等候A/D转化完毕
ADC_CONTR=ADC_CONTR&0xE7;//1110,0111清ADC_FLAG和ADC_START位,中止A/D转化
returnADC_DATA;
}
voidmain()
{
//里要加上设置ADC的端口,如)1.0,P1.1设为ADC口的话:
P1M0=0x03;//0000,0011用于A/D转化的P1.x口,先设为开漏
P1M1=0xC3;//0000,0011P1.0–P1.1先设为开漏。断开内部上拉电阻
bb=0x01;
while(1)
{
aa=Read_ADC(1);//榜首路A/D转化;如要改其他路,只要把代入通道改一下.
P3=aa;//这是让A/D的数据显现在P3口的LED上.
}
}
STC12C5410AD AD转化示例程序
#includeSTC12C5410AD.h#defineucharunsignedcharunsignedcharaa,bb;voiddelay(uchardd){intx,y;for(x=dd;x
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/254889.html