#ifndef __DS1302_H
#define __DS1302_H
#include<STC15F2K60S2.H>
#include<intrins.h>
sbit SDA=P1^3;
sbit RST=P2^3;
sbit SCK=P1^7;
unsigned char read(unsigned char add);
void writebyte(unsigned char dat);
void write(unsigned char add,unsigned char dat);
extern unsigned char TIME[7]; //加入全局变量
#endif
#include "DS1302.h"
unsigned char code write_add[7]={0X80,0X82,0X84,0X86,0X88,0X8A,0X8C};
unsigned char code read_add[7]={0X81,0X83,0X85,0X87,0X89,0X8b,0X8d};
unsigned char TIME[7]={50,59,23,26,2,2,19};
unsigned char read(unsigned char add)
{
unsigned char i,temp,dat1,dat2;
SDA=0;
SCK=0;
SDA=1;
writebyte(add);
for(i=0;i<8;i++)
{
SCK=0;
temp>>=1;
if(RST) temp|=0x80;
SCK=1;
}
RST=0;
return temp;
}
void writebyte(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
SCK=0;
RST=dat&0x01;
SCK=1;
dat>>=1;
}
}
void write(unsigned char add,unsigned char dat)
{
unsigned char num;
SDA=0;
SCK=0;
SDA=1;
writebyte(add);
writebyte(num);
SDA=0;
}