单片机中的中断是怎么实现的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机中的中断是怎么实现的?相关的知识,希望对你有一定的参考价值。

概念:引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。

80C51的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套(就是可以在嵌套过程中再次响应嵌套) 。

中断源
1、INT0(P3.2),外部中断1。可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

2、INT1(P3.3),外部中断2。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。

3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。

4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。

5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

中断请求标志
1、TCON的中断标志

IT0(TCON.0):外部中断0触发方式控制位。

当IT0=0时:为电平触发方式。
当IT0=1时:为边沿触发方式(下降沿有效)。
IE0(TCON.1):外部中断0中断请求标志位。

IT1(TCON.2):外部中断1触发方式控制位。

IE1(TCON.3):外部中断1中断请求标志位。

TF0(TCON.5):定时/计数器T0溢出中断请求标志位。

TF1(TCON.7):定时/计数器T1溢出中断请求标志位。

单片机TCON辅助设置工具

2、SCON的中断标志

RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。

TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。

80C51中断的控制
中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。

EX0(IE.0):外部中断0允许位;
ET0(IE.1):定时/计数器T0中断允许位;
EX1(IE.2):外部中断0允许位;
ET1(IE.3):定时/计数器T1中断允许位;
ES(IE.4):串行口中断允许位;
EA (IE.7): CPU中断允许(总允许)位。
单片机IE自动设计工具

中断优先级控制
80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。

PX0(IP.0),外部中断0优先级设定位;
PT0(IP.1),定时/计数器T0优先级设定位;
PX1(IP.2),外部中断0优先级设定位;
PT1(IP.3),定时/计数器T1优先级设定位;
PS? (IP.4),串行口优先级设定位;
PT2(IP.5),定时/计数器T2优先级设定位。
单片机IP自动设计工具

中断优先级规则:

CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
正在进行的低优先级中断服务,能被高优先级中断请求所中断。
中断系统总结:
TCON和SCON是中断请求,以及控制外部中断的有效方式。IE控制是否允许CPU响应中断,是否允许响应某一个中断。IP控制中断的优先级。
参考技术A 1:中断源有中断请求
2:中断源的中断允许位为1
3:CPU开中断(EA=1)
参考技术B 1有中断请求,保护堆栈
2响应中断,执行中断服务程序
3释放堆栈,继续执行主程序

以上是关于单片机中的中断是怎么实现的?的主要内容,如果未能解决你的问题,请参考以下文章

51单片机的中断嵌套怎么实现呢?

请教高人C51单片机C语言中的中断优先级怎么设置?

FPGA(microblaze)怎么代替单片机实现串口通信,定时器/计数器,中断、系统时间同步?

STM8S单片机串口UART2接收中断一直在运行,出不来,怎么回事?

请问单片机定时器中断是怎么样的过程啊

单片机怎么清中断标志位