DS1302时钟读数据程序
时间:10-02
整理:3721RD
点击:
最近在学51,关于DS1302的时序问题,一般读一字节数据是这种
unsigned char output(void)
{
unsigned char i,dat=0;
for(i=8;i>0;i--)
{
dat>>=1;
if(DS1302_IO)dat|=0x80;
CLK=1;
CLK=0;
}
return (dat);
}
但是我有一直疑问:数据是一位一位传输,而且从最低位到最高位,这我都知道,但这一个字节数据到底是怎么样的过程被读出?if(DS1302_IO)dat|=0x80;这句话不是把所有的位都置1了吗?为什么要在DS1302_IO==1的情况下操作?求大神能仔细帮我剖析这段代码,谢谢了
unsigned char output(void)
{
unsigned char i,dat=0;
for(i=8;i>0;i--)
{
dat>>=1;
if(DS1302_IO)dat|=0x80;
CLK=1;
CLK=0;
}
return (dat);
}
但是我有一直疑问:数据是一位一位传输,而且从最低位到最高位,这我都知道,但这一个字节数据到底是怎么样的过程被读出?if(DS1302_IO)dat|=0x80;这句话不是把所有的位都置1了吗?为什么要在DS1302_IO==1的情况下操作?求大神能仔细帮我剖析这段代码,谢谢了
