pcf8591读写数据代码的区别是什么?

pcf8591读写数据的代码的差别是什么?
写:
void write_ad(void)
{
int i;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x03);
IIC_WaitAck();
IIC_Stop();
for (i=0;i<1000;i++);
}

读:
unsigned char read_ad(void)
{
unsigned char temp;
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
temp = IIC_RecByte();
IIC_Ack(0);
IIC_Stop();

return temp;

}

写了一下注释,供参考:

写:
void write_ad(void)
{
    int i;
    IIC_Start();            //开启IIC
    IIC_SendByte(0x90);        //选择写入地址
    IIC_WaitAck();            //等待返回的Ack信号
    IIC_SendByte(0x03);        //发送的数据
    IIC_WaitAck();            //等待ACK信号,对方在成功接受数据后,会返回应答信号Ack
    IIC_Stop();                //关闭IIC
    for (i = 0; i < 1000; i++);        //延时
}

读:
unsigned char read_ad(void)
{
    unsigned char temp;
    IIC_Start();            //开启IIC
    IIC_SendByte(0x91);        //选择读入地址
    IIC_WaitAck();            //等待返回的Ack信号
    temp = IIC_RecByte();    //接受发送过来的数据
    IIC_Ack(0);                //发送ACK信号,表示成功接收
    IIC_Stop();                //关闭IIC

    return temp;            //返回接收到的数据
}