⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.c

📁 Proteus
💻 C
字号:
#include <at89x51.h>
#include <DS1302.h>

#define  change P3_0
#define  shi P3_1
#define  fen P3_2
#define  din  P2_0
#define  load  P2_1
#define  clk  P2_2
#define uchar unsigned char 
#define uint  unsigned int

uchar buf[]={0,0,0,0,0,0,0,0};
SYSTEMTIME  time1;

uint ledc=0,ledn=0;
char code  led[]=  {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x55,0xaa,0xf0,0x0f};
char code num[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
char ctrl=0;
uchar hour=0,minu=0,dat;
int i,j,h;

void delay()
{
 for(i=0;i<15;i++)
 {
   for(j=0;j<10;j++)
    {;}
	}
}

void delayms()
{
 for(i=0;i<100;i++)
  for(j=0;j<125;j++)
  {;}

}
void key()
{
 if(shi==0)
 {
  delayms();
  if(shi==0)
  {	hour=time1.Hour;
    hour++;
	if(hour>23)hour=0;
	dat=((hour/10)<<4&0x30)|(hour%10);
	Write1302(0x84,dat);
	}
   }
 if(fen==0)
  {delayms();
   if(fen==0)
   {minu=time1.Minute;
    minu++;
	if(minu>59)minu=0;
	dat=((minu/10)<<4&0x70)|(minu%10);
	Write1302(0x82,dat);
	}
   }
 
}
 

void main()

{ 
   Initial_DS1302();
   
   while(1)
     {	 
	   DS1302_GetTime(&time1);

	   if(change==0)
	   {
        buf[7]=(time1.Day)%10;
        buf[6]=(time1.Day)/10;
        buf[4]=(time1.Month)%10;
        buf[3]=(time1.Month)/10;
        buf[1]=(time1.Year)%10;
        buf[0]=(time1.Year)/10;
	    }
	   else
	   {
        buf[7]=(time1.Second)%10;
        buf[6]=(time1.Second)/10;
        buf[4]=(time1.Minute)%10;
        buf[3]=(time1.Minute)/10;
        buf[1]=(time1.Hour)%10;
        buf[0]=(time1.Hour)/10;
	    }
	   buf[2]=10;
	   buf[5]=10;
      for(h=0;h<8;h++)
       {
        ctrl=h;
	    P1=ctrl;
		P0=dat;
	    P2=num[buf[h]];
		delay();
 		}
	 P3=0xff;
 	 key();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -