本帖最后由 rebosun 于 2015-10-13 14:11 编辑
/****************************************************************************/
unsigned char Read_Ds1302 ( unsigned char address )
{
unsigned char i,temp=0x00;
RST=0;
_nop_();
SCLK=0;
_nop_();
RST=1;
_nop_();
Write_Ds1302_Byte(address); //DS1302这个芯片是上升沿写入数据,下降沿触发数据输出,
for (i=0;i<8;i++) //循环8次 读取数据
{ SCLK=0; //DS1302这个芯片是下降沿触发数据输出,
temp>>=1; //右移一位
if(SDA2)temp|=0x80; //每次传输低字节
SCLK=1;
}
RST=0;
_nop_(); //以下为DS1302复位的稳定时间
RST=0;
SCLK=0;
_nop_();
SCLK=1;
_nop_();
SDA2=0;
_nop_();
SDA2=1;
_nop_();
return (temp); //返回
} |