PCF8591单通读取准确,而差分读取结果不准确
小弟现在做东西,使用PCF8591测电压,单片机为89S52,晶振11.0592M,使用单通道直接读电池电压(2.6V)是准确的,使用差分读取2欧姆电阻两端电压(读出0.24V)读取出来的结果与实际的0.4V不同,转换的函数是一样的,为什么会出现这情况呢?请大家帮帮忙,谢谢了!!
单通道读取函数:(传的值0x03)
uchar Read_AD_PCF8591_01( uchar Channel )
{
uchar z;
Start_PCF8591_01();
Write_Byte_PCF8591_01( 0x90 );//PCF8591 地址
Respons_PCF8591_01();
Write_Byte_PCF8591_01( 0x00 | Channel );
Respons_PCF8591_01();
delay();
Start_PCF8591_01();
Write_Byte_PCF8591_01( 0x91 );
Respons_PCF8591_01();
z = Read_Byte_PCF8591_01();
Stop_PCF8591_01();
return z;
}
差分读取函数:(传的值0x30)
uchar Read_AD_PCF8591_01_Diff( uchar Channel )
{
uchar z;
Start_PCF8591_01();
Write_Byte_PCF8591_01( 0x90 );//PCF8591 地址
Respons_PCF8591_01();
Write_Byte_PCF8591_01( Channel );
Respons_PCF8591_01();
delay();
Start_PCF8591_01();
Write_Byte_PCF8591_01( 0x91 );
Respons_PCF8591_01();
z = Read_Byte_PCF8591_01();
Stop_PCF8591_01();
return z;
}