计时程序哪里有错误

2019-07-16 02:12发布

本人刚学单片机,学到中断时停住了,很困难,下面这个程序是用计数/定时器T0定时1秒,但是运行时程序错误,不知哪里错了,请各位帮忙看下。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint num,tt;
uchar code table[]={
       0xFC,0x60,0xDA,0xF2,
       0x66,0xB6,0xBE,0xE0,
       0xFE,0xF6,0xEE,0xFE,
       0x9C,0xFC,0x8E
       };
void delay(uint);
void main()
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
   TR0=1;//启动定时器0
P0=0x00;
while(1)
{
  if(tt==20)
     {
     tt=0;
   num++;
   if(num==16)
   num=0;
     P2=table[num];
     delay(800);
   
   }
}

}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=100;y>0;y--);
}
void exter0 () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。