PIC 18F4620做AD转换,使用AN0 做模拟输入 ,参考电压使用单片机内部电压,接到RC0 和RC1 ,程序中赋RC1=1高电平,RC0=0低电平,用电压表测了也是5.002V的样子 比较准确,AN0 做模拟输入,使用稳压电源作为模拟输入 ,Ad后的数据通过液晶1602显示 ,但是采集到结果通过液晶显示 AD后的结果总是和实际的有偏差,
我现在得到的结果是 利用稳压电源 如果输入0.5V的话 液晶上显示大约0.485的样子, 输入0.8V的话 显示的是0.912v 的样子 , 输入1V 时候就会显示1.3V, 输入1.5V 显示的1.9V,输入2V 显示2.5 最后输入3.8V的时候 液晶上就显示到5V , 相差的越来越大了 AD设置应该没什么问题 ,请教如何解决? 谢谢
AD初始化
void ad_init()
{
ADRES=0;
TRISAbits.TRISA0=0;
ADCON0=0b00000101;// RA1/AN1做为选定转换通道,此时为关闭状态,但AD已经使能
//GO/DONE=0 , ADON=1
ADCON1=0b00110111;//所选AN3 AN2为参考电压(RA2/AN2/VREF-/CVREF和RA3/AN3/VREF+ 参考电压)
ADCON2=0b10011110;//右对齐 64分频
PIE1bits.ADIE=1;//允许A/D外围中断;
INTCONbits.GIE=1;//允许global中断
INTCONbits.PEIE=1;//允许外围中断
ADIF=0;//初始时中断flag为0
} |