60累加器不会计数,程序问题

2019-07-15 18:46发布

#include <REGX51.H>
#define uint unsigned int
#define uchar unsigned char
#define WM P2
#define DM P0
uint code dien[]={0x3f,0x06,0x5b,0x4f,0x66,
                 0x6d,0x7d,0x07,0x7f,0x6f};

uint  sz[]={0x01,0x02};
uchar i,n,num;
void main()
{
TMOD = 0x01;
TH0 = (65536-50000)/256;

TL0 = (65536-50000)%256;      
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
    for(n=0;n<3;n++)
    {
        WM=1<<i;
        DM=0xff;
        DM=~dien[sz[n]];
    }

     if(i==20)
      {
       i=0;
      num++;
         if(num==9)
           num=0;
   
     sz[1] = num/10;
           sz[2] = num%10;
   }
   
}  
}
   
void int0 ()interrupt 1
{
   TH0 = (65536-50000)/256;
   TL0 = (65536-50000)%256;
      i++;
}

这是个60累加器,我明明只打开两个位选,下载到板子一看 四个都打开了 而且全都显示0,不会计数  求解  
谢谢

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