//发送无应答信号
void iic_noack(device)
{
sda(device,1);
scl(device,1);
scl(device,0);
}
//检测应答信号
bit iic_testack(device)
{
bit errorbit; //真确应答,返回0
sda(device,1);
iic_delay(iic_delay_time);
scl(device,1);
iic_delay(iic_delay_time);
errorbit=sdasense(device);
scl(device,0);
iic_delay(iic_delay_time);
return(errorbit);
}
//发送一个字节
void iic_write8bit(device,unsigned char input)
{
unsigned char temp;
for(temp=0;temp<8;temp++)
{
if((input<<temp)&0x80)
sda(device,1);
else
sda(device,0);
scl(device,1);
iic_delay(iic_delay_time);
scl(device,0);
}
}
//读一个字节
unsigned char iic_read8bit(device)
{
unsigned char temp,rbyte=0;
for(temp=0;temp<8;temp++)
{
scl(device,1);
iic_delay(iic_delay_time);
if(sdasense(device))
rbyte=(rbyte<<1)+1;
else
rbyte=rbyte<<1;
scl(device,0);
}
return(rbyte);
}
