#include <reg51.h>
//-------函数声明-----------
void delay_nms(unsigned char t);
unsigned char miao=55,counter=0,fen=59,shi=23;
unsigned char LED[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
void csh();
void zoushi();
void xianshi();
bit flagls=0;
void main()
{
csh();
while (1)
{
zoushi();
xianshi();
}
}
//---------走时函数----------
void csh()
{
TMOD=0x01;
TH0=15536/256;
TL0=15536%256;
TR0=1;
EA=1;
ET0=1;
}
//---------中断函数-----------
void To_hs() interrupt 1
{
TH0=15536/256;
TL0=15536%256;
counter++;
if(counter==15)
{
flagls=1;counter=0;
}
}
//---------走时函数-----------
void zoushi()
{
if(flagls==1)
{
flagls=0;
miao=miao+1;
if(miao>=60)
{
miao=0,fen=fen+1;
if(fen>=60)
{
fen=0,shi=shi+1;
if(shi>=24) shi=0;
}
}
}
}
//---------显示函数 --------
void xianshi()
{
P2=0X01;
P0=LED[shi/10];
delay_nms(1);
P2=0X02;
P0=LED[shi%10];
delay_nms(1);
P2=0X04;
P0=LED[10];
delay_nms(1);
P2=0X08;
P0=LED[fen/10];
delay_nms(1);
P2=0X10;
P0=LED[fen%10];
delay_nms(1);
P2=0X20;
P0=LED[10];
delay_nms(1);
P2=0X40;
P0=LED[miao/10];
delay_nms(1);
P2=0X80;
P0=LED[miao%10];
delay_nms(1);
}
//-----------延时函数------------
void delay_nms(unsigned char t)
{
unsigned char us,usn;
while(t!=0)
{
usn=4;
while(usn!=0)
{
us=0xf0;
while(us!=0)
{ us--;
}
usn--;
}
t--;
}
}
|