总线空闲
总线
void
{
sda_24=1;
usdealy();
scl_24=1;
usdelay();
sda_24=0;
usdelay();
scl_24=0;
}
void
{
sda_24=0;
usdelay();
scl_24=1;
usdelay();
sda_24=1;
usdelay();
}
写入逻辑信号0
写入逻辑信号1
void
{
uchar
for(i=0;i<8;i++)
{
scl_24=0;
usdelay();
sda_24=(bit)(dat&0x80);
usdelay();
scl_24=1;
usdelay();
dat<<1;
}
scl_24=0;
usdelay();
sda_24=1;
usdelay();
}
读一个字节
uchar
{
uchar
scl_24=0;
usdelay();
sda_24=1;
usdelay();
for(i=0;i<8;i++)
{
scl_24=1;
usdelay();
k=(k<<1)|sda_24;
scl_24=0;
usdelay();
}
return
}
void
{
star24();
write_byte(0xa0);//呼叫哪一个器件
Ack24();
write_byte(add);//往器件内部的地址写
Ack24();
write_byte(dat);//写入数据
Ack24();
stop24();
}
uchar
{
uchar
star24();
write_byte(0xa0);呼叫那个器件
Ack24();
write_byte(add);要读器件内部地址
Ack24();
star24();
write_byte(0xa1);//呼叫器件
Ack24();
dat=read_byte();
stop24();
return
}