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();
}
版权声明:本文为qq_54278925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。