关于中断返回的问题,新手求教

2019-07-15 11:06发布

# include<REG51.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
//= = = = = = = = = = = =
void DelayMS(uint x) //延时
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
//= = = = = = = = =  = = =
int1() interrupt 2  //K1中断程序
{char k;
for(k=0;k<=2;k++)
    {P0=0x00;   //发光二极管全亮
     DelayMS(150);
     P0=0xFF;  //发光二极管全灭
     DelayMS(150);
   }
}

//= = = = = = = = = = = = = =
void main()
  {
   IT1=0;
   EX1=1;
   EA=1;
   P0=0xfe;
    while(1)
  {DelayMS(150);
     P0=_crol_(P0,1); //P0 的值向左循环移动
     DelayMS(150);
  }  }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
将军问鼎
1楼-- · 2019-07-15 16:53
 精彩回答 2  元偷偷看……
before929
2楼-- · 2019-07-15 19:48
将军问鼎 发表于 2017-4-28 17:42
进了,中断,起码要先清一下中断标志吧

我图是用一个按钮,按一下中断一下。不是应该可以自己回去的吗。。
人中狼
3楼-- · 2019-07-15 22:05
你选择电平触发,如果电平不改变,则出了中断就又再次进入中断,如果判断没错的话,你现在的情况应该是发光管交替全亮、全灭,如果是这样的话,把中断触发方式改成边沿触发
将军问鼎
4楼-- · 2019-07-15 23:29
before929 发表于 2017-4-28 17:56
我图是用一个按钮,按一下中断一下。不是应该可以自己回去的吗。。

那是外部,单片机 寄存器 里的状态也需要清空一下
before929
5楼-- · 2019-07-16 00:23
将军问鼎 发表于 2017-4-28 18:02
那是外部,单片机 寄存器 里的状态也需要清空一下

那你看应该怎么改呢
before929
6楼-- · 2019-07-16 03:30
 精彩回答 2  元偷偷看……

一周热门 更多>