解释51单片机程序关于AT24C02
ucharread_byte(){uchari,k;scl=0;delay();sda=1;delay();for(i=0;i<8;i++){scl=1;delay();...
uchar read_byte()
{
uchar i,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
这是个从AT24C02芯片上读一个字节的程序,为什么前面还有 scl=0;
delay();
sda=1;
delay();
这个sda=1是什么意思?
但是向芯片里写一个字节的程序里没有前面这四句,这是为什么? 展开
{
uchar i,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
这是个从AT24C02芯片上读一个字节的程序,为什么前面还有 scl=0;
delay();
sda=1;
delay();
这个sda=1是什么意思?
但是向芯片里写一个字节的程序里没有前面这四句,这是为什么? 展开
5个回答
展开全部
读前SDA要置为1即SDA=1,否则若为0即低电平,外部数据读入时,即使为高,也会被拉低成0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scl=0应该是把时间钟拉低,让它有一个上升沿来锁存数据的吧, sda=1就是在读数据前先要写1的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你参考飞利浦公司的I2C总线协议的内容,这些就好理解了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是一个低电平向高电平的跳变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询