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

📄 clock.c

📁 新颖60秒LED旋转数字钟有闹钟
💻 C
字号:
#include<reg51.h>
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^4;
sbit k4=P3^5;
sbit kk=P1^7;
sbit sb1=P3^2;
sbit sb2=P3^3;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
unsigned char code table1[]={0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82};
unsigned char a,b,sec,min,hour,dian,flage,flage1,nhour,nmin;
void delay(int z)
{
	unsigned int x,y;
	for(x=z;x>0;x--)
		for(y=63;y>0;y--);
}
void timer0 () interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	a++;
	if(a<5)
	{
		dian=1;
		kk=1;
	}
	else
	{
		dian=0;
		kk=0;
	}
	if(a==10)
	{
		a=0;
		sec++;
		if(sec==60)
		{
			sec=0;
			min++;
			if(min==60)
			   {
			   		min=0;
					hour++;
					if(hour==24)
					hour=0;
			   }
		}
	}
}
void display(char i,j)
{
	if(dian==1)
	P1=table[i/10];
	else P1=table[i/10]+0x80;
	k1=1;
	delay(5);
	k1=0;
	if(dian==1)
	P1=table[i%10];
	else P1=table[i%10]+0x80;
	k2=1;
	delay(5);
	k2=0;
	if(dian==1)	
	P1=table1[j/10];
	else P1=table1[j/10]+0x80;
	k3=1;
	delay(5);
	k3=0;
	if(dian==1)	
	P1=table[j%10];
	else P1=table[j%10]+0x80;
	k4=1;
	delay(5);
	k4=0;	
}
void keysplay()
{
	if(sb1==0)
	{
		while(sb1==0);
		TR0=0;
		flage++;
		while(1)
		{
			display(hour,min);
			if(sb2==0)
			{
				while(sb2==0);
				if(flage==1)
				hour++;
				else min++;
				if(hour==24)
				hour=0;
				if(min==60)
				min=0;
			}
			if(sb1==0)
			break;
		}
		if(flage==2)
		{
			flage=0;
			while(sb1==0);
			TR0=1;
		}	
	}
	if(sb2==0)
	{
		while(sb2==0);
		flage1++;

		while(1)
		{
			display(nhour,nmin);
			if(sb1==0)
			{
				while(sb1==0);
				if(flage1==1)
				nhour++;
				else nmin++;
				if(nhour==24)
				nhour=0;
				if(nmin==60)
				nmin=0;
			}
			if(sb2==0)
			break;
		}
		if(flage1==2)
		{
			flage1=0;
			while(sb2==0);
		}	
	}	
}
void speaker()
{
	b=10;
wi:	sb2=0;
	delay(5);
	sb2=1;
	b--;
	if(b!=0)
	goto wi;	
}
void beep()
{
	if(min==0&&sec==0)
	speaker();
	if((min==nmin)&&(hour==nhour)&&(sec<30))
	speaker();
	else if(dian==0)
	speaker();
	if((hour>21)&&(hour<7))
	{
		delay(100);
	}
}
void main()
{
	EA=1;
	ET0=1;
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	TR0=1;
	P3=0x7e; 
	while(1)
	{
		display(hour,min);
		keysplay();
		beep();
	}
}

⌨️ 快捷键说明

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