#include <REG51.h>
unsigned char code dis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
char count=0;char a=0;char b=0;
sbit p=P3^7;sbit p20=P2^0;sbit p21=P2^1;
void delay(int a);
void display();
main()
{
static char t,t2;
while(1)
{
if(p==0)
{
display();
if(p==0)
{
count++;
if( count>=100) count=0;
a=count/10;
b=count%10;
}
}
else t=0;
while(p==0&&t<20)
{
t++;
delay(10);
display();
}
if(t>=19)
{
while(t2<20)
{
t2++;
delay(1);
}
t2=0;
}
display();
}
}
void display()
{
P0=dis[a];dis[b];
p20=1;p21=0;
delay(10);
P0=0xff;
P0=
p20=0;p21=1;
delay(10);
P0=0xff;
}
void delay(int a)
{
int i,j;
for(i=a;i>=0;i--)
for(j=100;j>-0;j--);
}
这里不方便画图,你可以用visio软件画,方法是一般来说一个函数画一个流程图,方框表示步骤,菱形表示判断分支,开头结束画个圆圈。