为什么c51单片机数码管的动态显示我只能显示一位

以下是原代码

 

#include <REGX52.H>
   #include<INTRINS.H>

     unsigned char nixietable[]={0x3f, 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码管

         void Delay(unsigned xms)        //@11.0592MHz
    {
    unsigned char i, j;
     while(xms){
    _nop_();
    i = 2;
    j = 199;
    do
    {
        while (--j);
    } while (--i);
    }
      xms--;
    }
     
    void    led(unsigned char location,int number)
    {
     switch(location)
    {
        case 8: P2_2=1;P2_3=1;P2_4=1;break;
        case 7: P2_2=0;P2_3=1;P2_4=1;break;
        case 6: P2_2=1;P2_3=0;P2_4=1;break;
        case 5:    P2_2=0;P2_3=0;P2_4=1;break; 
        case 4: P2_2=1;P2_3=1;P2_4=0;break;
        case 3: P2_2=0;P2_3=1;P2_4=0;break;
        case 2: P2_2=1;P2_3=0;P2_4=0;break;
        case 1: P2_2=0;P2_3=0;P2_4=0;break; 

    }
      P0=nixietable[number];
      
    }

 


    void main()
    {
           while(1){
                led(1,1);
             Delay(2000);
            led(2,2);
              Delay(2000);  
             }
    
   }
我使用的是普中科技单核A2板,我想让他多位显示但是只能显示出1,单独显示都没问题

Delay延时太久,达到2000ms,人眼已经能辨识出来,你把2000依次改成200,100,50,20感受下。20左右看着就能显示2个数字了。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html

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

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

请问你解决了吗?