1,什么是中断?

(1)中断与中断系统

中断:CPU 执行当前程序时,接收到外部 / 内部紧急事件请求,暂停当前任务→处理紧急事件→返回断点继续执行原程序的过程。

中断系统:实现中断功能的硬件 / 软件集合,负责管理中断请求、优先级判定与响应流程。

中断源:触发中断请求的事件源(如外部引脚、定时器溢出、串口通信完成等)。

(2)中断优先级与嵌套

优先级机制:多个中断源同时请求时,CPU 按优先级高低响应,优先处理最紧急的中断;STC89C51RC 支持2级可编程优先级,可通过软件灵活配置。

中断嵌套:CPU 处理低优先级中断时,若收到更高优先级中断请求,可暂停当前服务程序,转而去处理高优先级中断,处理完成后再回到原低优先级中断继续执行,属于多级中断系统;同优先级 / 低优先级中断无法打断正在执行的中断服务程序。

同优先级响应规则:若多个同优先级中断同时触发,CPU 按固定硬件查询次序决定响应顺序:
在这里插入图片描述

2,STC89C51RC 中断系统结构

(1)STC89C51RC 中断系统核心特性:

5 个中断源

2 级中断优先级(高 / 低)

支持中断嵌套(高优先级打断低优先级)

5 个中断可独立使能 / 关闭

总中断开关(EA)

(2)中断系统结构:

在这里插入图片描述

3,中断源与中断入口详解

中断源名称 中断服务函数 中断地址 触发条件 对应引脚 / 模块
外部中断 0 (INT0) interrupt 0 0003H 下降沿 / 低电平触发 P3.2
定时器 0 中断 (T0) interrupt 1 000BH 定时器 0 计数溢出 内部定时器模块
外部中断 1 (INT1) interrupt 2 0013H 下降沿 / 低电平触发 P3.3
定时器 1 中断 (T1) interrupt 3 001BH 定时器 1 计数溢出 内部定时器模块
串口 (UART) 中断 interrupt 4 0023H 串口接收 / 发送完成 P3.0(RXD)/P3.1(TXD)

4,中断控制相关寄存器

在这里插入图片描述

(1)中断运行寄存器(IE)
位序号 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
位符号 EA ES ET1 EX1 ET0 EX0
功能说明 总中断开关 保留位 保留位 串口中断允许 定时器 1 中断允许 外部中断 1 允许 定时器 0 中断允许 外部中断 0 允许
使能代码 EA = 1; ES = 1; ET1 = 1; EX1 = 1; ET0 = 1; EX0 = 1;
关键说明

<1> 总开关EA = 1; 是开启所有中断的前提,必须先写这一句,否则任何分中断都无法响应。

<2> 常用中断使能组合:

  • 开启外部中断 0:EA=1; EX0=1;
  • 开启定时器 0 中断:EA=1; ET0=1;
  • 开启外部中断 1:EA=1; EX1=1;
  • 开启定时器 1 中断:EA=1; ET1=1;
  • 开启串口中断:EA=1; ES=1;
(3)中断优先级控制寄存器(IP)
位序号 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
IP 位符号 PS PT1 PX1 PT0 PX0
对应中断源 串口 定时器 1 外部中断 1 定时器 0 外部中断 0
优先级组合 1 = 高优先级;0 = 低优先级 1 = 高优先级;0 = 低优先级 1 = 高优先级;0 = 低优先级 1 = 高优先级;0 = 低优先级 1 = 高优先级;0 = 低优先级
(4) 外部中断,定时器 0/1 运行控制寄存器(TCON)
位序号 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
功能说明 定时器 1 溢出中断标志 定时器 1 运行控制位 定时器 0 溢出中断标志 定时器 0 运行控制位 外部中断 1 请求标志 外部中断 1 触发方式控制 外部中断 0 请求标志 外部中断 0 触发方式控制
配置语句 硬件自动置 1 / 中断响应后自动清零 TR1 = 1;(启动)TR1 = 0;(停止) 硬件自动置 1 / 中断响应后自动清零 TR0 = 1;(启动)TR0 = 0;(停止) 硬件自动置 1 / 中断响应后自动清零 IT1 = 1;(下降沿)IT1 = 0;(低电平) 硬件自动置 1 / 中断响应后自动清零 IT0 = 1;(下降沿)IT0 = 0;(低电平)
(5) 串口控制寄存器(SCON)
位序号 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI
功能说明 串口工作方式选择位 0 串口工作方式选择位 1 多机通信控制位 接收使能位 发送第 9 位数据位 接收第 9 位数据位 发送完成中断标志 接收完成中断标志
配置语句 SM0 = 0/1; SM1 = 0/1; SM2 = 0/1; REN = 1;(允许接收)REN = 0;(禁止接收) TB8 = 0/1; 硬件自动置位 硬件自动置 1需软件清零TI = 0; 硬件自动置 1需软件清零RI = 0;
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐