51单片机,用74hc164拓展io控制两位数码管,数码管显示不全,求助

void display() //显示函数
{
buf[0]=sec_nb/10;
buf[1]=sec_nb%10;
buf[2]=sec_dx/10;
buf[3]=sec_dx%10;
buf[4]=sec_nz/10;
buf[5]=sec_nz%10;
buf[6]=sec_dz/10;
buf[7]=sec_dz%10;
SBUF=table[buf[led]];
while(TI==0);TI=0;
delay(2);
P2=dig;
dig=_crol_(dig,1);
led++;
if(led==8)
{
led=0;
dig=0xfe;
}
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^