社区
单片机/工控
帖子详情
急!!PCF8591 AD转换的问题,DA正常,但是AD读的数据一直都是0x80
lijuan1215_2009
2009-12-22 04:16:56
不知道是怎么回事,请大家帮帮小妹。谢谢了!
不会是芯片的问题吧,DA是正常的。
主控芯片是AVR的单片机,我用IIC协议读取AD转换的结果。
...全文
1154
8
打赏
收藏
急!!PCF8591 AD转换的问题,DA正常,但是AD读的数据一直都是0x80
不知道是怎么回事,请大家帮帮小妹。谢谢了! 不会是芯片的问题吧,DA是正常的。 主控芯片是AVR的单片机,我用IIC协议读取AD转换的结果。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
r207sc
2012-06-25
打赏
举报
回复
这个问题我也遇到了 循环读也是全部为80 我再逻辑分析仪上看的 从芯片出来就是0x80
Bing_GoGo
2010-09-12
打赏
举报
回复
要循环读I2C,第一次取值都是0X80的,我以前也遇到过.
把它放循环里,不断取AD转换的值.
宇帆
2009-12-23
打赏
举报
回复
给我例子 你参考一下
void DELAY5()
{
;
}
//******************************
void PCF8591_START() //PCF8591 起始信号
{
PCF8591_DATA=1;
PCF8591_CLK=1;
while(PCF8591_CLK==0)
{;}
DELAY5();
PCF8591_DATA=0;
DELAY5();
PCF8591_CLK=0;
}
//**********************************
void PCF8591_STOP() //pcf8591停止信号
{
PCF8591_DATA=0;
PCF8591_CLK=1;
while(SCL==0)
{;}
DELAY5();
PCF8591_DATA=1;
DELAY5();
PCF8591_CLK=0;
DELAY5();
}
//****************************
void cack()
{F0=0;
PCF8591_DATA=1;
PCF8591_CLK=1;
DELAY5();
if(PCF8591_DATA==0)
{ PCF8591_CLK=0; DELAY5(); }
else
{F0=1;PCF8591_CLK=0;DELAY5();}
}
/*
void mack() //应答子程序
{ PCF8591_DATA=0;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=1;
}
void mnack()//非应答子程序
{ PCF8591_DATA=1;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=0;
}
*/
void wrbyt0() //写入0这个1BIT的数据
{PCF8591_DATA=0;
PCF8591_CLK=1;
DELAY5();
PCF8591_CLK=0;
}
void wrbyt1() //写入1这个1BIT的数据
{PCF8591_DATA=1;
PCF8591_CLK=1;
DELAY5();
PCF8591_CLK=0;
PCF8591_DATA=0;
}
//***************************
void DATA_WRITE(unsigned j) //写入8BIT数据.
{unsigned i=0;
for(i=0;i<8;i++)
{if((j&0x80)>0)
wrbyt1();
else
wrbyt0();
j<<=1;
}
}
//************************************
unsigned DATA_READ()
{unsigned j=0xff;
unsigned i=0;
for(i=0;i<8;i++)
{PCF8591_DATA=1;PCF8591_CLK=1;
if(PCF8591_DATA==0)
{j<<=1;j=(j&0xfe);PCF8591_CLK=0;}
else
{j<<=1;j=(j|0x01);PCF8591_CLK=0;}
}
return(j);
}
//************************************
unsigned READ_AD(void)
{unsigned j=0, k=0;
//duad1:
//do
{ PCF8591_START() ;
DATA_WRITE(0x90); //ad寻址字
cack();
}
//while (F0==1);
//{
PCF8591_START() ;
DATA_WRITE(0x91); //写器件地址和读命令
cack();
j=DATA_READ(); //读出AD转换后的数据
PCF8591_STOP();
return(0xa0);
//}
}
lijuan1215_2009
2009-12-22
打赏
举报
回复
采集程序?AD是8591做的啊,我只是用协议读它寄存器的值。采集程序不用写的啊
宇帆
2009-12-22
打赏
举报
回复
[Quote=引用 2 楼 lijuan1215_2009 的回复:]
我用示波器看了,前面的地址,控制字发的都是对的,就是到读TWDR的时候,四个通道出来的全是0x80
[/Quote]
采集出来的就是0X80???这要看你的采集程序了
kyzf
2009-12-22
打赏
举报
回复
[Quote=引用 2 楼 lijuan1215_2009 的回复:]
我用示波器看了,前面的地址,控制字发的都是对的,就是到读TWDR的时候,四个通道出来的全是0x80
[/Quote]
首先确保硬件没有任何问题,比如I2C总线一定需要上拉;
另外用示波器 或者万用表测试下,AD的入门电压,从而对AD转换的结果有个预知,便看下程序,知道是AD转换出了问题,还是AD转换后,其它的处理程序有问题、
lijuan1215_2009
2009-12-22
打赏
举报
回复
我用示波器看了,前面的地址,控制字发的都是对的,就是到读TWDR的时候,四个通道出来的全是0x80
宇帆
2009-12-22
打赏
举报
回复
单步调试 看读出来的AD结果是什么?看看是不是 IIC那的问题,如果出来的就是0X80 就要看采集那的程序了
单片机笔记
AD
转换
之
PC
F8591
AD
转换
概念:
AD
转换
即模拟信号(Analog)
转换
成数字信号(Digital) 温湿度一般都以模拟信号存在,所以显示出来需要进行
AD
转换
PC
F8591
:是一个单片集成、单独供电、低功耗、8-bit CMOS
数据
获取器件,
PC
F8591
具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。
pc
f8591
常用作
AD
DA
转换
。
PC
F8591
原理图:
PC
F8591
具
通过
PC
F8591
读
取电压值(
AD
转换
)
PC
F8591
读
取电压值(
AD
转换
)A/D的主要指标常用A/D器件
PC
F8591
PC
F8591
的控制字节 A/D的主要指标 1、
AD
C的位数:n位
AD
C代表,2的n次方个刻度 2、基准源:
AD
C的电压参考基准 3、分辨率:两刻度之间的变化量 4、INL(积分非线性度):与真实值误差最大的那个误差值 5、DNL(差分非线性度):两刻度之间最大的那个差值 常用A/D器件
PC
F8591
1、
PC
F8591
是一个单片集成、单独供电、8-bit CMOS
数据
获取器件。 2、AIN0、AIN1、AIN2、AIN3
51单片机
AD
转换
之
PC
F8591
PC
F8591
是一个单片集成、单独供电、低功耗、8-bit CMOS
数据
获取器件。 1.引脚分析
PC
F8591
具有4个模拟输入(AIN0~AIN3)、1个模拟输出(AOUT)和1个串行I²C总线接口(S
DA
、SCL)。
PC
F8591
的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个
PC
F8591
器件,而无需额外的硬件。在
PC
F8591
器件上输入输出的地
51单片机
PC
F8591
-
AD
-
DA
转换
51单片机
PC
F8591
-
AD
-
DA
转换
,中断实现切换。 #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit SCL=P2^1; //串行时钟输入端 sbit S
DA
=P2^0; //串行
数据
输入端 sbit HC595_RCLK = P2^5; sbit HC595...
“MPX4115型压力传感器+
PC
F8591
型
AD
+模拟IIC总线”的Proteus仿真
一、MPX4115型压力传感器介绍 1.1 引脚说明 即:1引脚为模拟量输出,2引脚接地,三引脚接电源,4、5、6引脚空 1.2 输出特性图 选择典型曲线,我们可以得知
转换
公式:压力值=(电压值/5.1+0.095)/0.009。 二、模拟IIC总线 因为本例子采用的为51单片机,因此需要自己模拟IIC总线协议。 2.1 IIC总线工作时序如下 2.2...
单片机/工控
27,522
社区成员
28,798
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章