#include <reg52.h>#include <stdio.h>#include "ds1302.h"#include "1602.h"#include "i2c.h"#include "delay.h"#define AddWr 0x90;#define AddRd 0x91;#define LS 0xB0;#define KeyPort P2;void Init_Timer0();sbit LS_1S=P3^0;sbit LS_2S=P3^1;sbit LS_3O=P3^2;sbit LS_3C=P3^3;bit ReadTimeFlag;bit Autoblinds;bit SetFlag;sbit A1=P1^2; sbit B1=P1^3;sbit C1=P1^4;sbit D1=P1^5;sbit DC1OUT = P1^6;sbit DC2OUT = P1^7;#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;};#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;};#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;};#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;};#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;};#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;};#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;};#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;};#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;};extern bit ack;unsigned char ReadADC(unsigned char Chl);unsigned char temp1[16];unsigned char time_buf2[16];/*------------------------------------------------ main function------------------------------------------------*/ main(){ unsigned char Speed1;unsigned int i;unsigned char KeyScan(void);unsigned char num;unsigned char num1;unsigned char PWN_ON;LS_1S=1;LS_2S=1;LS_3O=1;LS_3C=1;LCD_Init(); DelayMs(20); LCD_Clear(); Init_Timer0(); Ds1302_Init(); Ds1302_Read_Time(); if((time_buf1[2]+time_buf1[7])==0) Ds1302_Write_Time(); while (1) //main cycle {if(ReadTimeFlag==1) { ReadTimeFlag=0; Ds1302_Read_Time(); sprintf(temp1,"TIME %02d:%02d:%02d",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]); LCD_Write_String(0,0,temp1); }; if (LS_1S==0) goto SolarCheck; else PWN_ON=1; DC1OUT=1; if (LS_2S==0) goto rev; if(Autoblinds==1) { num=255-ReadADC(0); if (num>80) goto BlindC; else if (num<70) goto BlindO; }; num1=KeyScan(); switch(num1) { case 1:Autoblinds=0;goto BlindC; case 2:Autoblinds=0;goto BlindO; case 3:time_buf1[4]++;if(time_buf1[4]==24)time_buf1[4]=0; Ds1302_Write_Time();break; case 4:time_buf1[4]--;if(time_buf1[4]==255)time_buf1[4]=23; Ds1302_Write_Time();break;