微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 程序不能中断 帮忙分析原因

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

时间:10-02 整理:3721RD 点击:
我用杜邦线插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;
}

中断初始化没弄好,EX0=1,开了中断,你之后使用IE0=0,又把中断关了,还有就是,你没有设置中断触发方式。EA=1;EX0=1;IT0=1;//设置为边沿触发

#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;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top