单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)(3) /*发送0,在SCL为高电平时使SDA信号为低*/ SDA=0; SCL=1; DELAY(DELAY_TIME); SCL=0; DELAY(DELAY_TIME); }
void SEND_1(void) { /*发送1,在SCL为高电平时使SDA信号为高*/ SDA=1; SCL=1; DELAY(DELAY_TIME); SCL=0; DELAY(DELAY_TIME); }
bit Check_Acknowledge(void) { /*发送完一个字节后检验设备的应答信号*/ SDA=1; SCL=1; DELAY(DELAY_TIME/2); F0=SDA; DELAY(DELAY_TIME/2); SCL=0; DELAY(DELAY_TIME); if(F0==1) return FALSE; return TRUE; }
void WriteI2CByte(char b)reentrant { /*向I2C总线写一个字节*/ char i; for(i=0;i<8;i++) if((b<<i)&0x80) SEND_1();