微控制器 - 8051 中断

中断是暂时中止主程序、将控制权传递给外部源并执行其任务的事件。然后将控制权传递给主程序停止的位置。

8051 有 5 个中断信号,即 INT0、TFO、INT1、TF1、RI/TI。可以通过设置 IE 寄存器的位来启用或禁用每个中断,并且可以通过清除同一寄存器的 EA 位来禁用整个中断系统。

IE(中断启用)寄存器

此寄存器负责启用和禁用中断。将 EA 寄存器设置为 1 以启用中断,设置为 0 以禁用中断。其位序列及其含义如下图所示。

IE Register

EA IE.7 禁用所有中断。当 EA = 0 时,不会确认任何中断,而 EA = 1 则单独启用中断。
- IE.6 保留以供将来使用。
- IE.5 保留以供将来使用。
ES IE.4 启用/禁用串行端口中断。
ET1 IE.3 启用/禁用定时器 1 溢出中断。
EX1 IE.2 启用/禁用外部中断 1。
ET0 IE.1 启用/禁用定时器0溢出中断。
EX0 IE.0 启用/禁用外部中断0。

IP(中断优先级)寄存器

我们可以通过改变中断优先级(IP)寄存器中的相应位来更改中断的优先级,如下图所示。

  • 低优先级中断只能被高优先级中断中断,而不能被另一个低优先级中断中断。

  • 如果同时接收到两个优先级不同的中断,则服务于优先级较高的请求。

  • 如果同时接收到相同优先级的请求,则内部中断将等待高优先级中断。

  • 如果同时接收到相同优先级的请求,则内部中断将等待高优先级中断。

  • 轮询序列确定要服务哪个请求。

IP Register

- IP.6 保留以备将来使用。
- IP.5 保留以备将来使用。
PS IP.4 定义串口中断优先级。
PT1 IP.3 定义1优先级的定时器中断。
PX1 IP.2 定义外部中断优先级。
PT0 IP.1 定义定时器0中断优先级。
PX0 IP.0 定义优先级为 0 的外部中断。

TCON 寄存器

TCON 寄存器指定微控制器的外部中断类型。