求教 仿真动态数码管乱码问题,程序和图在里面

2019-07-18 10:28发布

延迟设到50以上正常,可以分别显示1到6,但是设低延迟后,不能达到动态数码管的效果
显示部分乱码


#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uint num;
uchar code table[]={    //编码定义
0xc0,0xcf,0xa4,0xb0,
0x99,0x92,0x02,0xf8,
0x00,0x90};
void delayms(uint);
void main()
{
while(1)
{
  dula=1;
  P0=table[1];    //段选
  dula=0;
  P0=0xff;     //送位选数据前关闭所有显示    消隐
  wela=1;
  P0=0x01;
  wela=0;
  delayms(1);
  dula=1;
  P0=table[2];   
  dula=0;
  P0=0xff;   
  wela=1;
  P0=0x02;
  wela=0;
  delayms(1);
  dula=1;
  P0=table[3];   
  dula=0;
  P0=0xff;   
  wela=1;
  P0=0x04;
  wela=0;
  delayms(1);
  dula=1;
  P0=table[4];   
  dula=0;
  P0=0xff;   
  wela=1;
  P0=0x08;
  wela=0;
  delayms(1);
  dula=1;
  P0=table[5];   
  dula=0;
  P0=0xff;   
  wela=1;
  P0=0x10;
  wela=0;
  delayms(1);
  dula=1;
  P0=table[6];   
  dula=0;
  P0=0xff;   
  wela=1;
  P0=0x20;
  wela=0;
  delayms(1);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}
QQ截图未命名.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。