#include "compiler_defs.h"
#include "C8051F500_defs.h" // SFR declarations
//*****************************************//实时时钟全局常量定义
#define WRITE_SECOND 0x80
#define WRITE_MINUTE 0x82
#define WRITE_HOUR 0x84
#define WRITE_DATE 0x86
#define WRITE_DAY 0x8A
#define WRITE_MONTH 0x88
#define WRITE_YEAR 0x8C
#define READ_SECOND 0x81
#define READ_MINUTE 0x83
#define READ_HOUR 0x85
#define READ_DATE 0x87
#define READ_DAY 0x8B
#define READ_MONTH 0x89
#define READ_YEAR 0x8D
#define WRITE_PROTECT 0x8E
#define uchar unsigned char
sbit ACC7 = ACC^7;
sbit ACC0 = ACC^0;
static unsigned char day = 0;
static unsigned char month = 0;
static unsigned char second = 0;
static unsigned char minute = 0;
static unsigned char hour = 0;
static unsigned char y = 0;
//*****************************************//实时时钟函数声明
void DS1302writeByte(unsigned char data1);
uchar DS1302readByte(void);
void Write1302(uchar ucAddr,uchar ucDa);
uchar Read1302(uchar ucAddr);
void Initial(void);
void OSCILLATOR_Init (void);
void PORT_Init (void);
void delay(unsigned int m);
//*****************************************//实时时钟位定义
SBIT (SCLK, SFR_P3, 7); // DS1302串行时钟信号
SBIT (DIO, SFR_P3, 6); // 双向串行数据
SBIT (RST, SFR_P3, 5); // DS1302使能端,传输数据时必须为高
void main()
{
SFRPAGE = ACTIVE_PAGE; // Set for PCA0MD
PCA0MD &= ~0x40; // Disable Watchdog Timer
OSCILLATOR_Init();
PORT_Init();
Initial();
while(1)
{
day= Read1302(READ_DAY);
month= Read1302(READ_MONTH);
second = Read1302(READ_SECOND);
minute = Read1302(READ_MINUTE);