自己写了段测电压的基于STC15F2K60S2的AD转换。不过看了多遍不知道错在哪。大家帮忙指教下。谢谢!
#include<STC15F2K60S2.H>
#define uint unsigned int
uint a;
void main()
{
P1ASF=0X08;//选择P1^3做模拟通道
ADC_CONTR=0X80;//ADC电源打开
for(a=50000;a>0;a--);
ADC_CONTR=0XEB;//选择P1^3做模拟通道
CLK_DIV=0X0;//adrj位置0;
for(a=50000;a>0;a--);
while(1)
{
if(ADC_CONTR&0X10==0)//如何条件为真,ADC_FLAG已被置0,转换完成
{
P2=ADC_RES;
ADC_RESL<<=6;
P3=ADC_RESL;
for(a=21000000;a>0;a--);
ADC_CONTR=0XEB;//将ADC_FLAG置0,ADC_START置1,以继续转换
}
}
}
|