|
#include
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit ds=P3^4;
sbit Tm=P3^5;
sbit Tu=P3^6;
sbit Td=P3^7;
uchar code table[]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
uchar a,b,c,d,e,f,A,B,C,D,E,F,temp,num;
void delay(uint);
void init();
void display(uchar A,uchar B,uchar C,uchar D,uchar E,uchar F);
void timemaker();
void main()
{
init();
while(1)
{
display(A,B,C,D,E,F);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--);
for(y=110;y>0;y--);
}
void init()
{
a=1;
b=3;
c=3;
d=2;
e=4;
f=6;
}
void timemaker()
{
while(ds)
{
delay(10);
while(ds)
{
A=a;
B=b;
C=c;
D=d;
E=e;
F=f;
while(Tm)
{
delay(10);
while(Tm)
{
temp++;
if(temp==4)
temp=0;
}
}
while(temp==1)
{
num=A*10+B;
if(Tu)
{
delay(5);
if(Tu)
{
num++;
if(num==24)
num=0;
A=num/10;
B=num%10;
}
}
if(Td)
{
delay(5);
if(Td)
{
num--;
if(num==-1)
num=23;
A=num/10;
B=num%10;
}
}
}
while(temp==2)
{
num=C*10+D;
if(Tu)
{
delay(5);
if(Tu)
{
num++;
if(num==60)
num=0;
C=num/10;
D=num%10;
}
}
if(Td)
{
delay(5);
if(Td)
{
num--;
if(num==-1)
num=59;
C=num/10;
D=num%10;
}
}
}
while(temp==3)
{
num=E*10+F;
if(Tu)
{
delay(5);
if(Tu)
{
num++;
if(num==60)
num=0;
E=num/10;
F=num%10;
}
}
if(Td)
{
delay(5);
if(Td)
{
num--;
if(num==-1)
num=59;
E=num/10;
F=num%10;
}
}
}
}
}
}
void display(uchar A,uchar B,uchar C,uchar D,uchar E,uchar F)
{
wela=1;
P0=0xfe;
wela=0;
P0=0xff;
dula=1;
P0=table[A];
dula=0;
delay(1);
wela=1;
P0=0xfd;
wela=0;
P0=0xff;
dula=1;
P0=table[B];
dula=0;
delay(1);
wela=1;
P0=0xfb;
wela=0; ;
P0=0xff;
dula=1;
P0=table[C];
dula=0;
delay(1);
wela=1;
P0=0xf7;
wela=0;
P0=0xff;
dula=1;
P0=table[D];
dula=0;
delay(1);
wela=1;
P0=0xef;
wela=0;
P0=0xff;
dula=1;
P0=table[E];
dula=0;
delay(1);
wela=1;
P0=0xdf;
wela=0;
P0=0xff;
dula=1;
P0=table[F];
dula=0;
delay(1);
}
|
|