#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#define ds1302_set0(x) x=0
#define ds1302_set1(x) x=1
sbit ds1302_rst=P1^0;
sbit ds1302_sclk=P1^1;
sbit ds1302_io=P1^2;
void ds1302_initial();
void ds1302_senddata(uchar dsend);
uchar ds1302_receivedata(void);
void ds1302_initial()
{
ds1302_set0(ds1302_rst);
ds1302_set0(ds1302_sclk);
ds1302_set0(ds1302_io);
}
void ds1302_senddata(uchar dsend)
{
uchar i;
for(i=0;i<8;i++)
{
ds1302_set0(ds1302_sclk);
ds1302_io=(bit)(dsend&0x01);
ds1302_set1(ds1302_sclk);
dsend=dsend>>1;
}
}
uchar ds1302_receivedata(void)
{
uchar i,dat=0;
for(i=0;i<8;i++)
{
dat=dat>>1;
ds1302_set0(ds1302_sclk);
if(ds1302_io) dat=dat|0x80;
else dat=dat&0x7f;
ds1302_set1(ds1302_sclk);
}
return dat;
}
/*DS1302驱动结束******************************************/