小白求教:ADC0809采集的AD值为什么不正确?

2019-07-15 12:32发布

函数如下,只有电压为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;
}
         

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。