PCF8591 芯 片 的 应用 C 语言编程 1 PCF8591 芯片的使用 基于PCF8591 的AD—DA 的程序设计。本设计是通过PCF8591 芯片选择通道1 将滑动变阻器的电压记过A/D 转换,有单片机读回,并在数码管显示,比且有这个数据再经过D/A转换成模拟电压驱动发光二极管。发光二极管的亮度与数码管显示的电压值相对。 1. PCF8591 芯片 PCF8591 是单片、单电源低功耗 8 位 CMOS 数据采集器件,具有4 个模拟输入、一个输出和一个串行 I2C 总线接口。3 个地址引脚 A0、A1 和 A2 用于编程硬件地址,允许将最多 8个器件连接至 I2C 总线而不需要额外硬件。器件地址、控制和数据通道通过两线双向 I2C 总线传输。 器件功能包括多路复用模拟量输入、片上跟踪和保持功能、8 位模数转换和 8 位数模转换。最大转换速率取决于I2C 总线的最高速率。 我实现的AD 转换是使用通道0 将滑动变阻器两端的电压 AIN0~AIN3:模拟信号输入端。 A0~A2:引脚地址端。 VDD、VSS:电源端。(2.5~6V) SDA、SCL:I2C 总线的数据线、时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端。 地址:I2C 总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。该地址包括固定部分和可编程部分。可编程部分必须根据地址引脚A0、A1和 A2来设置。在I2C 总线协 PCF8591 芯 片 的 应用 C 语言编程 2 议中地址必须是起始条件后作为第一个字节发送。地址字节的最后一位是用于设置以后数据传输方向的读/写位。(见下图) 控制字:发送到 PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。控制寄存器的高板字节用于允许模拟输出,和将模拟输入编程为单端过查分输入。低半字节选择一个有高板字节定义的模拟输入通道。如果自动增量标志置1,每次 A/D 转换后通道号将自动增加。 如果自动增量模式是使用内部振荡器的应用中所需要的,那么控制字中模拟输出允许标志应置1。这要求内部振荡器持续运行,因此要防止振荡器启动延时的转换错误结果。模拟输出标志可以在其他时候复位以减少静态功耗。 D /A 转换:发送给 PCF8591的第三个字节被存储到 DAC 数据寄存器,并使用片上 D/A转换器转换成对应的模拟电压。这个D/A 转换器由连接至外部参考电压的具有256个接头的电阻分压电路和选择开关组成...