为什么数码管不稳定,怎么写交通灯?


#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

sbit DU = P2^6;
sbit WE = P2^7;
uchar  code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
void delay(uint z)
{
    uint x,y;
    for(x = z; x > 0; x--)
        for(y = 114; y > 0 ; y--);         
} 
void display(uchar i)
{
    uchar shi, ge;
    shi = i/ 10;    
    ge  = i % 10;
    
    //µÚ¶þλÊýÂë¹Ü
    P0 = 0XFF;
    WE = 1;
    P0 = 0XFD; 
    WE = 0;
    
    DU = 1;
    P0 = tabel[ge];
    DU = 0;
    delay(5);
    
    //µÚһλÊýÂë¹Ü          
    P0 = 0XFF;
    WE = 1;
    P0 = 0XFE;
    WE = 0;

    DU = 1;
    P0 = tabel[shi];
    DU = 0;
    delay(5);

    
}

void main()
{    
    uchar i,n,m,temp;
    while(1)
    {
        temp=0xFE;
      P1=temp;
    for(m=0;m<3;m++)
    { 
        i=60;
         while(i>0)
      {
          n=0;
          while(n<5)
          {
              n++;
              display(i);
          }
          i--;
          delay(100);
      }    
     temp=_crol_(temp,1);
   delay (50);
     P1=temp;
    }
 }
}

说一下是怎么样不稳定