1.主函数
void main()
{
dianya_ain_light = (unsigned int)((read_ain1()*5.0/255)*100);
dianya_ain_dianya = (unsigned int)((read_ain3()*5.0/255)*100);
//最后用数码管将转换后的电压值和光敏电阻值显示出即可
}
2.使用PCF8591芯片测AIN3通道的电位器RB2的电压VAIN3
unsigned int read_ain3()
{
unsigned char i;
for(i=1;i<2;i++)
{
IIC_Start(); //IIC总线起始信号
IIC_SendByte(0x90); //发送PCF8591的写操作地址
IIC_WaitAck(); //等待从机应答
IIC_SendByte(0x03);//发送控制字节(通道3)
IIC_WaitAck(); //等待从机应答
IIC_Stop(); //IIC总线起始信号
IIC_Start();
IIC_SendByte(0x91); //发送PCF8591的读操作地址
IIC_WaitAck();
temp=IIC_RecByte(); //读取PCF8591通道的数据
IIC_WaitAck(1); //产生非应答信号
IIC_Stop();
}
return temp;
}
3.使用PCF8591芯片测AIN1通道的电位器RB1的光敏传感器
unsigned int read_ain1()
{
unsigned char temp=0;
unsigned char i;
for(i=1;i<2;i++)
{
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x01);
IIC_WaitAck();
IIC_Stop(); //IIC总线起始信号
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
temp=IIC_RecByte(); //读取PCF8591通道的数据
IIC_WaitAck(1); //产生非应答信号
IIC_Stop();
}
return temp;
}