哪位同志帮忙看看,为什么仿真出不来

2019-07-15 20:41发布

#include <AT89x51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code DIG_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//显示0~9的值
unsigned char temp, number,G,S,H,Q,W;
void  display(uchar G,ucharS,ucharH,ucharQ,ucharW);
void  inital();
void  delay(uint z);



//主函数
void  main()
{  
inital();

G=0;
S=0;
H=0;
Q=0;
W=0;
while(1)
  {
   display(G,S,H,Q,W);
  }
}

//显示函数
void display(uchar G,ucharS,ucharH,ucharQ,ucharW)
{

  P0=DIG_CODE[G];
  P2=0x7f;
  delay(1);

  P0=DIG_CODE[S];
  P2=0xbf;
  delay(1);

  P0=DIG_CODE[H];
  P2=0xdf;
  delay(1);

  P0=DIG_CODE[Q];
  P2=0xef;
  delay(1);

  P0=DIG_CODE[W];
  P2=0xf7;
  delay(1);

}


//定时器初始化

void inital()
{
  temp=0;
  TMOD=0x01;
   TH0=(65536-45872)/256;
   TL0=(65536-45872)%256;
   EA=1;
   ET0=1;
   TR0=1;
}

//定时器中断函数

void  timer0() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;

   number++;
   if(number==20)
   {  
       G++;
      number==0;
   if(G==9)
   {   S++;
       G==0;
            if(S==9)
           {
               H++;
               S==0;
               if(H==9)
              {
                  Q++;
                  H==0;
                      if(Q==9)
                  {
                      W++;
                      Q==0;
                                  if(W==9)
                                  W==0;
                   }
                }

                  }
      }

    }
}


//延时函数
void delay(uint z)
{
unsigned  int x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}


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