目录
一、中断的基本概念
1.1中断的定义
1.2中断源
1.3中断向量表
1.4中断优先级
1.5断电
1.6中断现场
二、中断源
2.1系统复位中断源
2.1.1断电复位信号(BOR)
2.2.2上电复位信号(POR)
2.2.3上电清除信号(PUC)
2.2可屏蔽中断(INT)
2.3不可屏蔽中断源(NMI)
三、中断响应过程
四、中断返回过程
五、中断嵌套
六、中断应用
一、中断的基本概念
1.1中断的定义
暂停CPU正在运行的程序,转而执行相应的中断服务程序,完毕后返回被中断的程序继续运行。简而言之就是停下来做另一件事情,等到另一件事情做完在继续以前的事情。
1.2中断源
引起中断的原因或者能够发出中断请求的信号源。
1.3中断向量表
在内存中建立一张便于CPU查询中断向量的查询表,即中断向量表。
1.4中断优先级
给每个中断源指定一个优先级,即中断优先级。
MSP430单片机的中断优先级是固定的,由硬件确定,用户不能更改。
1.5断电
CPU执行现行程序被中断时的下一条指令的地址。
1.6中断现场
CPU在转去执行中断服务程序前的运行状态。
二、中断源
2.1系统复位中断源
2.1.1断电复位信号(BOR)
系统上电 | 在复位模式下,RST/NMI引脚产生低电平信号 | 从LPMx.5模式下唤醒 | 一个软件BOR事件 |
2.2.2上电复位信号(POR)
一个BOR信号 | 电源(或外部)电压高于最高检测值 | 电源(或外部)电压低于最低检测值 | 一个软件POR信号 |
2.2.3上电清除信号(PUC)
一个BOR信号 | 看门狗模式下,看门狗定时器溢出 | 看门狗定时器的操作口令密码错误 | Flash模块操作口令密码错误 | 电源管理模块操作口令密码错误 | CPU从地址范围00H~01FFH取指令 |
2.2可屏蔽中断(INT)
由具有中断功能的片上外设产生。当GIE为1时,INT允许;当GIE为0时,INT禁止。
2.3不可屏蔽中断源(NMI)
分为系统不可屏蔽中断(SNMI)和用户不可屏蔽中断(UNMI)
不可屏蔽中断源具有一个独特的中断控制系统,当一个不可屏蔽中断,其他同级的不可屏蔽中断将会被禁止,以防同等不可屏蔽中断的连续嵌套。
?在编程中,定义中断程序的方法也很简单,在中断服务程序前加__interrupt关键字(注意前面有两个短下划线)
#pragma vector=PORT1_VECTOR //P1口中断向量
__interrupt void Port_1(void) //声明中断服务程序,名为Port_1()
{
... //中断服务程序
}
三、中断响应过程
从CPU接收一个中断请求开始至执行第一条中断服务程序指令结束,共需6个时钟周期。
四、中断返回过程
通过执行中断服务程序终止指令开始中断的返回,共需5个时钟周期。
五、中断嵌套
MSP430单片机的中断默认是不能发生嵌套的,先发生的中断会导致后发生的中断处理延迟,为了避免这种情况,要求所有的中断入口都加一句开中断的语句:_EINT(),恢复总的中断允许。以ADC中断为例:
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
_EINT();
...
}
六、中断应用
MSP430单片机的中断系统较为复杂,如果能巧妙运行,会使编写的程序更加合理,执行效率更高,系统功耗更低。
|