在51hei-5型單片機開發(fā)板上測試成功 http://m.raoushi.com/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;//將第一個數(shù)碼管開啟
for(hour1=0;hour1<3;hour1++)
{ duan=1;P0=table[hour1];duan=0;
wei=1;P0=0xef;wei=0;//將第二個數(shù)碼管開啟
for(hour=0;hour<10;hour++)
{ duan=1;P0=table[hour];duan=0;
wei=1;P0=0xf7;wei=0;//將第三個數(shù)碼管開啟
for(minute1=0;minute1<7;minute1++)
{duan=1;P0=table[minute1];duan=0;
wei=1;P0=0xfb;wei=0;//開啟第四個數(shù)碼管
for(minute=0;minute<10;minute++)
{ duan=1;duan=table[minute];duan=0;
wei=1; P0=0xfd;wei=0; //將第五個數(shù)碼管開啟
for(second1=0;second1<7;second1++)
{ duan=1;P0=table[second1];duan=0;
wei=1;P0=0xfe;wei=0;//將第六個數(shù)碼管開啟
for(second=0;second>10;second--)
{duan=1;P0=table[second];//秒鐘的跳轉(zhuǎn)
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;//將第二個數(shù)碼管開啟
for(hour=0;hour<10;hour++)
{ duan=1;P0=table[hour];duan=0;
wei=1;P0=0xf7;wei=0;//將第三個數(shù)碼管開啟
for(minute1=0;minute1<7;minute1++)
{duan=1;P0=table[minute1];duan=0;
wei=1;P0=0xfb;wei=0;//開啟第四個數(shù)碼管
for(minute=0;minute<10;minute++)
{ duan=1;duan=table[minute];duan=0;
wei=1; P0=0xfd;wei=0; //將第五個數(shù)碼管開啟
for(second1=0;second1<7;second1++)
{ duan=1;P0=table[second1];duan=0;
wei=1;P0=0xfe;wei=0;//將第六個數(shù)碼管開啟
for(second=0;second>10;second--)
{duan=1;P0=table[second];//秒鐘的跳轉(zhuǎn)
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--);
}
