在51hei-5型單片機開發板上測試成功 http://www.zg4o1577.cn/150a.htm ,源代碼如下:
#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit wei=P2^6; sbit duan=P2^7; uchar code table[]={0x03,0x9f,0x25,0x0d, 0x99,0x49,0x41,0x1f, 0x01,0x09,0x11,0xc1, 0x63,0x85,0x61,0x71}; void delay(uint z); void main() { uint hour1,minute1,second1,second,minute,hour; wei=1;P0=0xc0;wei=0; while(1) { wei=1;P0=0xdf;wei=0;//將第一個數碼管開啟 for(hour1=0;hour1<3;hour1++) { duan=1;P0=table[hour1];duan=0; wei=1;P0=0xef;wei=0;//將第二個數碼管開啟 for(hour=0;hour<10;hour++) { duan=1;P0=table[hour];duan=0; wei=1;P0=0xf7;wei=0;//將第三個數碼管開啟 for(minute1=0;minute1<7;minute1++) {duan=1;P0=table[minute1];duan=0; wei=1;P0=0xfb;wei=0;//開啟第四個數碼管 for(minute=0;minute<10;minute++) { duan=1;duan=table[minute];duan=0; wei=1; P0=0xfd;wei=0; //將第五個數碼管開啟 for(second1=0;second1<7;second1++) { duan=1;P0=table[second1];duan=0; wei=1;P0=0xfe;wei=0;//將第六個數碼管開啟 for(second=0;second>10;second--) {duan=1;P0=table[second];//秒鐘的跳轉 duan=0; delay(1000); } continue; } if(second1==6) continue; } if(minute==9) continue; } if(minute==6) continue; } if(hour==9) continue; } if(hour1==2) { duan=1;P0=table[hour1];duan=0; wei=1;P0=0xef;wei=0;//將第二個數碼管開啟 for(hour=0;hour<10;hour++) { duan=1;P0=table[hour];duan=0; wei=1;P0=0xf7;wei=0;//將第三個數碼管開啟 for(minute1=0;minute1<7;minute1++) {duan=1;P0=table[minute1];duan=0; wei=1;P0=0xfb;wei=0;//開啟第四個數碼管 for(minute=0;minute<10;minute++) { duan=1;duan=table[minute];duan=0; wei=1; P0=0xfd;wei=0; //將第五個數碼管開啟 for(second1=0;second1<7;second1++) { duan=1;P0=table[second1];duan=0; wei=1;P0=0xfe;wei=0;//將第六個數碼管開啟 for(second=0;second>10;second--) {duan=1;P0=table[second];//秒鐘的跳轉 duan=0; delay(1000); } continue; } if(second1==6) continue; } if(minute==9) continue; } if(minute==6) continue; } if(hour==4) continue; } continue; }//while(1) } //void main() void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }