PCF8591的介绍...ppt_第1页
PCF8591的介绍...ppt_第2页
PCF8591的介绍...ppt_第3页
PCF8591的介绍...ppt_第4页
PCF8591的介绍...ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PCF8591的介绍 第六组 PCF8591介绍 程序构成 例子原理图及程序 Clicktoaddtitleinhere 1 2 3 目录 PCF8591介绍 PCF8591的介绍 PCF8591是单电源 低功耗8位CMOS数据采集器件 具有4个模拟输入 一个输出和一个串行I2C总线接口 3个地址引脚A0 A1和A2用于编程硬件地址 允许将最多8个器件连接至I2C总线而不需要额外硬件 PCF8591由于其使用的简单方便和集成度高 在单片机应用系统中得到了广泛的应用 特点 1单电源供电2工作电压 2 5V 6V3I2C总线串行输入 输出4通过3个硬件地址引脚编址5采样速率取决于I2C总线传输速率决定64个模拟输入可编程为单端或差分输入7自动增量通道选择88位逐次逼近式A D转换 PCF8591介绍 1 首先发出 启动信号 信号S 当S由高变低时 逐次逼近寄存器SAR 清0 DAC输出Vo 0 比较器 输出1 当S变为高电平时 控制电路 使SAR开始工作 SAR首先产生8位数字量的一半 即10000000B 试探模拟量的Vi大小 若Vo Vi 控制电路 清除最高位 若Vo Vi 保留最高位 在最高位确定后 SAR又以对分搜索法确定次高位 即以低7位的一半y1000000B y为已确定位 试探模拟量Vi的大小 在bit6确定后 SAR以对分搜索法确定bit5位 即以低6位的一半yy100000B y为已确定位 试探模拟量Vi的大小 重复这一过程 直到最低位bit0被确定 4 在最低位bit0确定后 转换结束 控制电路 发出 转换结束 信号EOC 该信号的下降沿把SAR的输出锁存在 缓冲寄存器 里 从而得到数字量输出 从转换过程可以看出 启动信号为负脉冲有效 转换结束信号为低电平 应用 1闭环控制系统2用于远程数据采集的低功耗转换器3电池供电设备4在汽车 音响和TV应用方面的模拟数据采集 PCF8591介绍 管脚定义及原理图 AIN0 AIN3 模拟输入 A D转换 AOUT 模拟输出 D A转换 A0 A1 硬件设备地址 GND 电源负极地VREF 参考电压输入 EXT 振荡器输入时 内部 外部的切换开关 OSC 振荡器输入 输出 SCL I2CBUS时钟输入 SDA I2CBUS数据输入 输出 AGND 模拟地 模拟信号和基准电源的参考地 PCF8591介绍 内部框图 PCF8591介绍 PCF8591介绍 地址 I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活 该地址包括固定部分和可编程部分 可编程部分必须根据地址引脚A0 A1和A2来设置 因此I2C系统中最多可接 8个PCF8591 在I2C总线协议中地址必须是起始条件后作为第一个字节发送 地址字节的最后一位是用于设置以后数据传输方向的读 写位1为读操作 0为写操作 控制字 D0 D1用于4个通道设置D2自动增益选择 有效位为1 D5D4模拟量输入选择004路单端输入013路差分输入10单端与差分输入112路差分输入 PCF8591介绍 PCF8591介绍 AD的差分输入与单端输入 单端输入 输入信号均以共同的地线为基准 这种输入方法主要应用于输入信号电压较高 高于1V 信号源到模拟输入硬件的导线较短 且所有的输入信号共用一个基准地线 如果信号达不到这些标准 此时应该用差分输入 对于差分输入 每一个输入信号都有自有的基准地线 由于共模噪声可以被导线所消除 从而减小了噪声误差 单端输入时 是判断信号与GND的电压差 差分输入时 是判断两个信号线的电压差 信号受干扰时 差分的两线会同时受影响 但电压差变化不大 抗干扰性较佳 而单端输入的一线变化时 GND不变 所以电压差变化较大 抗干扰性较差 控制字 发送到PCF8591的第二个字节将被存储在控制寄存器 用于控制器件功能 控制寄存器的高半字节用于允许模拟输出 和将模拟输入编程为单端或差分输入 低半字节选择一个由高半字节定义的模拟输入通道 如果自动增量 auto increment 标志置1 每次A D转换后通道号将自动增加 PCF8591介绍 PCF8591介绍 A D转换 A D转换器采用逐次逼近转换技术 在A D转换周期将临时使用片上D A转换器和高增益比较器 一个A D转换周期总是开始于发送一个有效读模式地址给PCF8591之后 A D转换周期在应答时钟脉冲的后沿被触发 并在传输前一次转换结果时执行 一旦一个转换周期被触发 所选通道的输入电压采样将保存到芯片并被转换为对应的8位二进制码 转换结果被保存在ADC数据寄存器等待传输 如果自动增量标志被置1 将选择下一个通道 A D转换时序图 PCF8591介绍 在读周期传输的第一个字节包含前一次读周期的转换结果代码 以上电复位之后读取的第一个字节是0 x80 D A转换 发送给PCF8591的第三个字节被存储到DAC数据寄存器 并使用片上D A转换器转换成对应的模拟电压 这个D A转换器由连接至外部参考电压的具有256个接头的电阻分压电路和选择开关组成 接头译码器切换一个接头至DAC输出线 模拟输出电压由自动清零单位增益放大器缓冲 这个缓冲放大器可通过设置控制寄存器的模拟输出允许标志来开户或关闭 在激活状态 输出电压将保持到新的数据字节被发送 PCF8591介绍 D A转换时序图 PCF8591介绍 程序构成 PCF8591的写入第一个字节是器件地址和读写控制第二个字节被存到控制寄存器 用于控制器件功能 第三个字节被存储到DAC数据寄存器 并使用片上D A转换器转换成对应的模拟电压 所以不输入D A时 可以不用输入 PCF8591发送一个字节的程序 函数名 Pcf8591SendByte 函数功能 写入一个控制命令 输入 channel 转换通道 输出 无 voidPcf8591SendByte unsignedcharchannel I2cStart I2cSendByte WRITEADDR 发送写器件地址I2cSendByte 0 x40 channel 发送控制寄存器I2cStop PCF8591的读取读取的第一个字节是包含上一次转换结果将上一个字节读取时 才开始进行这次转换的采样 读取的第二个字节才是这次的转换结果 所以读取转换结果的步骤是 发送转换命令 将上次的结果读走 然后等一会儿 然后读取结果 PCF8591读取一个字节的程序 函数名 Pcf8591ReadByte 函数功能 读取一个转换值 输入 输出 dat unsignedcharPcf8591ReadByte unsignedchardat I2cStart I2cSendByte READADDR 发送读器件地址dat I2cReadByte 读取数据I2cStop 结束总线returndat PCF8591发送一次转换的程序 函数名 Pcf8591DaConversion 函数功能 PCF8591的输出端输出模拟量 输入 value 转换的数值 输出 无 voidPcf8591DaConversion unsignedcharvalue I2cStart I2cSendByte WRITEADDR 发送写器件地址I2cSendByte 0 x40 开启DA写到控制寄存器I2cSendByte value 发送转换数值I2cStop 例子原理图及程序 例子 实验名 AD显示试验 实验说明 使用LCD1602显示AD读取到的各个数值说明 电压值 读取值 分辨率 原理图 例子原理图及程序 热敏电阻 光敏电阻 例子原理图及程序 程序 采用C51 include include i2c h include lcd h 定义PCF8591的读写地址 defineWRITEADDR0 x90 写地址 defineREADADDR0 x91 读地址 声明全局函数 voidPcf8591SendByte unsignedcharchannel unsignedcharPcf8591ReadByte voidPcf8591DaConversion unsignedcharvalue 例子原理图及程序 voidmain unsignedintadNum 5 floatvalue0 LcdInit while 1 显示电位器电压 Pcf8591SendByte 0 发送电位器转换命令adNum 0 Pcf8591ReadByte 2 将前一次转换结果读走LcdWriteCom 0 x80 0 x46 发送显示坐标LcdWriteData 0 adNum 3 1000 发送显示数据LcdWriteData 0 adNum 3 1000 100 LcdWriteData 0 adNum 3 100 10 LcdWriteData 0 adNum 3 10 Pcf8591SendByte 1 发送热敏转换命令adNum 0 Pcf8591ReadByte 2 读取电位器转换结果value0 adNum 0 2 0 01953 转为电压值adNum 0 value0 100 保留两位小数LcdWriteCom 0 x80 LcdWriteData 0 adNum 0 1000 100 LcdWriteData LcdWriteData 0 adNum 0 100 10 LcdWriteData 0 adNum 0 10 LcdWriteData V Pcf8591SendByte 2 发送光敏转换命令adNum 1 Pcf8591ReadByte 2 ADC1读取热敏 例子原理图及程序 LcdWriteCom 0 x86 LcdWriteData 0 adNum 1 1000 LcdWriteData 0 adNum 1 1000 100 LcdWriteData 0 adNum 1 100 10 LcdWriteData 0 adNum 1 10 Pcf8591SendByte 3 发送外部输入电压转换命令adNum 2 Pcf8591ReadByte 2 ADC2读取光敏LcdWriteCom 0 x80 0 x40 LcdWriteData 0 LcdWriteData 0 adNum 2 1000 LcdWriteData 0 adNum 2 1000 100 LcdWriteData 0 adNum 2 100 10 LcdWriteData 0 adNum 2 10 adNum 3 Pcf8591ReadByte 2 ADC3读取外部输入电压adNum 4 adNum 0 Pcf8591DaConversion adNum 4 2 DAC数模转换 例子原理图及程序 函数名 Pcf8591SendByte 函数功能 写入一个控制命令 输入 channel 转换通道 输出 无 voidPcf8591SendByte unsignedcharchannel I2C Start I2C SendByte WRITEADDR 1 发送写器件地址I2C SendByte 0 x40 channel 0 发送控制寄存器I2C Stop 函数名 Pcf8591ReadByte 函数功能 读取一个转换值 输入 无 输出 dat unsignedcharPcf8591ReadByte unsignedchardat I2C Start I2C SendByte READADDR 1 发送读器件地址dat I2C ReadByte 读取数据I2C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论