资源描述
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
uchar shi=0,fen=0,miao=0,count=20;
sbit jiakey=P3^2;
sbit jiankey=P3^3;
sbit xuankey=P3^4;
uchar xuanze=0;
void delay()
{
uint i;
for(i=0;i<200;i++);
}
void xianshi()
{
P2=0;
P0=duan[shi/10];
delay();
P2=1;
P0=duan[shi%10];
delay();
P2=2;
P0=duan[10];
delay();
P2=3;
P0=duan[fen/10];
delay();
P2=4;
P0=duan[fen%10];
delay();
P2=5;
P0=duan[10];
delay();
P2=6;
P0=duan[miao/10];
delay();
P2=7;
P0=duan[miao%10];
delay();
}
void xiugai()
{
uint i;
if(xuankey==0)
{
for(i=0;i<20000;i++);
if(xuankey==0)
{
xuanze++;
if(xuanze>3)
xuanze=1;
}
while(!xuankey);
for(i=0;i<20000;i++);
}
if(jiakey==0)
{
for(i=0;i<20000;i++);
if(jiakey==0)
{
switch(xuanze)
{
case 1:shi++;
if(shi>23)
shi=0;
break;
case 2:fen++;
if(fen>59)
fen=0;
break;
case 3:miao++;
if(miao>59)
miao=0;
break;
}
}
}
if(jiankey==0)
{
for(i=0;i<20000;i++);
if(jiankey==0)
{
switch(xuanze)
{
case 1:if(shi==0)
shi=24;
shi--;
break;
case 2:if(fen==0)
fen=60;
fen--;
break;
case 3:if(miao==0)
miao=60;
miao--;
break;
}
}
}
}
main()
{
TMOD=0x01;
TH0=19644/256;
TL0=19644%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
xianshi();
xiugai();
}
}
void t0_int()interrupt 1
{
TH0=19644/256;
TL0=19644%256;
count--;
if(count==0)
{
count=20;
miao++;
if(miao>59)
{
miao=0;
fen++;
if(fen>59)
{
fen=0;
shi++;
if(shi>23)
shi=0;
}
}
}
}
展开阅读全文