/*向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的相关程序