uchar ds1302_OutputByte(void)
{
uchar i;
T_RST = 1;//实时时钟复位线引脚
for(i=8; i>0; i--)
{
ACC = ACC >>1;
T_IO=1;//实时时钟数据线引脚
ACC7 = T_IO;
T_CLK = 1;//实时时钟时钟线引脚
T_CLK = 0;
}
return(ACC);
}
這函數好像混雜著讀寫,應該為以下才對
void DS1302_InputByte(uchar byte) //往DS1302写入1Byte数据
{
uchar i;
uchar temp;
temp = byte;
for(i=8; i>0; i--)
{
T_IO = temp&0x01;
T_CLK=1;
T_CLK=0;
temp = temp >> 1;
}
}
uchar DS1302_OutputByte(void) //从DS1302读取1Byte数据
{
uchar i;
uchar temp=0;
for(i=0; i<8;i++)
{
T_CLK=0;
if(T_IO!=0) temp|=(1<<i);
T_CLK=1;
}
return(temp);
}
以上供參考