c语言编写51单片机中断程序,执行过程是怎样的?

2019-07-16 06:17发布

例如程序:
#include<reg52.h>  
void main(void)
  {
   EA=1;      //开放总中断
   EX0=1;     //允许使用外中断
   IT0=1;    //选择负跳变来触发外中断
   P0=0xff;         //关闭所有P0口的LED灯
        while(1); //无限循环,
}
void it0(void) interrupt 0 using 0 //外中断0的中断编号为0
{

  P0=~P0;  //每产生一次中断请求,P0取反一次。
  
}
当有中断时,这个程序的执行过程是怎样的???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
我家驹
1楼-- · 2019-07-16 09:50
从main开始,开放总中断,允许使用外中断,选择负跳变来触发外中断,到这时负跳变没来没就一直while(1),等待。来了后执行
void it0(void) interrupt 0 using 0 //外中断0的中断编号为0
{

  P0=~P0;  //每产生一次中断请求,P0取反一次。
  
}
04095134
2楼-- · 2019-07-16 11:17
有中断时直接跑到中断服务去
huangjunbo
3楼-- · 2019-07-16 12:23
恩,对的!
刘海营
4楼-- · 2019-07-16 13:22
hao  de 非常完美的解释  
一曲清明殇歌
5楼-- · 2019-07-16 14:59
 精彩回答 2  元偷偷看……
您好,早安
6楼-- · 2019-07-16 20:38
CPU会一直在检测是否有中断请求的。当收到中断请求EX 时,进行软件设置,开启总中断EA ,再设置中断的触发方式IT。

一周热门 更多>