单字节读的时序

底层驱动代码实现可参考如下:
unsigned char DS1302ReadByte(unsigned char addr)
{
unsigned char n,dat,tmp;
RST = 0;
_nop();
SCLK = 0;
nop();
RST = 1;
nop();
for(n=0; n<8; n++) //发送要读出数据的内存地址<br /> {<br /> DSIO = addr & 0x01;<br /> addr >>= 1;<br /> SCLK = 1;<br /> _nop_();<br /> SCLK = 0;<br /> _nop_();<br /> }<br /> <br /> for(n=0; n<8; n++) //读出该地址内存的数据<br /> {<br /> tmp = DSIO;<br /> dat = (dat>>1) | (tmp<<7);<br /> SCLK = 1;<br /> _nop_();<br /> SCLK = 0;<br /> _nop_();<br /> }RST = 0;<br /> _nop_();<br /> SCLK = 1;<br /> _nop_();<br /> DSIO = 0;<br /> _nop_();<br /> DSIO = 1;<br /> _nop_();<br /> return dat; <br />}
