include #define uint unsigned int #define uchar unsigned char #define s_count_max 60 #define min_cou_max 60 #define h_count_max 24 unsigned int inttrupt_count=0; unsigned int s_count=0; unsigned int min_cou=0; unsigned int h_count=0; uchar code LED_table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//相應段碼 uchar code bittable[6]={0xf8,0xf4,0xec,0xdc,0xbc,0x7c}; //相應位碼 uchar clockstr[6]={0,0,0,0,0,0}; void dl_ms(){ uint j; for(j=0;j<200;j++);//延時}void display(){ uchar i; for(i=0;i<6;i++) //6個數(shù)碼管 { P0=~(clockstr[i]); P2=bittable[i]; dl_ms(); }} void update_clockstr(void){ clockstr[0]=LED_table[s_count%10]; clockstr[1]=LED_table[(int)(s_count/10)]; clockstr[2]=LED_table[min_cou%10]; clockstr[3]=LED_table[(int)(min_cou/10)]; clockstr[4]=LED_table[h_count%10]; clockstr[5]=LED_table[(int)(h_count/10)];/**/ display();} void main() //測試{ h_count=23; min_cou=59; s_count=50; inttrupt_count=0; EA=1; //中斷 ET0=1; TMOD=0X01; TH0=-20000/256; TL0=-20000%256; TR0=1; for(;;) { update_clockstr(); }}void timer0() interrupt 1 using 1 //完成1s定時 20ms定時 共50次{ inttrupt_count++; TH0=-20000/256; TL0=-20000%256; if (inttrupt_count==50) { inttrupt_count=0; s_count++; if(60==s_count) //(60==s_count) { s_count=0; min_cou++; if(60==min_cou) { min_cou=0; h_count++; if(24==h_count) h_count=0; } } }}。