51单片机中断程序代码,为什么外部中断0中断函数运行之后,T0中断函数就无法继续执行了?


分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
}
51单片机具有5个中断源,其中有两个外部中断,这次我们以下降沿触发Int0为例。在B站跟个up主中断教程,传送门 https://space.bilibili.com/483942191/video?tid=0&page=4&keyword=&order=pubdate实验目的:用独立按键作为外部中断的触发信号,当按键按下发送来信号的时候,再执行中断函数(在函数内定义LED灯的亮灭)如上图所示51单片机总共有5个中断源,本博文先展示第一种 INT0 中断先看电路图按键 P3^2 可以触发中断源 INT0设置寄存器,打开终端并选择中断的触发方式。EA为整体中断允许位,首先要将EA置1,打开中断。EX0为外部中断INT0,置1开启。IT0寄存器:置0为低电平触发,置1为下降沿触发。编写中断函数,int0的中断编号为0,这里使用中断控制led的点亮与熄灭。中断函数格式一般为:void 函数名称(void) interrupt 中断编号 【using 寄存器组编号】{语句;}贴上代码:中断函数的定义#include"pbdata.h"
//外部中断初始化
void EX0_Init(void)
{
//设置触发方式 外部中断0
IT0=1;
//设置下降沿触发TCON 硬件可自动清零触发信号
EX0=1; //IE
EA=1;
}
/**********************************************************
1、中断服务函数一定是一个没有返回值的函数
2、中断服务函数一定是个没有参数的函数
3、中断服务函数函数名后跟关键字 interrupt
4、interrupt n的取值从0~4 分别代表5个中断源 计算公式为 8*n +0003H
分别为 0 0003H INT0
1 000BH T0
2 0013H INT1
3 001BH T1
4 0023H ES
5、中断服务函数不能被主程序或其他程序调用
6、n 后面跟 using m (0-3)工作寄存器组
***********************************************************/
void EX0_ISR(void) interrupt 0
{
LED_1=~LED_1;
}
上面注释很重要,记得看注释!中断函数在main函数中的初始化与使用void main()
{
EX0_Init();
//在while函数外部初始化一次即可
while(1)
以下程序中,定义了没调用会有1个warning
{
}
}
}
51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。这个原理很好理解。但应用时需要特别注意的几点:1) 电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。2)边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。3)中断标志可以手工清除。一个中断如果在没有得到响应之前就已经被手工清除,则该中断将被CPU忽略。就如同没有发生一样。4)选择电平触发还是边沿触发方式应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《Keil C51使用技巧及实战》),就有类似的观点。
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
}

我要回帖

更多关于 单片机中断程序代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信