📄 time.c
字号:
#include<reg51.h>
unsigned char code Led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int count;
unsigned char second,minute,hour;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
void init()
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
second=minute=hour=count=0;
EA=1;ET0=1;TR0=1;
}
void delay()
{
unsigned char i;
for(i=200;i>0;i--);
}
void key()
{
if(P1_0==0)
{
delay();
if(P1_0==0)
{
while(!P1_0);
minute++;
if(minute>59)
minute=0;
}
}
if(P1_1==0)
{
delay();
if(P1_1==0)
{
while(!P1_1);
hour++;
if(hour>23)
hour=0;
}
}
}
void main()
{
init();
while(1);
}
void time0() interrupt 1
{
static char i=0;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
count++;
P3&=0x00; //关全部数码管
if(i>8)
i=0;
key();
switch (i)
{
case 0:
P3_7=1;
P2=Led[second%10];
break;
case 1:
P3_6=1;
P2=Led[second/10];
break;
case 2:
P3_5=1;
P2=0xbf;
break;
case 3:
P3_4=1;
P2=Led[minute%10];
break;
case 4:
P3_3=1;
P2=Led[minute/10];
break;
case 5:
P3_2=1;
P2=0xbf;
break;
case 6:
P3_1=1;
P2=Led[hour%10];
break;
case 7:
P3_0=1;
P2=Led[hour/10];
break;
}
i++;
if(count==500)
{
count=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
hour=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -