keil软件两位数码管时间显示错误

img

img


#include<reg51.h>
#define SegPort P2
sbit shiwei=P3^1;
sbit gewei=P3^0;

void delay(unsigned int ms)
{unsigned int k,j;
for(k=ms;k>0;k--)
for(j=124;j>0;j--);
}

void main()
{
int led[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
int a,s,w;
shiwei=1;
gewei=1;
while(1)
{
for(a=0;a<9;a++)
for(s=0;s<10;s++)
{fo、r(w=20;w>0;w--)
gewei=0;
shiwei=1;
P2=led[s];
delay(50);
shiwei=0;
gewei=1;
P2=
led[a];
delay(50);}
}
}

img

调整一下格式吧,太乱!
v循环只对gewei=0有效,w循环,重复执行了250次同样的输出,后面的就都错了