80C51 单片机的中断源及其默认优先级(从高到低):
优先级 | 中断源 | 中断号 |
---|---|---|
1️⃣ | 外部中断 0 (INT0) | IE0,编号 0 |
2️⃣ | 定时器 0 (T0) | TF0,编号 1 |
3️⃣ | 外部中断 1 (INT1) | IE1,编号 2 |
4️⃣ | 定时器 1 (T1) | TF1,编号 3 |
5️⃣ | 串口中断 (TX/RX) | RI/TI,编号 4 |
80C51 单片机共有 5 个中断源,默认优先级由硬件固定(中断向量地址从低到高),具体如下:
优先级 | 中断源 | 中断向量地址 | 触发条件 | 典型应用 |
---|---|---|---|---|
最高 | 外部中断 0 (INT0) | 0003H |
P3.2 引脚低电平/下降沿 | 紧急按键、传感器信号 |
↓ | 定时器 0 中断 (TF0) | 000BH |
定时器/计数器 0 溢出 | 定时任务、PWM 生成 |
↓ | 外部中断 1 (INT1) | 0013H |
P3.3 引脚低电平/下降沿 | 外部设备触发信号 |
↓ | 定时器 1 中断 (TF1) | 001BH |
定时器/计数器 1 溢出 | 串口波特率生成、计时 |
最低 | 串口中断 (RI/TI) | 0023H |
串口数据接收完成(RI)或发送完成(TI) | 串行通信(UART) |

IE 寄存器格式(从高位到低位)
位编号: EA - - ES ET1 EX1 ET0 EX0
位名称: 7 6 5 4 3 2 1 0
位名 | 作用 | 设置为1表示... |
---|---|---|
EA | 总中断允许位 | 允许中断系统工作 |
(保留) | 位6和5保留,通常设为0 | - |
ES | 串口中断允许(Serial) | 允许串口发送/接收中断 |
ET1 | 定时器1中断允许 | 允许 Timer1 中断 |
EX1 | 外部中断1 允许(P3.3) | 允许 INT1 触发中断 |
ET0 | 定时器0中断允许 | 允许 Timer0 中断 |
EX0 | 外部中断0 允许(P3.2) | 允许 INT0 触发中断 |
IE 寄存器是 80C51 单片机中用于控制中断允许的 8 位寄存器(地址 A8H
,支持位寻址)。其功能是全局或单独使能/禁止中断源,具体格式如下:
位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
名称 | EA | --- | --- | --- | ES | ET1 | EX1 | ET0 |
功能 | 总中断允许 | 保留 | 保留 | 保留 | 串口中断允许 | 定时器1中断允许 | 外部中断1允许 | 定时器0中断允许 |
详细说明:
-
EA(总中断允许位,D7)
- EA=1:开启总中断(所有中断需在总中断开启后单独使能才能响应)。
- EA=0:禁止所有中断(全局关闭)。
-
ES(串口中断允许位,D4)
- ES=1:允许串口中断(RI/TI 触发)。
- ES=0:禁止串口中断。
-
ET1(定时器1中断允许位,D3)
- ET1=1:允许定时器/计数器1溢出中断(TF1=1 时触发)。
- ET1=0:禁止定时器1中断。
-
EX1(外部中断1允许位,D2)
- EX1=1:允许外部中断1(INT1/P3.3 引脚触发)。
- EX1=0:禁止外部中断1。
-
ET0(定时器0中断允许位,D1)
- ET0=1:允许定时器/计数器0溢出中断(TF0=1 时触发)。
- ET0=0:禁止定时器0中断。
-
EX0(外部中断0允许位,D0)
- EX0=1:允许外部中断0(INT0/P3.2 引脚触发)。
- EX0=0:禁止外部中断0。
-
保留位(D6-D5-D4)
- 默认置0,无实际功能,通常不操作。
TCON 寄存器结构

TCON(地址:88H) 是8051单片机中控制定时器/计数器及外部中断的核心寄存器,支持位寻址。以下是其核心功能解析:
TCON寄存器位定义
位 | 名称 | 功能描述 |
---|---|---|
TF1 (B7) | 定时器1溢出标志 | 定时器1溢出时由硬件置1,CPU响应中断后自动清零(或通过软件手动清零)。 |
TR1 (B6) | 定时器1运行控制 | 由软件置1/0控制定时器1启停: - GATE=0 :TR1=1启动;TR1=0停止。 - GATE=1:需TR1=1且INT1引脚高电平才启动。 |
TF0 (B5) | 定时器0溢出标志 | 功能同TF1,对应定时器0。 |
TR0 (B4) | 定时器0运行控制 | 功能同TR1,对应定时器0。 |
IE1 (B3) | 外部中断1标志 | 边沿触发(IT1=1) :中断响应后硬件自动清零; 电平触发(IT1=0):需软件清零。 |
IT1 (B2) | 外部中断1触发方式 | - IT1=1:下降沿触发; - IT1=0:低电平触发。 |
IE0 (B1) | 外部中断0标志 | 功能同IE1,对应外部中断0(INT0)。 |
IT0 (B0) | 外部中断0触发方式 | - IT0=1:下降沿触发; - IT0=0:低电平触发。 |
关键功能说明
-
定时器溢出标志(TF1/TF0)
- 定时器计数溢出时硬件自动置1,中断响应后自动清零,也可通过软件查询并清零(如
TF1 = 0;
)。
- 定时器计数溢出时硬件自动置1,中断响应后自动清零,也可通过软件查询并清零(如
-
定时器运行控制(TR1/TR0)
- GATE位(在TMOD寄存器中)的作用 :
- GATE=0时,TR1/TR0直接控制定时器启停。
- GATE=1时,需同时满足TR1/TR0=1且对应外部中断引脚(INT1/INT0)为高电平才启动定时器。
- GATE位(在TMOD寄存器中)的作用 :
-
外部中断触发方式(IT1/IT0)
- 边沿触发(ITx=1):下降沿触发中断,中断标志(IEx)由硬件自动清零。
- 电平触发(ITx=0):低电平触发中断,中断标志需软件清零,且中断服务结束前必须清除外部引脚的低电平,否则会重复触发。
IP(中断优先级寄存器):
位名 | 作用 |
---|---|
PX0 | 外部中断0 优先级(1=高) |
PT0 | 定时器0 优先级 |
PX1 | 外部中断1 优先级 |
PT1 | 定时器1 优先级 |
PS | 串口优先级 |
SCON 寄存器
SCON 寄存器是一个 8 位的寄存器,通常位于 8051 的地址 0x98 。它的每一位都具有不同的功能,以下是 SCON 寄存器的位结构:
SCON寄存器位定义
位 | 名称 | 功能描述 |
---|---|---|
SM0 (B7) | 串口工作模式选择 | 与SM1共同决定串口工作模式: - SM0=0, SM1=0 :模式0(同步移位寄存器) - SM0=0, SM1=1 :模式1(8位UART,波特率可变) - SM0=1, SM1=0 :模式2(9位UART,波特率固定) - SM0=1, SM1=1:模式3(9位UART,波特率可变) |
SM1 (B6) | 串口工作模式选择 | 同上,与SM0配合使用。 |
SM2 (B5) | 多机通信控制 | - 模式0 :SM2必须置0。 - 模式1 :SM2=1时,只有接收停止位有效才会触发中断。 - 模式2/3:SM2=1时,接收的第9位(RB8)为1才触发中断。 |
REN (B4) | 接收允许控制 | - REN=1 :允许串口接收数据。 - REN=0:禁止接收。 |
TB8 (B3) | 发送数据第9位 | 在模式2/3中,存放发送数据的第9位(可作校验位或地址/数据标识)。 |
RB8 (B2) | 接收数据第9位 | 在模式2/3中,存放接收数据的第9位;模式1中存放停止位。 |
TI (B1) | 发送中断标志 | - 硬件置1 :当一帧数据发送完成时,TI=1。 - 软件清零 :需手动清零 TI = 0; 。 |
RI (B0) | 接收中断标志 | - 硬件置1 :当一帧数据接收完成时,RI=1。 - 软件清零 :需手动清零 RI = 0; 。 |
位 | 名称 | 描述 |
---|---|---|
7 | SM0 | 串行通信工作模式位 0 |
6 | SM1 | 串行通信工作模式位 1 |
5 | SM2 | 使能多机通信模式 |
4 | REN | 接收使能位 |
3 | TB8 | 发送第8位数据,主要用于多机通信时发送第8位数据 |
2 | RB8 | 接收第8位数据,主要用于多机通信时接收第8位数据 |
1 | TI | 发送中断标志位,表示数据已发送完成 |
0 | RI | 接收中断标志位,表示接收数据已准备好 |
SCON 寄存器位的功能说明:
-
SM0 和 SM1(位 7 和 6):
-
这两位用于选择串行通信的工作方式。串行口有四种工作模式(模式 0、模式 1、模式 2 和模式 3),由 SM0 和 SM1 组合决定。
-
工作方式 0:标准异步方式,通常用于 UART 通信。
-
工作方式 1:可变波特率异步通信。
-
工作方式 2:同步串行通信。
-
工作方式 3:支持多机通信。
-
-
-
SM2(位 5):
- SM2 用于启用多机通信模式。若设置为 1,表示该通信模式允许多台设备在同一总线上进行串行通信。
-
REN(位 4):
- REN 是接收使能位。设置为 1 时,允许接收数据;设置为 0 时,禁用接收数据。
-
TB8(位 3):
- TB8 是发送第 8 位数据的标志。在多机通信模式下,它表示发送的第 8 位数据。
-
RB8(位 2):
- RB8 是接收第 8 位数据的标志。在多机通信模式下,它表示接收的数据的第 8 位。
-
TI(位 1):
- TI 是发送中断标志位,当数据发送完成后,硬件会自动设置该标志位为 1。软件需要清除该标志位来确认发送操作完成。
-
RI(位 0):
- RI 是接收中断标志位,当接收到一帧数据时,硬件会自动设置该标志位为 1。软件需要清除该标志位来确认接收操作完成。