PCF8591单通读取准确,而差分读取结果不准确

bingo102 2012-07-30 10:14:57
小弟现在做东西,使用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;
}
...全文
313 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiaofengq5 2012-08-12
  • 打赏
  • 举报
回复
不知道
wangxiaofengq5 2012-08-12
  • 打赏
  • 举报
回复
不是很明白
bingo102 2012-08-01
  • 打赏
  • 举报
回复
没人使用过差分的吗?请高手出来指点下。
dceacho 2012-07-30
  • 打赏
  • 举报
回复
没用过这东西,你看下用户手册,有的时候单端输入和差分输入测量范围是不一样的

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧