MSP430F149的DS1302读取字节函数问题?

2019-07-15 08:53发布

/*******************************************函数名称: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小白一个,麻烦各位大侠指点一下,小弟不胜感激。
0条回答

一周热门 更多>