引脚
AIN0~AIN3:模拟信号输入端
A0~A3:引脚地址端
VDD、VSS:电源端
SDA、SCL:I²C总线的数据线、时钟线
OSC:外部时钟输入端,内部时钟输出端
EXT:内部、外部时钟选择线,使用内部时钟时该脚接地
AGND:模拟信号地
AOUT:D/A转换输出端VREF:基准电源端
地址字节
依靠A0 A1 A2可以在同一总线搭载不同器件。
控制字节。
如果自增标志位( BIT2 )置为1,则每A/D转换一次,通道编号自动加1,可以切换通道。 如果使用内部振荡器时,需要使用通道自增模式,那么控制字节的BIT6(模拟输出标志位)需要置为1,从而保证内部振荡器连续运行,预防振荡器启动延时造成转换错误。在其他的时候模拟输出使能位可以复位为0以降低静态功耗。 如果选了一个不存在的输入通道,那么将会定位到编号最高的那个通道。所以,如果设置成了通道自增方式,那么下一个被选中的将是通道0. 每次上电复位后,控制寄存器所有的位将被复位成0。D/A转换器和振荡器将被禁止以省电。模拟输出口将转为高阻状态。
同时多通道ADC总是有BUG,有空阅读手册才行。
#include "reg52.h" /* 定义51单片机特殊功能寄存器 */
#include "intrins.h"
#include "lcd1602.h"
//PCF8591初始化
void init_pcf8591(void)
{
i2c_start();