"); //-->
Void IIC_start()
{
SDA=1;
SCL=1;
Delay();
SDA=0;
Delay();
SCL=0;
}
2、产生IIC总线数据传输的停止信号
Void IIC_stop()
{
Sda=0;
Scl=0;
Delay();
Scl=1;
Delay();
Sda=1;
Delay();
}
3、 等待丛集返回一个相应信号ACK
Void IIC_waitack()
{
SCL=0;
SDA=1;
DELAY();
SCL=1;
DELAY();
While(sda);
SDA=0;
SCL=0;
}
4、 向IIC总线发出一个相应的信号ACK
Void IIC_ACK()
{
SDA=0;
Delay();
Scl=1;
Delay();
Scl=0;
}
5、 向从机返回一个非响应信号,迫使数据传输过程中断
Void IIC_NOACK()
{
Sda=1;
Scl=0;
Delay();
Scl=1;
Delay();
}
6、 向IIC总线发送一个字节
Void IIC_Sendbyte(uchar bdata senddata)
{
Uchar count;
Sbit datah=senddata^7;
For(count=0;count<8;count++)
{
SCL=0;
SDA=datah;
Senddata<<=1;
Delay();
Scl=1;
Delay();
}
Scl=0;
}
7、 向IIC总线上接受一个字节的数据
Void IIC_receivebyte()
{
Uchar i,temp;
Uchar bdata rdata;
Sbit rdatal=rdata^0;
Sda=1;
For(i=0;i<8;i++)
{
Scl=0;
Delay();
Scl=1;
Delay();
Rdatal=sda;
Rdata<<=1;
Sda=1;
}
Iicdata=rdata;
}
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。