#include <reg51.h>
#define uchar unsigned char
uchar
display_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar display_data[8]={0,0,0,0,0,0,0,0};
uchar time[3]={0,0,0};
void delay(void)//延时05ms
{
uchar i;
for(i=250;i>0;i--);
}
void display() //显示程序
{
uchar i,k;
k=0x01;
for(i=0;i<8;i++)
{
P2=0;//关闭显示
P0=display_code[time%10];//存放个位数
P0=~P0;
P2=k;
k=k<<1;
delay();//调用延时程序
P2=0;
P0=display_code[time/10];//存放十位数字
P0=~P0;
P2=k;
k=k<<1;
delay();//调用延时程序
}
P2=0;
}
void calc()//计算程序
{
time[0]++;
if(time[0]>59)
{
time[0]=0;
time[1]++;
if(time[1]>59)
{
time[1]=0;
time[2]++;
if(time[2]>12)
{
time[2]=1;
}
}
}
}
void main(void) //主函数
{
uchar i;
while(1)
{
for(i=0;i<100;i++)
{
display(); //调用显示程序
}
calc();//调用计算程序
}
}
你还可以再调试那个时间,现在显示的可能是快了~