新手数码管0-16显示问题
#include<reg52.h>
#define ui unsigned int
#define uc unsigned char
uc code tab[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x3e,0x31,0x6e,0xff};
sbit d=P2^6;
sbit w=P2^7;
void d1()
{
ui a = 55000;
while(a--);
}
void main()
{ui i;
w=1;
P0=0xc0;
w=0;//位选
/*d=1;
P0=0x7d;
d=0;
while(1);//观察是不是能显示6
d=1;
P0=0x7f;
d=0;
while(1);*///观察能不能正确显示8
while(1)
{
for(i=0;i<16;i++)
{
d=1;
P0=tab[i];
d=0;
d1();
}
}
}小弟写的这段代码6不能显示,8显示不正常。可是我只显示6或8没问题。求大侠们帮帮我吧!灰常感谢!