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

📄 gkim.c

📁 最小系统数字钟
💻 C
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit we1=P2^4;
sbit we2=P2^5;
sbit we3=P2^6;
sbit we4=P2^7;
sbit s1=P3^2;
sbit s2=P3^3;
sbit s3=P3^4;
sbit s4=P3^5;
uchar i,t1,t2,f1,f2,s1num,count;
char miao,fen,shi,num;
uchar fen1,fen2,shi1,shi2,miao1,miao2;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x73,0x6d,0,0x40,0x76,
0x80};
void delay(uint z)
{uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
void display(uchar one,uchar two,uchar three,uchar four)
{	   
		P0=table[one];
		we4=1;
		delay(1);
		we4=0;
			
		P0=table[two];  
		we3=1;
		delay(1);
		we3=0;		
		
		P0=table[three];
		we2=1;
		delay(1);
		we2=0;		
		
		P0=table[four];
		we1=1;
		delay(1);
		we1=0;
}
void init()
{	for(i=0;i<100;i++)
		display(19,19,19,19);
	TMOD=0x01;
	EA=1;
	ET0=1;
	TR0=1;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	
	
}
void keyscan()
{
	
	if(s1==0&&num==0)	
	{
		delay(5);
		if(s1==0)
		{	s1num++;
			while(!s1);
			if(s1num==1)
			{	TR0=0;
				t1=shi1;
				t2=shi2;
				f1=fen1;
				f2=fen2;
				shi1=19;
				shi2=19;
				fen1=miao1;
				fen2=miao2;
			}
			if(s1num==2)
			{
				
				fen1=f1;
				fen2=f2;
				shi1=21;
				shi2=21;
			}
		
			if(s1num==3)
			{
				f1=fen1;
				f2=fen2;
				shi1=t1;
				shi2=t2;
				fen1=21;
				fen2=21;
			}
			
			if(s1num==4)
			{	s1num=0;
				TR0=1;
				fen1=f1;
				fen2=f2;
			}
			
		}
				
		}
		if(s1num!=0)
		{
			if(s2==0)
			{
				delay(5);
				if(s2==0)
				{
					while(!s2);
					if(s1num==1)
					{
						miao++;
						if(miao==60)
							miao=0;
						miao1=miao/10;
						miao2=miao%10;
						fen1=miao1;
						fen2=miao2;
						
						
					}
					if(s1num==2)
					{
						fen++;
						if(fen==60)
							fen=0;
						fen1=fen/10;
						fen2=fen%10;
						
						
					}
					if(s1num==3)
					{
						shi++;
						if(shi==24)
							shi=0;
						shi1=shi/10;
						shi2=shi%10;
					}
					
				}
			}
			if(s3==0)
			{
				delay(5);
				if(s3==0)
				{
					while(!s3);
						if(s1num==1)
					{
						miao--;
						if(miao==-1)
							miao=59;
						miao1=miao/10;
						miao2=miao%10;
						fen1=miao1;
				        fen2=miao2;
						
						
					}
					if(s1num==2)
					{
				
						fen--;
						if(fen==-1)
							fen=59;
						fen1=fen/10;
						fen2=fen%10;
					}
					if(s1num==3)
					{
						shi--;
						if(shi==-1)
							shi=23;
						shi1=shi/10;
						shi2=shi%10;
					}
					
				}
			}
		}
	if(s4==0&&s1num==0)
	{
		delay(5);
		if(s4==0)
			{
				num++;
				while(!s4);
				if(num==2)
					num=0;
			}		
	}
}

void main()
{
	init();
	while(1)
	{	keyscan();
		if(num==0)
			{
			
				display(shi1,shi2,fen1,fen2);
				if(s1num==0)
				   {    we3=1;
						P0=table[21];
						delay(1);
						we3=0;
					}
			}
		else    
			{	
				
				display(19,19,miao1,miao2);
			}
	}
}
void time0() interrupt 1
{
		TH0=(65536-50000)/256;
		TL0=(65536-50000)%256;
		count++;
		if(count==20)
			{	
				count=0;
				miao++;
				if(miao==60)
					{
						miao=0;
						fen++;
						if(fen==60)
							{
								fen=0;
								shi++;
								if(shi==24)
									shi=0;
								shi1=shi/10;
								shi2=shi%10;
							}
						fen1=fen/10;
						fen2=fen%10;
					}
				miao1=miao/10;
				miao2=miao%10;
			}
	
}



⌨️ 快捷键说明

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