|
# include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;
u8 code LedChar[16] =
{
0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07,
0X7F, 0X6F, 0X77, 0X7C, 0X39, 0X5E, 0X79, 0X71
};
u8 LedBuff[8] =
{
0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00
};
int main(void)
{
u16 cnt = 0;
u8 sec = 0;
u8 i = 0;
TMOD |= 0X01;
TH0 = 0XD8;
TL0 = 0XF0;
TR0 = 1;
while (1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0XD8;
TL0 = 0XF0;
cnt++;
if(cnt >= 100)
{
cnt = 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];
LedBuff[6] = LedChar[sec/1000000 % 10];
LedBuff[7] = LedChar[sec/10000000 % 10];
}
switch (i)
{
case 0:
LSA=0; LSB=0; LSC=0; i++; P0=LedBuff[0];
break;
case 1:
LSA=1; LSB=0; LSC=0; i++; P0=LedBuff[1];
break;
case 2:
LSA=0; LSB=1; LSC=0; i++; P0=LedBuff[2];
break;
case 3:
LSA=1; LSB=1; LSC=0; i++; P0=LedBuff[3];
break;
case 4:
LSA=0; LSB=0; LSC=1; i++; P0=LedBuff[4];
break;
case 5:
LSA=1; LSB=0; LSC=1; i++; P0=LedBuff[5];
break;
case 6:
LSA=0; LSB=1; LSC=1; i++; P0=LedBuff[6];
break;
case 7:
LSA=1; LSB=1; LSC=1; i=0; P0=LedBuff[7];
break;
}
P0 = 0X00;
}
}
}
把if(==)改成if(=),居然反而可以。。。。
|
|