第五章 中断系统zlf
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现
场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。 (5) 返回, 此时 CPU将入栈的断点地址弹回到程序计数器, 从而使CPU 继续执行刚才被中断的程序。
4
MCS-51的中断系统结构图
TCON
IT0=0 INT0 IT0=1
PT0
值
响应次序: 定时器0→外中断1→外中断0→实时器1→串行中断。
3. 中断嵌套
中断优先级的作用不仅体现在中断响应时,而且也体现在中 断服务过程中,即允许把正在进行的中断服务暂停下来,而 转去进行优先级高的中断服务,这就是中断嵌套。 中断可以多层嵌套。
CPU在执行 的主程序 响应低级中断 低级中断请求 高级中断请求 返回主程序 返回低级中断程序
③ 实时处理:可以及时处理控制系统中许多随机产生的参数与
信息,从而提高了实时控制系统的性能。 ④ 故障处理:当计算机出现故障时,CPU可自动执行故障处理 程序,提高了系统自身的可靠性。 计算机与外围设备之间传送数据及实现人机联系也常采用中
断方式。
3
5.2 MCS-51单片机的中断系统
中断响应的过程
(1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断
请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。
保护现场一般是用堆栈指令将原程序中用到的,在中断服务子程
序又要用到的寄存器或RAM入栈保护。 (3) 中断服务, 即为相应的中断源服务。
IE
EX0
IP
PX0 PT0
IE0 TF0
T0
IT1=0 INT1 IT1=1
自 然 优 先 级 矢量 地址 自 然 优 先 级
ET0 PX1 EX1 PT1 ET1 PS ES EA
高 级 中 断 请 求
IE1 TF1 TI RI SCON
中断标 志位
T1 TXD RXD
中断源
中断源 允许
中断优 先级
当总控制位EA=1时,开放中断系统,这时才能由各分控制位设 置各自中断的允许与禁止。 MCS-51单片机复位后IE=00H,此时中断系统处于禁止状态。 单片机中断响应后硬件不会自动关闭中断,因此,在转中断服 务程序后,应根据需要使用能将EA复位的有关指令禁止中断, 即以软件方式关闭中断。
(a)用字节操作指令实现 MOV IE,#8CH
A8H,#8CH
(b)用位操作指令实现 SETB EA ;使 EA=1,CPU开中断 SETB ET1 ;使ET1=1,定时/计数器1允许中断 SETB EX1 ;使EX1=1,外中断T1允许中断
5.2.4 中断优先级控制寄存器:IP
字节地址:0B8H
位地址 0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8H 位符号 EA — — ES ET1 EX1 ET0 EX0
EX0和EX1:外部中断允许控制位
EX0(EX1)=0 EX0(EX1)=1 禁止外部中断0(或外部中断1) 允许外部中断0(或外部中断1)
0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8H
功能:用于控制是否允许使用中断。其中与中断有关的控制位
共6位:
EA:中断允许总控制位
EA=0,中断总禁止,CPU禁止所有中断;
EA=1,中断总允许,总允许后中断的禁止或允许由各中断源
的中断允许控制位进行设置。
13
6
2.中断入口
程序存储器ROM
002AH
使用时,通常在这些入口地址 处存放一条跳转指令,使程序 跳转到用户安排的中断服务程 序起始地址上去!
0023H:串行口中断入口
常常是这 样写程序 0013H:外部中断1入口 ORG 0000H 000BH:定时器0溢出中断入口 LJMP START 0003H:外部中断0入口 ORG 0030H 0000H:复位后,程序的入口地址(PC=0000H) START :
24
5.3 中断服务程序
1. 主程序中的中断初始化
8
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IE0和IE1:外部中断请求标志位
当CPU采样到INT0(或INT1)端出现有效中断请求信号时,
IE0(或IE1)位由硬件置“1”,即保存外部中断请求。在中
断响应完成后转向中断服务程序时,再由硬件自动清“0”。
位地址 位符号 9FH 9EH
位地址:98H ~ 9FH
9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI
SM0 SM1
功能:用于串行数据通信控制,其中与中断有关的控制 位共2位:TI 和 RI。无论是发送标志还是接收标志, 都会产生串行中断请求。
11
位地址 位符号
001BH:定时器1溢出中断入口
5.2.2中断请求标志:TCON、SCON
TCON:字节地址:88H
位地址 位符号 8FH TF1 8EH TR1 8DH TF0 8CH TR0
位地址:88H ~ 8FH
8BH IE1 8AH IT1 89H IE0 88H IT0
功能:用于保存外部中断请求以及定时器的计数溢出。 【注意】:TCON既有定时器的控制功能,又有中断控制功能。 虽然TCON称为定时器控制寄存器,但多数位都是为中断控制 而设置的(其中与中断有关的控制位共6位)。
5.3 中断服务程序
当单片机接收到一个中断请求信号后,就挂起它的当前
操作,保存其工作状态,并将控制权转交给中断服务程
序,以便通过执行中断服务程序来完成该中断所对应的 操作内容。 具体来说,就是要完成下列工作: (1)开中断和允许中断源中断; (2)确定各中断源的优先级; (3)若是外部中断,则应规定是电平触发还是边沿触发
• 为“1”的位优先级高
• CPU复位时,IP中的 各位均被清0
17
PS:串行中断优先级设定位
2. 中断优先原则在中断响应时的体现
中断优先原则首先体现在中断响应过程中,即保证高优先级 中断请求被优先响应。按以下两种情况安排: ① 当高、低优先级中断请求同时出现时,高优先级中断请求被 响应。 ② 如果同级的多个中断请求同时出现,则按CPU查询次序确定 哪个中断请求被响应。其查询次序为:外部中断0→定时器0 中断→外部中断1→定时器1中断→串行中断。
哪个中断请求先被响应。
21
中断响应的条件总结
单片机响应中断的基本条件为:
(1)中断源有请求。
(2)中断允许寄存器IE相应位置1。 (3)且CPU总中断允许(即EA=1)。
例1:若规定外部中断0为电平触发方式,高优先级,试
写出有关的初始化程序。
解:一般可采用位操作指令来实现: SETB SETB SETB CLR EA EX0 PX0 IT0 ;开中断 ;允许外中断0中断 ;外中断0定为高优先级 ;电平触发
RI:串行接收中断请求标志位
在接收数据过程中,当采样到最后一个数据位有效时,RI由硬 件置“1” ;软件查询时RI可作为状态位使用。
在转向中断服务程序后,用软件清“0”。
12
5.2.3 中断允许控制寄存器:IE
字节地址:0A8H
位地址
位符号 EA — —
位地址:0A8H ~ 0AFH
ES ET1 EX1 ET0 EX0
18
例设有如下要求,将T0、外中断1设为高优先级,其它 为低优先级,求IP的值,和其响应顺序。
解:IP的首3位没用,可任意取值,设为000,后面根据 IP的值就是 要求写就可以了。
位
符号
D7 X 0
D6 X 0
D5 X 0
D4 PS 0
D3 PT1 0
06H。 D2 D1 1 1
D0 PX0 0
PX1
ET0和ET1:定时器/计数器中断允许控制位
ET0(ET1)=0 禁止定时器/计数器中断
ET0(ET1)=1
允许定时器/计数器中断
ES:串行中断中断允许控制位
ES=0 ES=1 禁止串行中断 允许串行中断
14
说 明:
MCS-51单片机通过中断允许控制寄存器对中断的允许(开放) 实行两级控制,即以EA作为总控制位,以各中断源的中断允许 位作为分控制位。 当总控制位EA=0时,关闭整个中断系统,不管分控制位状态如 何,整个中断系统处于禁止状态;
的原程序的过程。中断需要解决两个主要问题:
① 如何从主程序转到中断服务程序;
② 如何从中断服务程序返回主程序。
2
中断技术的应用
① 有效地解决快速CPU与慢速外设之间的矛盾,可使CPU与外
设并行工作,大大提高工作效率。
② 分时操作:有了中断技术,CPU可启动多台外设并行工作, 分时进行CPU与各台外设之间的信息交换。
矢量 地址
低 级 中 断 请 求
5.2.1 中断源与中断向量
中断源是指在计算机系统中向CPU发出中断请求的来源。分 为内部事件和外部事件 51单片机相对来说较为简单,只提供了5个中断源: 外部:2个外部中断请求 INTO 和 内部:
INT1(P3.2、P3.3)
片内定时器/计数器T0和T1的溢出中断请求TF0和TF1 串行口中断请求TI或RI(合为一个中断源)
IT0和IT1:外部中断触发方式控制位
IT0(IT1)=0 IT0(IT1)=1 电平触发方式,低电平有效 脉冲触发方式,负跳变有效
此位由软件置“1”或清“0”
9
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF0和TF1:定时器(T0和T1)计数溢出标志位
20
CPU执行 低级中断
CPU执行 高级中断 服务 响应高级中断
MCS-51单片机的中断嵌套
因为MCS-51单片机只具有两个优先级,因此具备两级中断 服务嵌套的功能,中断嵌套只能一层,其对中断优先级的处 理原则是: 低优先级中断请求不能打断高优先级的中断服务;但高优先 级中断请求可以打断低优先级的中断服务,从而实现中断嵌 套。 同优先级的中断不能嵌套。即如果一个中断请求已被响应, 则同级的其它中断服务将被禁止。 如果同级的多个中断请求同时出现,则按CPU查询次序确定
9FH
9EH
9DH SM2
9CH REN
9BH TB8
9AH RB8
99H TI
98H RI
SM0 SM1
TI:串行发送中断请求标志位
在发送数据过程中,当最后一个数据位被发送完成后,TI由硬 件置“1” ;软件查询时TI可作为状态位使用。 在转向中断服务程序后,TI必须由用户在中断服务程序中用软 件清“0”,即中断服务程序中必须有CLR TI 或 ANL SCON, #FDH等软件清“0” 指令。
当计数器产生计数溢出时,相应的溢出标志位由硬件置 “1”,并自动产生定时中断请求。当转向中断服务程序时, 再由硬件自动清“0”。 计数溢出标志位的使用有两种情况: • 采用中断方式时,作为中断请求标志位来使用; • 采用查询方式时,作为状态位供查询使用。
10
串行口控制寄存器:SCON
字节地址:98H
15
例题:如果我们要设置外中断1、定时器1中断允许,其 它不允许,请设置IE的相应值。
(MSB)AFH AEH ADH ACH ABH AAH A9H A8H(LSB) 位 符号 值 D7 EA 1 D6 × 0 D5 × 0 D4 ES 0 或 D3 ET1 1 D2 EX1 1 MOV D1 ET0 0 D0 EX0 0
位地址 0BFH 0BEH 0BDH 位符号 — — —
位地址:0B8H ~ 0BFH
0BCH PS 0BBH PT1 0BAH PX1 0B9H PT0 0B8H PX0
功能:用于设定各中断的优先级,通过IP可将中断分为高、低两 个优先级。 PX0:外部中断 0 优先级设定位 PT0:定时器 0 中断优先级设定位 PX1:外部中断 1 优先级设定位 PT1:定时器 1 中断优先级设定位 • 为“0”的位优先级低
第5章 单片机的中断
5.1 中断概述
5.2 MCS-51单片机的中断系统
5.3 MCS-51单片机中断系统的应用
1
பைடு நூலகம்
5.1 中断概述
中断”是指计算机在执行某一程序的过程中, 由于计算机系 统内、 外的某种原因, 而必须中止原程序的执行, 转去执行 相应的处理程序, 待处理结束之后, 再回来继续执行被中止