四川工程职业技术学院
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 13
中断的概念及 51单片机的中断系统
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical Colledge-1959
本讲主要内容,
13-1,演示 范例 —— 声控小车
13-2,中断的概念
13-3,P89V51RD2单片中断系统的构成
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 利用声音控制小车运动状态。
? 要求:编程使小车按照顺时针方向旋转,通过拍手使小车逆时针旋
转 3秒后又恢复为顺时针旋转状态。
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 范例分析,
? 设计中的主要任务,
? 正常状态下的顺时针运动方式;
? 根据拍手及时地更改运动状态;
? 拍手动作响应后恢复为原有运动状态。
? 程序设计中需要解决的主要问题,
? 如何及时响应拍手的动作?
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 硬件接口
? 声音检测电路的工作原理
? 主电路板上的声音检测电路在 没有检测到声音时其输出端为高电平,当麦克风 接
收到一定强度的声音时其输出端变为低电平 。用跳线帽短接 JP17的 2,3脚就可以
把声音检测电路的输出接到单片机的 INT0( P3.2)端。
5
6
7
4
8
U 9 B
L M 3 5 8
4
8
2
3
1
U 9 A
L M 3 5 8
R25
2K
R23
2K
R20
1 0 0k
C29
10u
R24
2K
D 1 1
1 N 41 4 8
C28
10u
V CC
R21
5K
R18
10k
G N D
R19
10k
R22
5k
R15
R E S 2
V CCG N D
C10
C A P
M K 1
M ICR O P H O N E 2
D I4
1
2
3
J P 17
C O N 3
R P 1
P O T 2
V CC
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 硬件接口
? 声音检测电路的工作原理 —— 灵敏度调节
? 调节 RP1电位器可以调节声音检测电路的灵敏度,环境噪声比较大时,应降低灵
敏度,在环境噪声较小时可以提高灵敏度。
5
6
7
4
8
U 9 B
L M 3 5 8
4
8
2
3
1
U 9 A
L M 3 5 8
R25
2K
R23
2K
R20
1 0 0k
C29
10u
R24
2K
D 1 1
1 N 41 4 8
C28
10u
V CC
R21
5K
R18
10k
G N D
R19
10k
R22
5k
R15
R E S 2
V CCG N D
C10
C A P
M K 1
M ICR O P H O N E 2
D I4
1
2
3
J P 17
C O N 3
R P 1
P O T 2
V CC
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 程序设计
? 方案一:根据硬件特点,当有声音时,单片机的 P3.2出现低电平,故可在程
序中通过查询 P3.2的状态得知是否拍手。可在顺时针运动一段时间后查询
P3.2的状态,查询部分程序如下,
JB P3.2 EXIT ;若无拍手则返回执行原来运动状态
? 方案一存在的问题,
由于查询是在每个动作结束后进行,可能会存在如下问题,
? 在小车每种运动的 5秒钟内,无法查询到拍手的动作;
? 当 5秒钟运动结束后可能拍手的动作已过去了,查不到了,没能响应;
? 反复查询和判断,使 CPU利用率 降低;
没有提高资源
利用率,实现
资源共享。
无法对外部事件
实现实时响应。
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 程序设计
? 方案二:只有当拍手时才 中断小车 当前运动,转去处理拍手动作,
没有拍手动作时保持原有运动状态。
? 方案二基本思路,
? 无拍手动作时,程序正常执行原有功能;
? 当拍手时,,通知, CPU去处理;
? CPU暂停 目前的工作,根据拍手次数 执行相应 的操作;
? 动作处理完毕后,回到暂停前的状态 继续执行原有功能。
这样可以提高 CPU
的利用率,并对拍
手动作作出及时响
应。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical Colledge-1959
13-2,中断的概念
? CPU在处理某一事件 A时,发生了另一事件 B请求 CPU迅速去处
理( 中断发生或中断请求 );
? CPU暂时中断当前的工作,转去处理事件 B( 中断响应和中断
服务 );
? 待 CPU将事件 B处理完毕后,再回到原来事件 A被中断的地方继
续处理事件 A( 中断返回 )。
中断是
什么?
中断请求 → 中断响应 → 中断服务 → 中断返回
中 断
事件 B的
处理过程
事件 A
事件 B
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断源 —— 中断的申请方
? 中断控制寄存器 —— 中断的控制, 工具,
? 中断响应 —— 中断的, 内容,
? 中断返回 —— 中断结束
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断源
? 51单片机 P89V51RD2有 8个中断源
? 外部中断 0—— /INT0
? 外部中断 1—— /INT1
? 定时器 /计数器 T0中断
? 定时器 /计数器 T1中断
? 串行通信口中断
? PCA(可编程计数器阵列)中断
? 定时器 /计数器 T2中断
? 掉电中断
那些部件可以
向 CPU发出中
断申请呢?
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
? 中断允许控制 (1)—— 特殊功能寄存器 IEN0
? EX0,允许 /禁止 外部中断 0申请中断
? EX1,允许 /禁止 外部中断 1申请中断
? ET0,允许 /禁止 定时器 T0申请中断
? ET1,允许 /禁止 定时器 T1申请中断
? ES, 允许 /禁止 串口 申请中断
? ET2, 允许 /禁止 定时器 T2申请中断
? EC, 允许 /禁止 PCA申请中断
? EA, 中断 总控 位 =1,允许中断 =0,禁止任何中断
IEN0 D7 D6 D5 D4 D3 D2 D1 D0
A8H EA EC ET2 ES ET1 EX1 ET0 EX0
1:允许
0:禁止
允许哪些中断?
不允许哪些中断?
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
?中断允许控制 (2)—— 特殊功能存器 IEN1
?EBO:允许 /禁止 掉电 申请中断
1,允许
0,禁止
IEN1 D7 D6 D5 D4 D3 D2 D1 D0
E8H - - - - EBO - - -
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
例 1:假如允许两个外部中断源 INT0和 INT1申请中断,如何设置?
方法一
MOV IEN0,#85H
或
MOV 0A8H,#85H
方法二
SETB EA ;开中断总控位
SETB EX0;允许 INT0中断
SETB EX1;允许 INT1中断
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断优先级控制(硬件优先 +软件优先)
? 硬件优先 —— 单片机内部有一个默认的中断优先级顺序 ( 8个优先级 )
外部中断 0 优先级最 高
掉电
定时器 T0
外部中断 1
定时器 T1
PCA
串口 /SPI
定时器 T2 优先级最 低
先响应那些中断?
后响应那些哪些中
断?
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 0低字节 控制寄存器 IP0
? PX0( IP0.0):外部中断 0优先级低位设定位
? PT0( IP0.1):定时 /计数器 T0优先级低位设定位
? PX1( IP0.2):外部中断 1优先级低位设定位
? PT1( IP0.3):定时 /计数器 T1优先级低位设定位
? PS ( IP0.4):串行口优先级低位设定位
? PT2( IP0.5):定时 /计数器 T2优先级低位设定位
? PPC( IP0.6),PCA中断优先级低位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
B8H - PPC PT2 PS PT1 PX1 PT0 PX0
1:优先
0:滞后
可以人为改
变优先级吗?
Copyright ? Http:// mcu.scetc.net 17 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 0高字节 控制寄存器 IP0H
? PX0H( IP0H.0):外部中断 0优先级高位设定位
? PT0H( IP0H.1):定时 /计数器 T0优先级高位设定位
? PX1H( IP0H.2):外部中断 1优先级高位设定位
? PT1H( IP0H.3):定时 /计数器 T1优先级高位设定位
? PSH ( IP0H.4):串行口优先级高位设定位
? PT2H( IP0H.5):定时 /计数器 T2优先级高位设定位
? PPCH( IP0H.6),PCA中断优先级高位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
B7H - PPCH PT2H PSH PT1H PX1H PT0H PX0H
1:优先
0:滞后
Copyright ? Http:// mcu.scetc.net 18 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 1低字节 控制寄存器 IP1
? PBO( IP1.3):掉电中断优先级低位设定位
? 中断优先级 1高字节 控制寄存器 IP1H
? PBO( IP1H.3):掉电中断优先级高位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
F8H - - - - PBO - - -
1:优先
0:滞后
IP0H D7 D6 D5 D4 D3 D2 D1 D0
F7H - - - - PBOH - - -
1:优先
0:滞后
Copyright ? Http:// mcu.scetc.net 19 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 优先级对中断响应的影响,
? CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
? 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
? 正在进行的低优先级中断服务,能被高优先级中断请求所中断。这
称之为, 中断嵌套, 。
Copyright ? Http:// mcu.scetc.net 20 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
CPU响应中断 的条件是,
? 中断源有中断请求
? 此中断源的中断允许位为 1
? CPU开中断(即 EA=1)
? 同时满足时,CPU才有可能 响应中断。
还不能肯定吗?
Copyright ? Http:// mcu.scetc.net 21 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
遇到以下任一情况,中断 响应将受阻,
? CPU正在处理同级或高优先级中断;
? 当前查询的机器周期不是所执行指令的最后一个机器周期。即在完
成所执行指令前,不会响应中断,从而保证指令在执行过程中不被
打断;
? 正在执行的指令为 RET,RETI或任何访问 IE或 IP寄存器的指令。即
只有在这些指令后面至少再执行一条指令时才能接受中断请求。
? 若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标
志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经
有效,但未获响应,查询过程在下个机器周期将重新进行。
Copyright ? Http:// mcu.scetc.net 22 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
中断响应的过程包括,
?保护断点地址
?程序转至中断服务程序的 入口地址
?执行中断服务子程序
?保护和恢复现场
?处理中断源请求
断点
中 断
响 应
中断服务程序
的入口地址
中断服务子程序
主程序
中断申请
放到哪里去呢? 系统自动放入堆栈保护!
Copyright ? Http:// mcu.scetc.net 23 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
CPU是根据每个 中断的入口 来进行响应的。
怎样才能找
到正确的中
断程序呢?
中断源 中断服务程序 入口 地址
INT0 0003H
T0 000BH
INT1 0013H
T1 001BH
串口 /SPI 0023H
T2 002BH
PCA 0033H
掉电 004BH
Copyright ? Http:// mcu.scetc.net 24 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
中断响应的过程包括,
?保护断点地址
?程序转至中断服务程序的 入口地址
?执行中断服务子程序
?保护和恢复现场
?处理中断源请求
断点
中 断
响 应
中断服务程序
的入口地址
中断服务子程序
主程序
中断申请
Copyright ? Http:// mcu.scetc.net 25 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应 —— 中断服务
?保护现场
?处理中断源要求
?恢复现场
中 断
响 应
断 中 返
回
主程序
中断申请
保护现场
中断源处理
恢复现场
Copyright ? Http:// mcu.scetc.net 26 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断返回
CPU完成 中断服务后,返回到原来暂停的位置 (即断点 ),继续执行原来的
程序 。
?返回方式:使用 RETI指令返回
?RETI指令的任务,
?取出保存的断点地址给 PC;
断 中 返
回
中 断
响 应 中断服务子程序
主程序
中断申请
中断服务程序
的入口地址 断点
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 13
中断的概念及 51单片机的中断系统
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical Colledge-1959
本讲主要内容,
13-1,演示 范例 —— 声控小车
13-2,中断的概念
13-3,P89V51RD2单片中断系统的构成
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 利用声音控制小车运动状态。
? 要求:编程使小车按照顺时针方向旋转,通过拍手使小车逆时针旋
转 3秒后又恢复为顺时针旋转状态。
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 范例分析,
? 设计中的主要任务,
? 正常状态下的顺时针运动方式;
? 根据拍手及时地更改运动状态;
? 拍手动作响应后恢复为原有运动状态。
? 程序设计中需要解决的主要问题,
? 如何及时响应拍手的动作?
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 硬件接口
? 声音检测电路的工作原理
? 主电路板上的声音检测电路在 没有检测到声音时其输出端为高电平,当麦克风 接
收到一定强度的声音时其输出端变为低电平 。用跳线帽短接 JP17的 2,3脚就可以
把声音检测电路的输出接到单片机的 INT0( P3.2)端。
5
6
7
4
8
U 9 B
L M 3 5 8
4
8
2
3
1
U 9 A
L M 3 5 8
R25
2K
R23
2K
R20
1 0 0k
C29
10u
R24
2K
D 1 1
1 N 41 4 8
C28
10u
V CC
R21
5K
R18
10k
G N D
R19
10k
R22
5k
R15
R E S 2
V CCG N D
C10
C A P
M K 1
M ICR O P H O N E 2
D I4
1
2
3
J P 17
C O N 3
R P 1
P O T 2
V CC
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 硬件接口
? 声音检测电路的工作原理 —— 灵敏度调节
? 调节 RP1电位器可以调节声音检测电路的灵敏度,环境噪声比较大时,应降低灵
敏度,在环境噪声较小时可以提高灵敏度。
5
6
7
4
8
U 9 B
L M 3 5 8
4
8
2
3
1
U 9 A
L M 3 5 8
R25
2K
R23
2K
R20
1 0 0k
C29
10u
R24
2K
D 1 1
1 N 41 4 8
C28
10u
V CC
R21
5K
R18
10k
G N D
R19
10k
R22
5k
R15
R E S 2
V CCG N D
C10
C A P
M K 1
M ICR O P H O N E 2
D I4
1
2
3
J P 17
C O N 3
R P 1
P O T 2
V CC
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 程序设计
? 方案一:根据硬件特点,当有声音时,单片机的 P3.2出现低电平,故可在程
序中通过查询 P3.2的状态得知是否拍手。可在顺时针运动一段时间后查询
P3.2的状态,查询部分程序如下,
JB P3.2 EXIT ;若无拍手则返回执行原来运动状态
? 方案一存在的问题,
由于查询是在每个动作结束后进行,可能会存在如下问题,
? 在小车每种运动的 5秒钟内,无法查询到拍手的动作;
? 当 5秒钟运动结束后可能拍手的动作已过去了,查不到了,没能响应;
? 反复查询和判断,使 CPU利用率 降低;
没有提高资源
利用率,实现
资源共享。
无法对外部事件
实现实时响应。
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical Colledge-1959
13-1,演示范例 —— 声控小车
? 拍手动作的响应 —— 程序设计
? 方案二:只有当拍手时才 中断小车 当前运动,转去处理拍手动作,
没有拍手动作时保持原有运动状态。
? 方案二基本思路,
? 无拍手动作时,程序正常执行原有功能;
? 当拍手时,,通知, CPU去处理;
? CPU暂停 目前的工作,根据拍手次数 执行相应 的操作;
? 动作处理完毕后,回到暂停前的状态 继续执行原有功能。
这样可以提高 CPU
的利用率,并对拍
手动作作出及时响
应。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical Colledge-1959
13-2,中断的概念
? CPU在处理某一事件 A时,发生了另一事件 B请求 CPU迅速去处
理( 中断发生或中断请求 );
? CPU暂时中断当前的工作,转去处理事件 B( 中断响应和中断
服务 );
? 待 CPU将事件 B处理完毕后,再回到原来事件 A被中断的地方继
续处理事件 A( 中断返回 )。
中断是
什么?
中断请求 → 中断响应 → 中断服务 → 中断返回
中 断
事件 B的
处理过程
事件 A
事件 B
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断源 —— 中断的申请方
? 中断控制寄存器 —— 中断的控制, 工具,
? 中断响应 —— 中断的, 内容,
? 中断返回 —— 中断结束
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断源
? 51单片机 P89V51RD2有 8个中断源
? 外部中断 0—— /INT0
? 外部中断 1—— /INT1
? 定时器 /计数器 T0中断
? 定时器 /计数器 T1中断
? 串行通信口中断
? PCA(可编程计数器阵列)中断
? 定时器 /计数器 T2中断
? 掉电中断
那些部件可以
向 CPU发出中
断申请呢?
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
? 中断允许控制 (1)—— 特殊功能寄存器 IEN0
? EX0,允许 /禁止 外部中断 0申请中断
? EX1,允许 /禁止 外部中断 1申请中断
? ET0,允许 /禁止 定时器 T0申请中断
? ET1,允许 /禁止 定时器 T1申请中断
? ES, 允许 /禁止 串口 申请中断
? ET2, 允许 /禁止 定时器 T2申请中断
? EC, 允许 /禁止 PCA申请中断
? EA, 中断 总控 位 =1,允许中断 =0,禁止任何中断
IEN0 D7 D6 D5 D4 D3 D2 D1 D0
A8H EA EC ET2 ES ET1 EX1 ET0 EX0
1:允许
0:禁止
允许哪些中断?
不允许哪些中断?
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
?中断允许控制 (2)—— 特殊功能存器 IEN1
?EBO:允许 /禁止 掉电 申请中断
1,允许
0,禁止
IEN1 D7 D6 D5 D4 D3 D2 D1 D0
E8H - - - - EBO - - -
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 中断允许控制寄存器
例 1:假如允许两个外部中断源 INT0和 INT1申请中断,如何设置?
方法一
MOV IEN0,#85H
或
MOV 0A8H,#85H
方法二
SETB EA ;开中断总控位
SETB EX0;允许 INT0中断
SETB EX1;允许 INT1中断
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断优先级控制(硬件优先 +软件优先)
? 硬件优先 —— 单片机内部有一个默认的中断优先级顺序 ( 8个优先级 )
外部中断 0 优先级最 高
掉电
定时器 T0
外部中断 1
定时器 T1
PCA
串口 /SPI
定时器 T2 优先级最 低
先响应那些中断?
后响应那些哪些中
断?
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 0低字节 控制寄存器 IP0
? PX0( IP0.0):外部中断 0优先级低位设定位
? PT0( IP0.1):定时 /计数器 T0优先级低位设定位
? PX1( IP0.2):外部中断 1优先级低位设定位
? PT1( IP0.3):定时 /计数器 T1优先级低位设定位
? PS ( IP0.4):串行口优先级低位设定位
? PT2( IP0.5):定时 /计数器 T2优先级低位设定位
? PPC( IP0.6),PCA中断优先级低位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
B8H - PPC PT2 PS PT1 PX1 PT0 PX0
1:优先
0:滞后
可以人为改
变优先级吗?
Copyright ? Http:// mcu.scetc.net 17 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 0高字节 控制寄存器 IP0H
? PX0H( IP0H.0):外部中断 0优先级高位设定位
? PT0H( IP0H.1):定时 /计数器 T0优先级高位设定位
? PX1H( IP0H.2):外部中断 1优先级高位设定位
? PT1H( IP0H.3):定时 /计数器 T1优先级高位设定位
? PSH ( IP0H.4):串行口优先级高位设定位
? PT2H( IP0H.5):定时 /计数器 T2优先级高位设定位
? PPCH( IP0H.6),PCA中断优先级高位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
B7H - PPCH PT2H PSH PT1H PX1H PT0H PX0H
1:优先
0:滞后
Copyright ? Http:// mcu.scetc.net 18 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断控制寄存器 —— 优先级控制寄存器
? 中断优先级 1低字节 控制寄存器 IP1
? PBO( IP1.3):掉电中断优先级低位设定位
? 中断优先级 1高字节 控制寄存器 IP1H
? PBO( IP1H.3):掉电中断优先级高位设定位
IP0 D7 D6 D5 D4 D3 D2 D1 D0
F8H - - - - PBO - - -
1:优先
0:滞后
IP0H D7 D6 D5 D4 D3 D2 D1 D0
F7H - - - - PBOH - - -
1:优先
0:滞后
Copyright ? Http:// mcu.scetc.net 19 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 优先级对中断响应的影响,
? CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
? 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
? 正在进行的低优先级中断服务,能被高优先级中断请求所中断。这
称之为, 中断嵌套, 。
Copyright ? Http:// mcu.scetc.net 20 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
CPU响应中断 的条件是,
? 中断源有中断请求
? 此中断源的中断允许位为 1
? CPU开中断(即 EA=1)
? 同时满足时,CPU才有可能 响应中断。
还不能肯定吗?
Copyright ? Http:// mcu.scetc.net 21 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
遇到以下任一情况,中断 响应将受阻,
? CPU正在处理同级或高优先级中断;
? 当前查询的机器周期不是所执行指令的最后一个机器周期。即在完
成所执行指令前,不会响应中断,从而保证指令在执行过程中不被
打断;
? 正在执行的指令为 RET,RETI或任何访问 IE或 IP寄存器的指令。即
只有在这些指令后面至少再执行一条指令时才能接受中断请求。
? 若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标
志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经
有效,但未获响应,查询过程在下个机器周期将重新进行。
Copyright ? Http:// mcu.scetc.net 22 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
中断响应的过程包括,
?保护断点地址
?程序转至中断服务程序的 入口地址
?执行中断服务子程序
?保护和恢复现场
?处理中断源请求
断点
中 断
响 应
中断服务程序
的入口地址
中断服务子程序
主程序
中断申请
放到哪里去呢? 系统自动放入堆栈保护!
Copyright ? Http:// mcu.scetc.net 23 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
CPU是根据每个 中断的入口 来进行响应的。
怎样才能找
到正确的中
断程序呢?
中断源 中断服务程序 入口 地址
INT0 0003H
T0 000BH
INT1 0013H
T1 001BH
串口 /SPI 0023H
T2 002BH
PCA 0033H
掉电 004BH
Copyright ? Http:// mcu.scetc.net 24 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应
一旦 CPU决定响应中断,则 CPU会去执行相应的中断服务程序。
中断响应的过程包括,
?保护断点地址
?程序转至中断服务程序的 入口地址
?执行中断服务子程序
?保护和恢复现场
?处理中断源请求
断点
中 断
响 应
中断服务程序
的入口地址
中断服务子程序
主程序
中断申请
Copyright ? Http:// mcu.scetc.net 25 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断响应 —— 中断服务
?保护现场
?处理中断源要求
?恢复现场
中 断
响 应
断 中 返
回
主程序
中断申请
保护现场
中断源处理
恢复现场
Copyright ? Http:// mcu.scetc.net 26 SiChuan Engineering Technical Colledge-1959
13-3,P89V51RD2中断系统的构成
? 中断返回
CPU完成 中断服务后,返回到原来暂停的位置 (即断点 ),继续执行原来的
程序 。
?返回方式:使用 RETI指令返回
?RETI指令的任务,
?取出保存的断点地址给 PC;
断 中 返
回
中 断
响 应 中断服务子程序
主程序
中断申请
中断服务程序
的入口地址 断点