void write_ds1302_byte(uchar dat)
{
uchar i;
for(i=8;i>0;i--)
{
sclk=0;
io=dat&0x01;
dat=dat>>1;
sclk=1;
}
}
这是写一个字节的程序
uchar read_ds1302(uchar add)
{
uchar dat,i;
rst=0;
sclk=0;
rst=1;
write_ds1302_byte(add);
for(i=0;i<8;i++)
{
dat=dat>>1;
sclk=0;
if(io)
{
dat=dat|0x80;
}
sclk=1;
}
rst=0;
sclk=1;
io=1;
return dat;
}
这段程序就看不懂了
那个if(io)是什么意思呢?io现在不已经是一个数据了么 肯定是大于1啊 还有,教学视频里面说if那个判断要判断8次,但是dat移位要移位7次是怎么回事呢?希望大家能详细解答一下,跪求啊!
} |