版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PCF8591的介绍第六组PCF8591介绍介绍 程序构成程序构成 例子原理图及程序例子原理图及程序 Click to add title in here 123目录PCF8591介绍 PCF8591的介绍: PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入、一个输出和一个串行I2C 总线接口。3 个地址引脚A0、A1 和A2 用于编程硬件地址,允许将最多8 个器件连接至I2C总线而不需要额外硬件。PCF8591由于其使用的简单方便和集成度高,在单片机应用系统中得到了广泛的应用。特点:1 单电源供电2 工作电压:2.5 V 6 V3 I2C 总线串行输入/输出4
2、 通过 3 个硬件地址引脚编址5 采样速率取决于 I2C 总线传输速率决定6 4 个模拟输入可编程为单端或差分输入7 自动增量通道选择8 8 位逐次逼近式A/D 转换PCF8591介绍 (1)首先发出“启动信号”信号S。当S由高变低时,“逐次逼近寄存器SAR”清0,DAC输出Vo=0,“比较器”输出1。当S变为高电平时, “控制电路”使SAR开始工作。()SAR首先产生8位数字量的一半,即10000000B,试探模拟量的Vi大小,若VoVi,“控制电路”清除最高位,若VoVi,保留最高位。()在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位) 试
3、探模拟量Vi的大小。在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位) 试探模拟量Vi的大小。重复这一过程,直到最低位bit0被确定。(4)在最低位bit0确定后,转换结束,“控制电路”发出“转换结束”信号EOC。该信号的下降沿把SAR的输出锁存在“缓冲寄存器”里,从而得到数字量输出。 从转换过程可以看出: 启动信号为负脉冲有效。 转换结束信号为低电平。 应用:1 闭环控制系统2 用于远程数据采集的低功耗转换器3 电池供电设备4 在汽车、音响和 TV 应用方面的模拟数据采集PCF8591介绍 管脚定义及原理图:AIN0-AIN3:模拟输入(A
4、/D转换)。 AOUT:模拟输出(D/A转换)。 A0-A1:硬件设备地址。 GND:电源负极地VREF:参考电压输入。 EXT:振荡器输入时,内部/外部的切换开关。 OSC:振荡器输入/输出。 SCL: I2C BUS时钟输入。SDA:I2C BUS 数据输入/输出。AGND:模拟地,模拟信号和基准电源的参考地PCF8591介绍 内部框图:PCF8591介绍 PCF8591介绍 地址: I2C 总线系统中的每一片PCF8591 通过发送有效地址到该器件来激活。该地址包括固定部分和可编程部分。可编程部分必须根据地址引脚A0、A1 和A2 来设置,因此I2C系统中最多可接 =8个PCF8591。
5、在I2C 总线协议中地址必须是起始条件后作为第一个字节发送。地址字节的最后一位是用于设置以后数据传输方向的读/写位1为读操作,0为写操作。32控制字:D0-D1 用于4个通道设置D2 自动增益选择(有效位为1)D5 D4 模拟量输入选择 00 4路单端输入 01 3路差分输入 10 单端与差分输入 11 2路差分输入PCF8591介绍 PCF8591介绍 AD的差分输入与单端输入: 单端输入,输入信号均以共同的地线为基准.这种输入方法主要应用于输入信号电压较高(高于1 V),信号源到模拟输入硬件的导线较短,且所有的输入信号共用一个基准地线.如果信号达不到这些标准,此时应该用差分输入.对于差分输
6、入,每一个输入信号都有自有的基准地线;由于共模噪声可以被导线所消除,从而减小了噪声误差. 单端输入时, 是判断信号与 GND 的电压差. 差分输入时, 是判断两个信号线的电压差. 信号受干扰时, 差分的两线会同时受影响, 但电压差变化不大. (抗干扰性较佳) 而单端输入的一线变化时, GND 不变, 所以电压差变化较大. (抗干扰性较差) 控制字: 发送到 PCF8591 的第二个字节将被存储在控制寄存器,用于控制器件功能。控制寄存器的高半字节用于允许模拟输出,和将模拟输入编程为单端或差分输入。低半字节选择一个由高半字节定义的模拟输入通道。如果自动增量(auto-increment)标志置1,
7、每次A/D 转换后通道号将自动增加。PCF8591介绍 PCF8591介绍 A/D 转换: A/D 转换器采用逐次逼近转换技术。在A/D 转换周期将临时使用片上D/A 转换器和高增益比较器。一个 A/D 转换周期总是开始于发送一个有效读模式地址给PCF8591 之后。A/D 转换周期在应答时钟脉冲的后沿被触发,并在传输前一次转换结果时执行。 一旦一个转换周期被触发,所选通道的输入电压采样将保存到芯片并被转换为对应的8 位二进制码。 转换结果被保存在ADC 数据寄存器等待传输。如果自动增量标志被置1,将选择下一个通道。A/D转换时序图:PCF8591介绍 在读周期传输的第一个字节包含前一次读周期
8、的转换结果代码。以上电复位之后读取的第一个字节是0 x80。D/A转换: 发送给 PCF8591 的第三个字节被存储到DAC 数据寄存器,并使用片上D/A 转换器转换成对应的模拟电压。这个D/A 转换器由连接至外部参考电压的具有256 个接头的电阻分压电路和选择开关组成。接头译码器切换一个接头至DAC 输出线。模拟输出电压由自动清零单位增益放大器缓冲。这个缓冲放大器可通过设置控制寄存器的模拟输出允许标志来开户或关闭。在激活状态,输出电压将保持到新的数据字节被发送。PCF8591介绍 D/A转换时序图:PCF8591介绍 程序构成 PCF8591的写入 第一个字节是器件地址和读写控制 第二个字节
9、被存到控制寄存器,用于控制器件功能。 第三个字节被存储到DAC数据寄存器,并使用片上D/A转换器转换成对应的模拟电压。(所以不输入D/A时,可以不用输入。) PCF8591发送一个字节的程序/* 函数名 : Pcf8591SendByte* 函数功能: 写入一个控制命令* 输入 : channel(转换通道)* 输出 : 无*/void Pcf8591SendByte(unsigned char channel)I2cStart();I2cSendByte(WRITEADDR);/发送写器件地址I2cSendByte(0 x40|channel);/发送控制寄存器I2cStop(); PCF8
10、591的读取 读取的第一个字节是包含上一次转换结果 将上一个字节读取时,才开始进行这次转换的采样。 读取的第二个字节才是这次的转换结果。 所以读取转换结果的步骤是:发送转换命令,将上次的结果读走,然后等一会儿,然后读取结果。 PCF8591读取一个字节的程序/* 函数名 : Pcf8591ReadByte* 函数功能 : 读取一个转换值* 输入 :* 输出 : dat*/unsigned char Pcf8591ReadByte()unsigned char dat;I2cStart();I2cSendByte(READADDR);/发送读器件地址dat=I2cReadByte();/读取数据
11、I2cStop(); /结束总线 return dat; PCF8591发送一次转换的程序/* 函数名 : Pcf8591DaConversion* 函数功能 : PCF8591的输出端输出模拟量* 输入 : value(转换的数值)* 输出 : 无* */void Pcf8591DaConversion(unsigned char value)I2cStart();I2cSendByte(WRITEADDR);/发送写器件地址I2cSendByte(0 x40);/开启DA写到控制寄存器I2cSendByte(value);/发送转换数值I2cStop();例子原理图及程序 例子:* 实 验
12、 名 : AD显示试验* 实验说明 : 使用LCD1602显示AD读取到的各个数值说明:电压值=读取值*分辨率。原理图:例子原理图及程序 热敏电阻光敏电阻例子原理图及程序 程序(采用C51):#include#includei2c.h#includelcd.h/-定义PCF8591的读写地址-/#define WRITEADDR 0 x90 /写地址#define READADDR 0 x91 /读地址/-声明全局函数-/void Pcf8591SendByte(unsigned char channel);unsigned char Pcf8591ReadByte();void Pcf859
13、1DaConversion(unsigned char value);例子原理图及程序 void main()unsigned int adNum5;float value0;LcdInit();while(1)/-显示电位器电压-/Pcf8591SendByte(0); /发送电位器转换命令adNum0=Pcf8591ReadByte()*2;/将前一次转换结果读走LcdWriteCom(0 x80+0 x46); /发送显示坐标LcdWriteData(0+adNum3/1000); /发送显示数据LcdWriteData(0+adNum3%1000/100);LcdWriteData(0
14、+adNum3%100/10);LcdWriteData(0+adNum3%10);Pcf8591SendByte(1); /发送热敏转换命令adNum0=Pcf8591ReadByte()*2;/读取电位器转换结果value0=adNum0/2*0.01953; /转为电压值adNum0=value0*100; /保留两位小数LcdWriteCom(0 x80);LcdWriteData(0+adNum0%1000/100);LcdWriteData(.);LcdWriteData(0+adNum0%100/10);LcdWriteData(0+adNum0%10);LcdWriteData
15、(V);Pcf8591SendByte(2); /发送光敏转换命令adNum1=Pcf8591ReadByte()*2; /ADC1读取热敏例子原理图及程序 LcdWriteCom(0 x86);LcdWriteData(0+adNum1/1000);LcdWriteData(0+adNum1%1000/100);LcdWriteData(0+adNum1%100/10);LcdWriteData(0+adNum1%10);Pcf8591SendByte(3); /发送外部输入电压转换命令adNum2=Pcf8591ReadByte()*2; /ADC2读取光敏 LcdWriteCom(0 x
16、80+0 x40);LcdWriteData(0);LcdWriteData(0+adNum2/1000);LcdWriteData(0+adNum2%1000/100);LcdWriteData(0+adNum2%100/10);LcdWriteData(0+adNum2%10);adNum3=Pcf8591ReadByte()*2; /ADC3读取外部输入电压 adNum4=adNum0;Pcf8591DaConversion(adNum4/2); /DAC 数模转换 例子原理图及程序 /* 函 数 名 : Pcf8591SendByte* 函数功能 : 写入一个控制命令* 输 入 : c
17、hannel(转换通道)* 输 出 : 无*/void Pcf8591SendByte(unsigned char channel)I2C_Start();I2C_SendByte(WRITEADDR, 1); /发送写器件地址I2C_SendByte(0 x40|channel, 0); /发送控制寄存器I2C_Stop();/* 函 数 名 : Pcf8591ReadByte* 函数功能 : 读取一个转换值* 输 入 : 无* 输 出 : dat*/unsigned char Pcf8591ReadByte()unsigned char dat;I2C_Start();I2C_SendByte(READADDR, 1);/发送读器件地址dat=I2C_ReadByte(); /读取数据I2C_Stop(); /结束总线 return dat;例子原理图及程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国安能建设校招真题及答案
- 2025贵州事业编A类考试真题答案含大作文押题范文
- 2026年小升初数学测试题带答案
- 2025-2026学年家庭健身教学设计指导
- 2026招聘专员招聘真题及答案
- 2026年噪声控制技术在交通管理中的应用
- 2026招聘体系工程师面试题及答案
- 2026年现代变速器的动力学特性与仿真研究
- 2026招聘保安面试题及答案
- 2026长龙航空秋招面试题库及答案
- 桥梁检测评定与加固技术课件 第2章 桥梁结构病害分析
- 2025-2026学年冀教版七年级英语上册(全册)知识点梳理归纳
- GB/T 42706.4-2025电子元器件半导体器件长期贮存第4部分:贮存
- 10kV配电网电流保护系统设计
- 雨课堂在线学堂《信息素养-学术研究的必修课》作业单元考核答案
- 2025内蒙古单招计算机试题及答案
- 消防自动报警系统培训
- 消防思想政治教育
- 灭火系统运行管理规定细则
- 加油站防雷安全生产责任制度
- DB4201∕T 533.1-2017 清洁服务规范 第1部分:分类与一般要求
评论
0/150
提交评论