前言
51单片机中断系统简单介绍
快速对照表
中断名称 | 中断源 | 中断向量地址 | 中断号 | 优先控制 | 标志位 | 控制位 |
---|---|---|---|---|---|---|
外部中断0 | INT0 | 0x0003 | 0 | PX0 | IE0 | EX0 |
定时计数器0 | T0 | 0x000B | 1 | PT0 | TE0 | ET0 |
外部中断1 | INT1 | 0x0013 | 2 | PX1 | IE1 | EX1 |
定时计数器1 | T1 | 0x001B | 3 | PT1 | TE1 | ET1 |
串行口中断 | UART | 0x0023 | 4 | PS | RI+TI | ES |
IE
中断允许寄存器
IE
是一个8位寄存器,支持位寻址,地址为0xA8
,每一位的定义如下:
名称 | 地址 | 说明 |
---|---|---|
EA | B7 | CPU总中断允许控制位,为1时才允许CPU响应任意中断 |
- | B6 | 51单片机中未使用 |
- | B5 | 51单片机中未使用 |
ES | B4 | 串行口中断允许位,为1时启用串行口中断 |
ET1 | B3 | 定时计数器T1中断允许位,为1时启用定时计数器中断1 |
EX1 | B2 | 外部中断1允许位,为1时启用外部中断1 |
ET0 | B1 | 定时计数器T0中断允许位,为1时启用定时计数器中断0 |
EX0 | B0 | 外部中断0允许位,为0时启用外部中断1 |
“位寻址”的意思是可以只访问8位寄存器的某1位。
“B7”代表寄存器的第7位,以此类推。
IP
中断优先级控制寄存器
IP
是一个8位寄存器,支持位寻址,地址为0xB8
,每一位的定义如下:
名称 | 地址 | 说明 |
---|---|---|
- | B7 | 51单片机中未使用 |
- | B6 | 51单片机中未使用 |
- | B5 | 51单片机中未使用 |
PS | B4 | 串行口中断优先级控制位,为1时设为高优先级 |
PT1 | B3 | 定时计数器T1中断优先级控制位,为1时设为高优先级 |
PX1 | B2 | 外部中断1优先级控制位,为1时设为高优先级 |
PT0 | B1 | 定时计数器T0中断优先级控制位,为1时设为高优先级 |
PX0 | B0 | 外部中断0优先级控制位,为1时设为高优先级 |
- 51单片机的中断共有2级,高优先级和低优先级,默认为低优先级
- 使用中断优先级控制寄存器
IP
可以设置某一些中断为高优先级 - 同级中断响应顺序(从上到下):
INT0
:外部中断0T0
:定时计数器中断0INT1
:外部中断1T1
:定时计数器中断1UART
:串行口中断- 高优先级的中断可以中断低优先级的中断,反之不行
- 中断在响应过程中会屏蔽同级别的其他中断,即相同优先级的中断无法再次引发中断(除非中断响应程序执行完)
TCON
定时计数器中断控制寄存器
IP
是一个8位寄存器,支持位寻址,地址为0x88
,每一位的定义如下:
名称 | 地址 | 说明 |
---|---|---|
TF1 | B7 | T1溢出中断标志,定时计数器产生溢出时由硬件置1,中断响应完成后置0 |
TR1 | B6 | 定时器1的运行控制位,为1时启动定时器1,定时器开始计时 |
TF0 | B5 | T0溢出中断标志,定时计数器产生溢出时由硬件置1,中断响应完成后置0 |
TR0 | B4 | 定时器0的运行控制位,为1时启动定时器0,定时器开始计时 |
IE1 | B3 | 外部中断1中断标志,为1时代表外部中断向CPU请求中断,中断响应完成后置0 |
IT1 | B2 | 外部中断1中断源类型选择,为0时响应上升/下降沿信号,为1时仅响应下降沿信号 |
IE0 | B1 | 外部中断0中断标志,为1时代表外部中断向CPU请求中断,中断响应完成后置0 |
IT0 | B0 | 外部中断0中断源类型选择,为0时响应上升/下降沿信号,为1时仅响应下降沿信号 |
中断程序例子
原则上中断服务子程序的执行速度要越快越好,以防阻塞其他中断。
#include <AT89X51.h>
//初始化INT0
void initINT0()
{
EA = 1; //开启中断
EX0 = 1; //开启外部中断0
IT0 = 0; //收到响应上升/下降沿信号产生中断
}
//INT0中断服务子函数,后面的0是INT0的中断号
void INT0Interrupt() interrupt 0
{
P2 = ^P2; //反转P2口的输出
}
//主程序
void main()
{
initINT0(); //初始化INT0
for (;;) //死循环,防止程序结束
{
}
}
本文链接:https://blog.chrxw.com/archives/2020/04/05/1178.html
转载请保留本文链接,谢谢