1.起始信号
void IIC_Start()
{
SCL = 1;
SDA = 1;
_nop_();
SDA = 0;
_nop_();
}
2.终止信号
void IIC_Stop()
{
SCL = 1;
SDA = 0;
_nop_();
SDA = 1;
_nop_();
}
3.ARK应答信号
typedef unsigned char u8;
u8 IIC_ACK()
{
u8 flag;
//SCL = 0;
SDA = 1; //第九个脉冲来到时 拉高数据线 使数据线处于空闲状态
_nop_();
SCL = 1;
_nop_();
flag = SDA;
_nop_();
SCL = 0;
_nop_();
return flag;
}
4.IIC发送一字节
void IIC_sendByte(u8 sendBuf)
{
u8 i;
for(i=0;i<8;i++){
SCL = 0;
sendBuf <<= 1;
SDA = CY;
_nop_();
SCL = 1;
_nop_();
SCL = 0;
_nop_();
}
IIC_ACK();
}