哪位大神帮我将案件案DS1302的程序哪儿出错了,本来是星期一,就显示星期二,总是后一天的

图片说明
/*向ds1302中写入一字节数据*/
void write_byte(uchar dat)
{
uchar i;
for(i=0;i {
SCK_CLR;
if(dat&0x01)
{
IO_SET;
}
else
{
IO_CLR;
}
Delay_us(10);
SCK_SET;
dat>>=1;
}
}

/*从ds1302的指定地址读一字节数据*/
uchar read_ds1302(uchar addr)
{
char data;
RST_CLR;
SCK_CLR;
Delay_us(10);
RST_SET;
Delay_us(10);
write_byte(addr);
Delay_us(10);
data=read_byte();
Delay_us(10);
SCK_CLR;
RST_CLR;
return data;
}

void write_ds1302(uchar addr,uchar data)
{
RST_CLR;
SCK_CLR;
Delay_us(10);
RST_SET;
/*设置初始时间函数*/
void set_ds1302(uchar addr,uchar *p,uchar n)
{
write_ds1302(0x8e,0x00);
for(;n>0;n--)
{
write_ds1302(addr,*p);
p++;
addr=addr+2;
}
write_ds1302(0x8e,0x80);
}
以上是ds1302的相关程序

http://zhidao.baidu.com/link?url=TgHtPVqPz9aIzEvz9m8RXxpV3ggMvm7pVhPKXzpeNZNL3piFE3IEXl9CoiDzud8FS04iao_6uiMf05VhdvGZR5ZnBp4rsrjiyLYx3HEYTZe

。。。这是外国芯片,西方国家星期天是‘1’,星期一是2,以此类推