我做的是八位数码管滚动显示学号
学号:1863400125
显示出来的数字不正确,查不出错误的地方
请各位大佬帮忙指出错误 
单片机源程序如下:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x07,0x7f,0x6f};
uchar code number[] = {0,0,0,0,1,8,6,3,4,0,0,1,2,5};
uchar code wie[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
//0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
uchar gg,aa,len;
void delay(uint x);
void main()
{
while(1)
{
len=sizeof(number)/sizeof(uchar);
for (gg=0;gg<len;gg++)
{
for (aa=0;aa<30;aa++)
{
P2=wie[8];
P0=tab[number[gg]];
delay(5);
P0=0x00;
P2=wie[7];
P0=tab[number[gg+1]];
delay(5);
P0=0x00;
P2=wie[6];
P0=tab[number[gg+2]];
delay(5);
P0=0x00;
P2=wie[5];
P0=tab[number[gg+3]];
delay(5);
P0=0x00;
P2=wie[4];
P0=tab[number[gg+4]];
delay(5);
P0=0x00;
P2=wie[3];
P0=tab[number[gg+5]];
delay(5);
P0=0x00;
P2=wie[2];
P0=tab[number[gg+6]];
delay(5);
P0=0x00;
P2=wie[1];
P0=tab[number[gg+7]];
delay(5);
P0=0x00;
P2=wie[0];
P0=tab[number[gg+8]];
delay(5);
P0=0x00;
}
}
}
}
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=100;j>0;j--);
}
|