#include<STC12C5A60S2.H>
unsigned char code LedChar []={
0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xc6,0xA1,0x86,0x8E
};
unsigned char LedBuff[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
unsigned char flagls = 0;
unsigned int cnt = 0;
unsigned char i = 0;
void main()
{
unsigned long sec = 0;
P11 = 0;
TMOD = 0x01;
TH0 = 0xFD;
TL0 = 0x65;
TR0 = 1;
EA = 1;
ET0=1;
while(1)
{
if(flagls == 1)
{
flagls = 0;
sec++;
LedBuff[0] = LedChar[sec%10];
LedBuff[1] = LedChar[sec/10%10];
LedBuff[2] = LedChar[sec/100%10];
LedBuff[3] = LedChar[sec/1000%10];
LedBuff[4] = LedChar[sec/10000%10];
LedBuff[5] = LedChar[sec/100000%10];
}
}
}
void InterruptTime0() interrupt 1
{
TH0 = 0xFD;
TL0 = 0x65;
cnt++;
if(cnt>=1000)
{
cnt = 0;
flagls = 1;
}
P0 = 0xFF;
switch(i)
{
case 020=021=022=0;i++0=LedBuff[5];break;
case 120=121=022=0;i++0=LedBuff[4];break;
case 220=021=122=0;i++0=LedBuff[3];break;
case 320=121=1;P22=0;i++;P0=LedBuff[2];break;
case 420=0;P21=0;P22=1;i++;P0=LedBuff[1];break;
case 520=1;P21=0;P22=1;i=0;P0=LedBuff[0];break;
default :break;
}
}
|