|
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit start=P1^0;
sbit sounder=P1^1;
sbit fuwei=P1^2;
uint num;
uint sec=0;
uint ms=0;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8, 0x80,0x90};
void delay(uint a)
{
uint i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
void Display()
{
P2=0x01;
P0=table[sec/10];
delay(5
);
P2=0x02;
P0=table[sec%10]&0x7f;
delay(5);
P2=0x04;
P0=table[ms/10];
delay(5);
P2=0x08;
P0=table[ms%10];
delay(5);
}
void Time0()
{
TMOD=0x01;
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
ET0=1;
EA=1;
TR0=0;
}
void main()
{
sounder=0;
while(1)
{Time0();
if(start==0)
{
delay(5);
if(start==0)
{
TR0=1;
Display();
while(1)
{sounder=~sounder;
delay(1);
Display();
while(start!=0)
{
TR0=0;
Display();
while(fuwei==0)
{
delay(5);
if(fuwei==0)
{Time0();
sec=0;ms=0;
}
}
}
}
}
}
}
}
void int_T0() interrupt 1
{
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
ms++;
if(ms>=100)
{
ms=0;
sec++;
if(sec>=99)
{
sec=0;
}
}
}
|
|