#include <reg52.h>
// 0 1 2 3 4 5 6 7 8 9
unsigned char LED8DATA_One[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
// 高位 底位
unsigned char LED8DATA_Two[4] = {0x01, 0x02, 0x04, 0x08};
unsigned char led[4] = {0x00};
unsigned char k=0;
int minute = 0,sec = 0;
unsigned int Counter=0;
void LEDDATA(unsigned char MM, unsigned char jj)
{
P1 = MM;
P3 =jj;
}
void Time1_Init()
{
//TMOD |= 0X10;
//TMOD &= 0XDF;
EA = 1;
TMOD=0X10;
TH1 = 0XFC;
TL1 = 0X66;
ET1 = 1;
TR1 = 1;
}
void delay(int i)
{ int a,b;
for( a=0;a<i;a++)
for(b=0;b<200;b++)
;
}
void main()
{
Time1_Init();
while (1)
{ led[3] = sec % 10;
led[2] = sec / 10 % 10;
led[1] = minute % 10;
led[0] = minute / 10 % 10;
if (k < 4)
{
k++;
}
else
{
k = 0;
}
LEDDATA(LED8DATA_One[led[k]],LED8DATA_Two[k]);
delay(5);
P0=0X00;
}
}
void interrupt_time_1() interrupt 3
{
TH1 = 0XFC;
TL1 = 0X66;
Counter++;
if (1000 == Counter)
{
Counter = 0;
sec++;
if (sec == 60)
{
minute++;
sec = 0;
}
}
}
TOMD定时器设置不对 |