为什么定时器1管住了外部中断0?

2019-03-24 18:42发布

当运行程序时,P0^0在闪?
程序如下:
#include <reg51.h>
#include <string.h>

#define uchar unsigned char
#define uint unsigned int


sbit issue_exist_flag=P0^0;


/*延时子程序*/
void delay_ms(uint t)  //约延时n(ms)
{
  uint i;
  while(t--)
  {
    for(i=0;i<125;i++){}
  }
}


void t_init()
{
  TMOD=0x21;   //定时器  方式1
  TH0=(65536-50000)/256;  TL0=(65536-50000)%256;
  TH1=0xff;  TL1=0xff;
  EA=1;ES=1;ET1=1;EX1=1;ET0=1;//EX0=1;
  TR0=0;
  TR1=1;
  IT0=1;IT1=1;
  SCON=0x70;
  PCON=0x80;
}

void isr() interrupt 0
{
  issue_exist_flag=1;
  delay_ms(1000);
  issue_exist_flag=0;
  delay_ms(1000);
}
void main()
{
  t_init();
  while(1)
  {

  }
}



51单片机和PROTUES文件在附件中。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
bintimes
1楼-- · 2019-03-25 02:14
定时器中断优先于外部中断,会不会是定时中段发生的时候外部中断打开,导致的?
Li_Lei
2楼-- · 2019-03-25 05:04
你开启了定时中断却没有定义中断服务,程序跑飞然后复位了.

一周热门 更多>