#include <REGX51.H>
unsigned int i=0;
unsigned char shi[2]={0,0},fen[2]={0,0},miao[2]={0,0};
unsigned line[6]={0x01,0x02,0x04,0x08,0x10,0x20};
unsigned char cod[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极数码管表
void delay_ms(unsigned int a);
void main()
{
unsigned char a[6],j;
TMOD=0x20;
EA=1;
ET1=1;
P0=0;
TH1=56;
TL1=56;
TCON=0x40;
while(1)
{
a[0]=shi[1];
a[1]=shi[0];
a[2]=fen[1];
a[3]=fen[0];
a[4]=miao[1];
a[5]=miao[0];
for(j=0;j<=5;j++)
{ P0=cod [a[j]];
P2=line[j];
delay_ms(5);
}
}
}
void Timer1() interrupt 3 using 0//定时器采用自动重装模式0.2ms中断一次中断5000次为1s
{
if(i==5000)
{ if((shi[1]==2)&(shi[0]==3)&(fen[1]==5)&(fen[0]==9)&(miao[1]==5)&(miao[0]==9))
{
shi[1]=0;
shi[0]=0;
fen[1]=0;
fen[0]=0;
miao[1]=0;
miao[0]=0;
}
if((shi[0]==9)&(fen[1]==5)&(fen[0]==9)&(miao[1]==5)&(miao[0]==9))
{
shi[1]++;
shi[0]=0;
fen[1]=0;
fen[0]=0;
miao[1]=0;
miao[0]=0;
}
if((fen[1]==5)&(fen[0]==9)&(miao[1]==5)&(miao[0]==9))
{
shi[0]++;
fen[1]=0;
fen[0]=0;
miao[1]=0;
miao[0]=0;
}
if((fen[0]==9)&(miao[1]==5)&(miao[0]==9))
{
fen[1]++;
fen[0]=0;
miao[1]=0;
miao[0]=0;
}
if((miao[1]==5)&(miao[0]==9))
{
fen[0]++;
miao[1]=0;
miao[0]=0;
}
if(miao[0]==9)
{
miao[1]++;
miao[0]=0;
}
else
miao[0]++;
i=0;}
else i++;
}
void delay_ms(unsigned int a)
{
unsigned int i,j;
for(i=0;i<=a;i++)
for(j=0;j<=1000;j++);
}
|