小白求教:ADC0809采集的AD值为什么不正确?
时间:10-02
整理:3721RD
点击:
函数如下,只有电压为5V时才显示AD=255是正确的 ,其它电压采集到的AD都是乱跳的,主函数还要加什么东西吗?
void ADC0809_init() //ADC0809初始化
{
TMOD=0x01;
TH0=(65536-200)/256;
TL0=(65536-200)%256;
ET0=1;
TR0=1;
EA=1;
ALE=0;
ST=0;
OE=0;
delay(10);
}
unsigned char Read_AD() //读ADC0809数据
{
uchar A=0; //存放AD采集的数据
OE=0;
ST=0;
delay(10);
ST=1;
delay(10);
ST=0;
while(EOC==0); //等待转换完成
OE=1;
A=P1; //读取数据
delay(10);
OE=0;
return A;
}
void ADC0809_init() //ADC0809初始化
{
TMOD=0x01;
TH0=(65536-200)/256;
TL0=(65536-200)%256;
ET0=1;
TR0=1;
EA=1;
ALE=0;
ST=0;
OE=0;
delay(10);
}
unsigned char Read_AD() //读ADC0809数据
{
uchar A=0; //存放AD采集的数据
OE=0;
ST=0;
delay(10);
ST=1;
delay(10);
ST=0;
while(EOC==0); //等待转换完成
OE=1;
A=P1; //读取数据
delay(10);
OE=0;
return A;
}
应该不是软件问题!
这么一说我懂了,输出OUT0~7在仿真里面接反了。看了下0808跟0809接线是反着的谢谢!
1002925094