#include <reg52.h> #define uint unsigned int #define uchar unsigned char sbit lw=P3^1; sbit ld=P3^0; uchar duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; uint hour=0,minute=0,second=0,t02ms=0; void INT_init() { TMOD=0x20; TH1=256-200; TL1=256-200; EA=1; TR1=1; ET1=1; } void delay(uint i) { while(i--); } /* ************************************************************************************ */ main() { char i; INT_init(); while(1) { for(i=0;i<=7;i++) { P1=wei[i]; switch(i) { case 0:P2=duan[hour/10];break; case 1:P2=duan[hour%10];break; case 2:P2=0xbf;break; case 3:P2=duan[minute/10];break; case 4:P2=duan[minute%10];break; case 5:P2=0xbf;break; case 6:P2=duan[second/10];break; case 7:P2=duan[second%10];break; default:break; } delay(30); } } } /* ************************************************************************************ */ void timerl(void) interrupt 3 { t02ms++; if(t02ms==5000) { t02ms=0; second++; if(second==60) { second=0; minute++; if(minute==60) { minute=0; hour++; if(hour==24) hour=0; } } } }