這是寫一個字節的時序
void Write_IIC_Byte(unsigned char IIC_Byte)
{
unsigned char i;
for(i=0;i<8;i++) //1個字節8位二進制
{
if(IIC_Byte & 0x80) //判斷這個字節數據的最高位是否為1
SDA=high; //如果最高位為1,在數據線上置高電平
else
SDA=low; //如果最高位為0,則在數據線上置低電平
SCL=high; //產生一個時鐘信號
SCL=low;
IIC_Byte<<=1; //把該數據左移1位,即原來D6位移至D7位(最高位)
}
SDA=1; //8位數據傳送完畢,按IIC總線要求進行提到答
SCL=1;
SCL=0;
} |