8 只数码管显示多个不同数字 仿真不显示

2019-07-18 10:59发布

8 只数码管显示多个不同数字,用proteus仿真 程序中 DelayMS(300) 的时候可以8个字符滚动显示,改成 DelayMS(5) 的时候,偶尔显示,改成 DelayMS(2) 就不显示了。
本人是新手,利用业余时间学习单片机,弄了3个小时,实在找不到原因,请前辈们指导,
/*  名称:8 只数码管动态显示多个不同字符
  说明:数码管动态扫描显示 0~7。
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//延时
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t<120;t++);
}
//主程序
void main()
{
uchar i,wei=0x80;
while(1)
{
  for(i=0;i<8;i++)
  {  
   P0=0xff;
   P0=DSY_CODE;  //发送段码
   wei=_crol_(wei,1);
   P2=wei;     //发送位码
   DelayMS(2);
  }
}
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。