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

📄 时钟.c

📁 KEIL C开发的时钟程式
💻 C
字号:
#include<reg51.h>
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
unsigned char code table[]={3,243,37,13,153,73,65,31,1,9,2,242,36,12,152,72,65,30,0,8,255};
unsigned char code month[]={00,31,28,31,30,31,30,31,31,30,31,30,31};
unsigned char hour=00,min=00,sec=50,t025=0,t10=0,day=01,mon=01,year=00,week;
bit bdata flag0=1,flag1=1,flag2=1,flag3=1,flag4=1;
void delay()
{ 
unsigned char i1,i2,i3; for (i1=0;i1<5;i1++) { for(i2=0;i2<15;i2++) { for(i3=0;i3<15;i3++) {} } }}
void screen(unsigned char w,unsigned char v){ 
switch (w) { case 1:P2=1;break; case 2: P2=2;break; case 3:P2=4;break; case 4:P2=8;break; 
} P0=table[v]; delay();}
main()
{ void showtime();
void showdate();
void showyear(); 
void showweek(); 
unsigned char xuanze=0; 
TMOD=2; 
TL0=0; 
TH0=6; 
ET0=1; 
EA=1; 
TR0=1; 
while(1) 
{
 if(P14!=flag4) 
 { 
 	if(!flag4) 
 	{
		if(++xuanze==4) 
		{ 
			xuanze=0; 
		} 
	} 
	flag4=P14;
  } 
switch(xuanze) 
{ 
case 0:showtime();break; 
case 1:showdate();break; 
case 2:showyear();break; 
case 3:showweek();break; 
}

}
}
void time() 
interrupt 1 using 2
{
	 if(++t025>=40) 
	 { 
	 	t025=0; 
		if(++t10>=100) 
		{
			t10=0; 
			if (++sec>=60) 
			{ 
				sec=0; 
				if(++min==60)
				{
					 min=0;
					 if(++hour==24) 
					  { 
					  	hour=0; 
						if(++day>month[mon])
						{ 
							if(year%4==0 && mon==2) 
							{ 
								if(day==month[mon]+1) 
								{
									 return; 
								}
							} 
							day=1; 
							if(++mon==13) 
							{ 
								mon=1; 
								if(++year==100) 
								{ 
									year=0; 
								} 
							}
						} 
					} 
				} 
			} 
		} 
	} 
	return ;
}
void showtime()
{
 if(P10!=flag0) { if(!flag0) { if(++hour==24) { hour=0; } } flag0=P10; } if(P11!=flag1) { if(!flag1) { if(--hour==255) { hour=23; } } flag1=P11; }

if(P12!=flag2) { if(!flag2) { if(++min==60) { min =0; } } flag2=P12; } if(P13!=flag3) { if(!flag3) { if(--min ==255) { min=59; } } flag3=P13; }

screen(4,hour/10); screen(3,hour%10); screen(2,min/10+10); screen(1,min%10);}void showdate(){ if(P10!=flag0) { if(!flag0) { if(++mon==13) { mon=1; } if (day>month[mon]) day=month[mon]; } flag0=P10; } if(P11!=flag1) { if(!flag1) { if(--mon==00) { mon=12; } if (day>month[mon]) day=month[mon]; } flag1=P11; }

if(P12!=flag2) { if(!flag2) { if(++day>month[mon]) { if(year%4==0 && mon==2) { if(day>month[mon]+1) { day=1; } } else {day =1;} } } flag2=P12; } if(P13!=flag3) { if(!flag3) { if(--day ==00) { if(year%4==0 && mon==2) { day=month[mon]+1; } else {day=month[mon];} } } flag3=P13; } screen(4,mon/10); screen(3,mon%10+10); screen(2,day/10); screen(1,day%10);}void showyear(){ if(P10!=flag0) { if(!flag0) { if(++year==100) { year=0; } } flag0=P10; } if(P11!=flag1) { if(!flag1) { if(--year==255) { year=99; } } flag1=P11; }

screen(4,12); screen(3,0); screen(2,year/10); screen(1,year%10);}void showweek(){ unsigned char days=5; unsigned char i1;

days=days+year+year/4; for(i1=1;i1<mon;i1++) { days=days+month[i1]%7; } days=days+day; if (year>0||mon>2){days++;} week=days%7; screen(4,20); screen(3,20); screen(2,20); screen(1,week+10);}

⌨️ 快捷键说明

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