程序不能中断 帮忙分析原因

2019-07-16 03:26发布

我用杜邦线插p3.2口但并不能实现中断  而其一上电后led灯就被点亮  跟d1这句语句写在主函数中没什么区别  这是什么原因啊  还有我的单片机p3.2口为什么初始状态就是低电平呢?难道我的单片机与网上教学的不一样吗?劳烦高手指



#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
sbit D2=P2^0;
uchar code table[ ]={0x02/*0*/,0x9f/*1*/,0x24/*2*/,0x0c/*3*/,
0x98/*4*/,0x48/*5*/,0xc0/*6*/,0x1e/*7*/,0x00/*8*/};/*共阳数码管0  8编码*/
delay(uint x)
{   uint i,j;
for(i=x;i>0;i--)
    for(j=125;j>0;j--);
}
   uchar k,g;   

void main()
{ D2=1;
EA=1;
EX0=1;
IE0=0;
while(1)
{k=0;
     P3=0X00;
  for(g=0;g<=8;g++)
      {P0=table[g];
    delay(50);
   }
}
}
void TO1() interrupt 0
{
d1=0;

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
853594759
2019-07-16 09:02
xuweiliang1989 发表于 2012-12-1 11:56
中断初始化没弄好,EX0=1,开了中断,你之后使用IE0=0,又把中断关了,还有就是,你没有设置中断触发方式。 ...

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
sbit D2=P2^0;
uchar code table[ ]={0x02/*0*/,0x9f/*1*/,0x24/*2*/,0x0c/*3*/,
0x98/*4*/,0x48/*5*/,0xc0/*6*/,0x1e/*7*/,0x00/*8*/};/*共阳数码管0  8编码*/
delay(uint x)
{   uint i,j;
for(i=x;i>0;i--)
    for(j=125;j>0;j--);
}
   uchar k,g;   
void main()
{ D2=1;
EA=1;
EX0=1;
IT0=1;/*或者是IT=1;情况还是一样一下载程序灯就被点亮*/
while(1)
{k=0;
     P3=0X00;
  for(g=0;g<=8;g++)
      {P0=table[g];
    delay(50);
   }
}
}
void TO1() interrupt 0
{
d1=0;
}

一周热门 更多>