- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCF8591的介绍
PCF8591的介绍;PCF8591介绍 ;PCF8591介绍 ;PCF8591介绍 ;应用:
1 闭环控制系统
2 用于远程数据采集的低功耗转换器
3 电池供电设备
4 在汽车、音响和 TV 应用方面的模拟数据采集
;管脚定义及原理图:
AIN0-AIN3:模拟输入(A/D转换)。
AOUT:模拟输出(D/A转换)。
A0-A1:硬件设备地址。
GND:电源负极地
VREF:参考电压输入。
EXT:振荡器输入时,内部/外部的切换开关。
OSC:振荡器输入/输出。
SCL: I2C BUS时钟输入。
SDA:I2C BUS 数据输入/输出。
AGND:模拟地,模拟信号和基准电源的参考地
;内部框图:;PCF8591介绍 ;控制字:
D0-D1 用于4个通道设置
D2 自动增益选择(有效位为1)
D5 D4 模拟量输入选择
00 4路单端输入
01 3路差分输入
10 单端与差分输入
11 2路差分输入
;PCF8591介绍 ;控制字:
发送到 PCF8591 的第二个字节将被存储在控制寄存器,用于控制器件功能。控制寄存器的高半字节用于允许模拟输出,和将模拟输入编程为单端或差分输入。低半字节选择一个由高半字节定义的模拟输入通道。如果自动增量(auto-increment)标志置1,每次A/D 转换后通道号将自动增加。;PCF8591介绍 ;A/D转换时序图:
;D/A转换:
发送给 PCF8591 的第三个字节被存储到DAC 数据寄存器,并使用片上D/A 转换器转换成对应的模拟电压。这个D/A 转换器由连接至外部参考电压的具有256 个接头的电阻分压电路和选择开关组成。接头译码器切换一个接头至DAC 输出线。模拟输出电压由自动清零单位增益放大器缓冲。这个缓冲放大器可通过设置控制寄存器的模拟输出允许标志来开户或关闭。在激活状态,输出电压将保持到新的数据字节被发送。;D/A转换时序图:
;程序构成 ;PCF8591发送一个字节的程序
/************************************************************
* 函数名 : Pcf8591SendByte
* 函数功能 : 写入一个控制命令
* 输入 : channel(转换通道)
* 输出 : 无
************************************************************/
void Pcf8591SendByte(unsigned char channel)
{
I2cStart();
I2cSendByte(WRITEADDR);//发送写器件地址
I2cSendByte(0x40|channel);//发送控制寄存器
I2cStop();
};PCF8591的读取
读取的第一个字节是包含上一次转换结果
将上一个字节读取时,才开始进行这次转换的采样。
读取的第二个字节才是这次的转换结果。
所以读取转换结果的步骤是:发送转换命令,将上次的结果读走,然后等一会儿,然后读取结果。
;PCF8591读取一个字节的程序
/************************************************************
* 函数名 : Pcf8591ReadByte
* 函数功能 : 读取一个转换值
* 输入 :
* 输出 : dat
************************************************************/
unsigned char Pcf8591ReadByte()
{
unsigned char dat;
I2cStart();
I2cSendByte(READADDR);//发送读器件地址
dat=I2cReadByte();//读取数据
I2cStop(); //结束总线
return dat;
};PCF8591发送一次转换的程序
/************************************************************
* 函数名 : Pcf8591DaConversion
* 函数功能 : PCF8591的输出端输出模拟量
* 输入 : value(转换的数值)
* 输出 : 无
******
文档评论(0)