#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
int h = 10;
int m = 30;
int i = 0;
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--) ;
}
void blink()
{
i++;
P2 = table2[3];
if(i%2==0)
P0 = 0x09;
else
P0 = 0x00;
delay(20);
i %= 10;
}
void display()
{
int i,j;
blink();
i = h/10;
j = h%10;
P2 = table2[0];
P0 = table1[ i];
delay(5);
P2 = table2[1];
P0 = table1[j];
delay(5);
i = m/10;
j = m%10;
P2 = table2[5];
P0 = table1[ i];
delay(5);
P2 = table2[6];
P0 = table1[j];
delay(5);
}
void int0() interrupt 0
{
m++;
if(m>59)
{
m = 0;
h++;
if(h>23)
h = 0;
}
}
void int1() interrupt 2
{
m--;
if(m<0)
{
m = 59;
h--;
if(h<0)
{
h = 23;
}
}
}
void init()
{
EA = 1;
EX0 = 1;
EX1 = 1;
IT0 = 1;
IT1 = 1;
}
void main()
{
init();
while(1)
{
display();
}
} |