/*******************************************函数名称:Read1Byte功 能:从DS1302读出1个字节的数据参 数:无返回值 :读出的一个字节数据********************************************/uchar Read1Byte(void) { uchar i; uchar rdata = 0X00;
DS_SDA_IN; //SDA对应的IO设置为输入状态 DS_RST1; //REST=1
for(i = 8; i > 0; i--) { DS_SCL1; delay(10); DS_SCL0; delay(10); rdata >>= 1; if(DS_SDA_BIT) rdata |= 0x80; } return(rdata); }
上述为MSP430F149的官方例程,功能是从DS1302中读出1个字节的数据。通过将程序与时序对比,发现加红的两句代码是不是出错了?为什么移位之后还要将数据与0x80相或呢?这样做不就会改变读取的数据吗?430小白一个,麻烦各位大侠指点一下,小弟不胜感激。
一周热门 更多>