小白 求助一个 很简单的 外部中断问题

2019-07-16 05:38发布

用的是 stc89c52rc      外部中断使用 下降沿触发



#include<reg51.h>
sbit LED = P2^3;
sbit LE =P2^0;
void delay(unsigned int t);
void s() interrupt 0 using 2
{
   LED = ~LED;
   delay(100);
   }
void main()
{
     EX0 = 1;    // 外部中断0开中断;   
     EA = 1;      // 使能全局中断。
     IT0=1;
   while(1)            
   {
      LE= 0;     // 点亮LED
      delay(100);    // 延时大约0.1s
      LE= 1;    // 熄灭LED
      delay(100);    // 延时大约0.1s
   }
}
void delay(unsigned int t)      //延时子程序
{
   while(t--);
}



我是想主函数使 P2。0 的LED灯闪      然后 中断程序中 就 P2。。3 的LED闪  
但是 运行后  一旦进入中断程序  就不能返回主函数了  
就是 一开始 是P2.0闪    按了中断按钮后   就P2,3闪   但是再按还是P2,3闪   P2,0就不闪了~~
求助各位大神呀  那里出问题了    中断不能返回呢···


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
kk8770560
2019-07-17 06:38
▄︻┳═一 发表于 2012-5-27 18:40
。。。你可以弄一个切换标志位,随便拿个标志,不如说“f”。中断里直接 f=~f。大循环里就弄两个小循环判断 ...

呵呵··这个我可以做到    其实这个是个简化程序··我想做的不仅是闪两个灯而已···只是拿出来做个简化
主要问题 在于  中断后 不能返回主函数

一周热门 更多>