#include <reg51.h>
#define LaoBai unsigned char
#define Liyuchao unsigned int
LaoBai code GY[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
Liyuchao second=0,minter=0,hour=12;
Liyuchao sshi,sge,mge,mshi,hshi,hge;
static char ji_shu_zhong_duan_ci_shu=0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P20=P2^0;
sbit P10=P1^0;
sbit P11=P1^1;
void delay()
{
LaoBai i;
for(i=0;i<15;i++);
}
void int1()interrupt 1 using 2
{
TH0=0x4C;
TL0=0x00;
ji_shu_zhong_duan_ci_shu++;
if(minter==60)minter=0;
if(hour==24)hour=0;
}
void main()
{
TMOD=0x01;
TH0=0x4C;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
for(;;)
{
sshi=second/10;
sge=second%10;
mshi=minter/10;
mge=minter%10;
hshi=hour/10;
hge=hour%10;
P0=GY[sge];
P27=1;
delay();
P27=0;
P0=GY[sshi];
P26=1;
delay();
P26=0;
P0=0xBF;
P25=1;
delay();
P25=0;
P0=GY[mge];
P24=1;
delay();
P24=0;
P0=GY[mshi];
P23=1;
delay();
P23=0;
P0=0xBF;
P22=1;
delay();
P22=0;
P0=GY[hge];
P21=1;
delay();
P21=0;
P0=GY[hshi];
P20=1;
delay();
P20=0;
if(ji_shu_zhong_duan_ci_shu==20)
{ ji_shu_zhong_duan_ci_shu=0;
second++;
if(second==60)
{
second=0;minter++;
if(minter==60)
{
minter=0;hour++;
if(hour==24)
hour=0;
}
}
else if(P10==0)minter++;
else if(P11==0)hour++;
}
}
}
|