#include
#include
#define LED7 XBYTE[0x9f00]
#define LED6 XBYTE[0x9f01]
#define LED5 XBYTE[0x9f02]
#define LED4 XBYTE[0x9f03]
#define LED3 XBYTE[0x9f04]
#define LED2 XBYTE[0x9f05]
#define LED1 XBYTE[0x9f06]
#define LED0 XBYTE[0x9f07]
#define uint unsigned int
#define uchar unsigned char
uint aa,sec,min,hour;
unsigned int cnt=20;
uint t[]= //数码显示表(89c52)
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40
};
///////////初始化、、、、、、、、、、、、,,,,,,,,,,。。。。。
void initial()
{aa=0;
sec=50;
min=30;
hour=18;
LED0=0;
LED1=0;
LED2=0;
LED3=0;
LED4=0;
LED5=0;
LED6=0;
LED7=0;
}
////////////////////////////时、、、、、、、、、、、、、、、、、、、、、、、、
void hourr()
{
if(hour>23)
hour=0;
hour++;
}
///////////////分、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
void minn()
{
if(min>=59)
{
min=0;
hourr();
}
min++;
}
////////////////////////////////////////秒,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
void secc()
{
//aa++ ;
if(cnt==0)
{
cnt=20;
if(sec>59)
{
sec=0;
minn();
}
sec++;
}
}
void main()
{
TMOD=0x01;//选定时器0,工作方式1
TH0=(65535-50000)/255;//设置初始值
TL0=(65535-50000)%255;
EA=1;//打开总中断
ET0=1;//打开定时器0中断
TR0=1;//定时器开始计数
initial();
while(1)
{ //secc();
LED0=t[sec%10];
LED1=t[sec/10];
LED2=t[10];
LED3=t[min%10];
LED4=t[min/10];
LED5=t[10];
LED6=t[hour%10];
LED7=t[hour/10];
secc();
}
}
////////////////////中断、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
void timer0() interrupt 1 //定时器0
{
TH0=(65535-50000)/255;//设置初始值
TL0=(65535-50000)%255;
cnt--;
}
阅读(789) | 评论(0) | 转发(0) |