当前位置:文档之家› 第5章第三讲中断系统

第5章第三讲中断系统


保护断点和现场后即可执行中断服务程序,执行完毕, CPU由中断服务程序返回主程序。
16
断点 主程序A
……
响应
实现中断响应和中断返回
返回
中断返回过程如下: 中断服务程序B
RETI
首先恢复原保留寄存器的内容和标志位的状态,这称为 恢复现场,由用户编程完成。
然后,再加返回指令RETI,RETI指令的功能是恢复PC值, 使CPU返回断点,这称为恢复断点。
串行接收 中断标志

主目录 上一页 下一页 结 束
单片机原理及其接口技术
如果我们要设置允许外中断1,定时器1 中断允许, 其它不允许,则IE 可以是
位编码 位名称 位地址 功能
IE.7 EA AFH
1
IE.6 IE.5 IE.4
— ET2 ES
— ADH ACH
00
0
IE.3
ET1 ABH
1
IE.2
中断源
0
自 然 优
低 级

级 中断入口
中断源
5
外部中断源(2 个):
INT0——由P3.2 端口线引入,低电 平或下降沿引起。
INT1——由P3.3 端口线引入,低电 平或下降沿引起。
这两个外部中断
源标志和它们的触 发方式控制位由特 殊功能寄存器 TCON的低4位控 制。
内部中断源(3个): T0——定时器/计数器0中断,由T0溢出引起。 T1——定时器/计数器1中断,由T1溢出引起。 TI/RI——串行I/O中断,串行端口完成一帧
20
单片机原理及其接口技术
4. 中断请求的撤除
中断源发出中断请求后,相应的中断 请求标志位自动置“1”,而CPU响应中断 后,必须及时清除中断请求“1”标志。否 则中断响应返回后,将再次进入该中断, 引起死循环出错。
主目录 上一页 下一页 结 束
单片机原理及其接口技术
中断请求的撤除
• (1)CPU响应中断后,TF0(T0中断标志位)和TF1由 硬件自动清0。 (2)CPU响应中断后,在边沿触发方式下,IE0(外部中 断INT0请求标志位)和IE1由硬件自动清零;在电平触发 方式下,不能自动自动清零IE0和IE1。所以在中断返回前 必须撤出INT0和INT1引脚的低电平,否则就会出现一次 中断被CPU多次响应。
第5章 中断系统
1
本章主要内容
中断的概念和应用 AT89S51中断系统结构 与中断相关的SFR及中断控制 C51中断函数编程举例
2
中断概念类比
实际生活
计算机
看电视
主程序
电话铃响
事件发生
接听电话
事件处理
看电视
主程序
图5.1 中断概念示意图
中断请求 中断处理 中断返回
中断源与中断向量
具有 5 个中断源(52子系 列为6个,多一个定时器中 断)
24
using m? CPU正在处理某个事件,突然另外一个事件需要处理,于是进
入中断后,而你不想将现在执行的程序的各寄存器状态入栈 ,那么可以把这个中断程序放入另一个寄存器组,如切换到1 组,然后退出中断时,再切回到0组(原来的程序在0组)。
25
单片机原理及其接口技术
5.9 C51编程举例
在中断服务程序编程时,首先要对中断系统进行 初始化,也就是对几个特殊功能寄存器的有关控制位进
位编码 IP.7 IP.0
位名称 位地址 功能
— —
保留位
— —
保留位
— —
保留位
PS BCH 0
PT1 BBH 0
PX1 PT0 PX0
BAH B9H B8H
1
1
0
IP 的值就是06H。
主目录 上一页 下一页 结 束
例:在上例中,如果5 个中断请求同时发生,求中断 响应的次序。 响应次序为:定时器0->外中断1->外中断0-> 定时器1->串行中断。
主目录
ORG 0013H LJMP WBZD1
上一页 下一页
结束
单片机原理及其接口技术
中断服务流程
(1)关中断 (2)保存断点 (3)保护现场 (4)转入相应的中断服务程序 (5)恢复现场 (6)开中断 (7)中断返回
主目录 上一页 下一页 结 束
3. 中断响应时间 中断响应时间:用从外部中断请求有效(标志位置
PX0 =1 ;外中断0定为高优先级
IT0 =0
;电平触发
EX0 =0 ;允许外中断0中断
EA =1 ;开中断
TCON TF1 × TF0 SCON
IE1 IT1 IE0 IT0 TI RI
IE EA × ET2 ES ET1 EX1 ET0 EX0
IP
PS PT1 PX1 PT0 PX0
主目录 上一页 下一页 结 束
TR1 TF0 TR0 IE1 8EH 8DH 8CH 8BH
IT1 8AH
IE0 IT0 89H 88H
T1中断标T1志启位停控T0制中位断标T志0启位停控制/位INT1中断/INT1触发/INT0中/断INT0触发 标志位 方式位 标志位 方式位
主目录 上一页 下一页 结 束
单片机原理及其接口技术
注意: (1)不能用RET指令代替RETI指令。 (2)中断服务程序中PUSH与POP须成对使用。
主目录 上一页 下一页 结 束
函数类型 函数名(形式参数表)interrupt n[using m]
关键字interrupt后面的n是中断号,n的取值范围为 0 ~ 4。编 译器从 8*n+3处产生中断向量。执行该程序时,这个地址会传 个程序计数器PC m为单片机工作寄存器组(又称通用寄存器组)编号, 共四组,取值为0,1,2,3
88H 98H A8H B8H
【例5-1】在51单片机的P1口上接有8只LED。在外部中断0输 入引脚P3.2(INT0*)引脚接有一只按钮开关K1。程序要求 将外部中断0设置为负跳沿触发。在程序启动时,P1口上的 8只LED亮。按一次按钮开关K1,使引脚接地,产生一个负 跳沿触发的外中断0中断请求,在中断服务程序中,让低4 位的LED和高4位的LED交替闪烁。具体电路如图5-9所示。
28
图5-9 控制8只LED交替闪烁的电路
29
参考程序如下:
#include <reg51.h>
void Delay(unsigned int i) 能赋初值*/
/*延时函数Delay( ),i为形式参数,不
{ unsigned int j;
for(;i > 0;i--)
for(j=0;j<333;j++)
“1”)到转向中断区入口地址所需的机器周期数来计算。 最短响应时间为3个机器周期。 第一机器周期:查询中断标志状态; 第二、三机器周期:保护断点及跳转。 最长响应时间为8个机器周期。 若正在执行RETI等指令需1个机器周期。 下一条指令最长需4个机器周期(如乘法指令)。 响应中断需3个机器周期。
2.中断响应----条件 同时满足以下4个条件时,才可能响应中断。
(1)有中断请求; (2) 对应中断允许位为1; (3) 开中断(即EA=1)。 (4) 当前一条指令执行完。
TCON TF1 × TF0 SCON
IE1 IT1
IE EA × ET2 ES ET1 EX1
IP
PS PT1 PX1
主目录 上一页 下一页
嵌套 。
TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
IE0
EX0 1 EA 1
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
PX0 1
0 PT0 1
0 PX1 1
0 PT1 1
0 PS 1
0




1


级 中断入口
/*晶振为12MHz,j的选择与晶振频率有关*/
{;}
/*空函数*/
}
void main( ) { EA=1; EX0=1; IT0=1;
/*主函数*/ /*总中断允许*/ /*允许外部中断0中断*/ /*选择外部中断0为跳沿触发方式*/
While(1) { P1=0;}
/* P1口的8只LED全亮*/
11
单片机中断优先级原则:
➢ (1) 先高后低; ➢ (2) 事先规定; ➢ (3) 停低转高; ➢ (4) 高不理低。
单片机原理及其接口技术
中断处理过程
中断请求
主程序 执行主 程序
断点
继续执行 主程序
中断响应
执行 中断 处理 程序
中断返回
主目录
上一成于页大气 信达天下下一页
结束
单片机原理及其接口技术
字符发送/接收后引起。 这3个内部中断源的控制位分别锁存在特殊
功能寄存器TCON和SCON中
6
单片机原理及其接口技术
表5.1 TCON的结构、位名称、位地址和功能
TCON.7 TCON.6TCON.5TCON.4TCON.3 TCON.2TCON.T1CON.0
位编码 位名称 TF1 位地址 8FH 功能
行赋值。具体来说, 就是要完成下列工作:
(1)开中断和允许中断源中断; (2)确定各中断源的优先级; (3)若是外部中断,则应规定是电平触发还是边沿触发。
主目录 上一页 下一页 结 束
例1:若单规片定机外原理部及中其断接0口为技电术平触发方式,高优先级,试 写出有关的初始化程序。
解:一般可采用位来实现:
相关主题