#include<reg52.h>#include<intrins.h>
sbit ser=P1^0;
sbit latch1=P1^1;
sbit latch2=P3^7;
sbit shift=P1^2;
sbit sclk=P2^7;
sbit io=P2^6;
sbit rs=P2^5;
sbit buzzer=P0^7;
#define second_write 0x80
#define minute_write 0x82
#define date_write 0x86
#define hour_write 0x84
#define month_write 0x88
#define day_write 0x8a
#define year_write 0x8c
#define second_read 0x81
#define minute_read 0x83
#define hour_read 0x85
#define day_read 0x8b
#define month_read 0x89
#define year_read 0x8d
#define date_read 0x87
#define protect 0x8e
unsigned char time[]={20,12,12,17,10,10,2};
unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char code weima[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char shijian[8];
unsigned char temp[];
//延时函数
void delayus(unsigned int t){ while(--t);}
//延时函数2
void delayms(unsigned int t){ while(t--) { delayus(450); }}
//595相关函数
void sendbyte(unsigned char dat){ unsigned char i; for(i=0;i<8;i++) { shift=0; ser=dat&0x80; dat<<=1; shift=1; }}
void weisuo(void){ latch1=0; nop_(); latch1=1;}
void duansuo(void){ latch2=0; nop_(); latch2=1;}
//ds1302相关函数。。
void write_byte(unsigned char addr,unsigned char time){ unsigned char i;
rs=0; nop_(); rs=1; sclk=0;
for(i=0;i<8;i++) { sclk=0; io=addr&0x01; addr>>=1; sclk=1; }