第5章 8951中断系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
利用中断技术可以使计算机具有更多的功能:
① 可实现高速 CPU与慢速外围设备之间的配合,提高 CPU的效率。
② 可实现实时处理,各控制参数可随时向 CPU 发出中 断申请,CPU 可作出快速响应、及时处理。 ③ 可实现故障的紧急处理。
④ 便于人机联系,操作人员可用键盘、开关等实现人 机联系,完成人的干预控制。
29
• 中断响应的过程:
• 首先由硬件自动生成一条长调用指令“LCALL addr16”。 就是程序存储区中相应的中断入口地址。 • 例如,对于外部中断1的响应,硬件自动生成的长调用 指令为
•
LCALL 0013H
• 首先将程序计数器PC的内容压入堆栈以保护断点,再 将中断入口地址装入PC,使程序转向响应中断请求的中 断入口地址。 • 各中断源服务程序的入口地址,如表5-2所示。
IE0:外部中断0请求标志. IE0=0外部中断0无中断请求; IE0=1外部中断0有中断请求;
•当IT0=0即电平触发方式时,每个机器周期的S5P2采样
INT0,若INT0为低电平,将直接触发外部中断; •当IT0=1即边沿触发方式时,当第一个机器周期采样到INT0
为高电平,第二个机器周期采样到INT0为低电平时,由硬件置位
IE
D7 EA
D6
D5
D4 ES
D3 D2 D1 D0 ET1 EX1 ET0 EX0
(4)EX1:外部中断1中断允许位 0:禁止外部中断1中断; 1:允许外部中断1中断。 (5)ET0:定时器/计数器T0的溢出中断允许位 0:禁止T0溢出中断; 1:允许T0溢出中断。 (6)EX0:外部中断0中断允许位。 0:禁止外部中断0中断; 1:允许外部中断0中断。
• IP 值为:
0 0 0 1 0
时,
• 其优先级顺序为: • T0、 INT0、T1 、INT1、串行口
28
5.4 响应中断请求的条件
• 中断请求被响应,必须满足以下必要条件:
• (1)总中断允许开关接通,即IE寄存器中的中断总允
许位EA=1。 • (2)该中断源发出中断请求,即对应的中断请求标志 为“1”。 • (3)该中断源的中断允许位EA=1,即该中断被允许。 • (4)无同级或更高级中断正在被服务。 • 当CPU查询到有效的中断请求时,在满足上述条件时, 紧接着就进行中断响应。
IT0:外部中断0触发类型控制位 IT0=0时:INT0低电平触发 IT0=1时:INT0负边沿触发 IT1:外部中断1触发类型控制位 用法同IT0 注:IT0, IT1可由软件置“1”或清“0”。
9
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
由此可见,各中断源在同一个优先级的条件下,外部 中断0的中断优先权最高,串行口中断优先权最低。
26
【例5-2】 IP寄存器初始化,AT89S51的两个外中断请求为 高优先级,其他中断请求为低优先级。 (1)用位操作指令
SETB PX0 ;外中断0设置为高优先级
SETB
CLR CLR
PX1
PS PT0
30
30
表5-2
中断入口地址表
两个中断入口间只相隔 8字节,难以安放一个完整的中
断服务程序。因此,通常在中断入口地址处放置一条无条
件转移指令,使程序执行转向中断服务程序入口。
31
31
中断响应是有条件的,当遇到下列三种情况之一时,中
断响应被封锁: (1)CPU正在处理同级或更高优先级的中断。 (2)所查询的机器周期不是当前正在执行指令的最后 一个机器周期。只有在当前指令执行完毕后,才能进行中 断响应,以确保当前指令执行的完整性。 (3)正在执行的指令是RETI或是访问IE或IP的指令。 因为按照AT89S51中断系统的规定,在执行完这些指令后,
12
2. SCON寄存器
• 串行口控制寄存器,字节地址为98H,可位寻址。 • 低二位锁存串行口的发送中断和接收中断的中断请求 标志TI和RI,格式如图5-4所示。
13
串行口中断分为两种: 串行口发送中断 串行口接收中断
SCON D7 D6 D5 D4 D3 D2 D1 D0 TI RI 串行中断请求标志
IE0,并以此来向CPU请求中断,当CPU响应中断,转向中断服务 程序时由硬件清“0”IE0。
IE1:外部中断1请求标志,用法同IE0
10
D7 D6 D5 D4 D3 D2 D1 D0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR0: 定时器T0的启停控制位,由软件置位/清除来控 制其开启/关闭。 若使TR0=1,则定时器T0开始计数; 若使TR0=0,则定时器T0停止计数。 TR1: 定时器T1的启停控制位, 用法同TR0。
5
5.2
AT89S51中断系统结构
• 中断系统有5个中断请求源(简称中断源),两个中断
优先级,可实现两级中断服务程序嵌套。
• 每一中断源可用软件独立控制为允许中断或关中断状 态,中断优先级均可用软件来设置。
• 五个中断源: • 外部中断 :请求0 (INT0由P3.2输入) • 请求1 (INT1由P3.3输入) • 内部中断: 片内定时/计数器T0 • 片内定时/计数器T1 • 片内串行口中断请求
6
5.2.1 中断请求源
7
5.2.2 中断请求标志寄存器
• 5个中断请求源的中断请求标志分别由TCON和SCON的
相应位锁存。
• 1. TCON寄存器 • 为定时器/计数器的控制寄存器,字节地址为88H,可位 寻址。特殊功能寄存器TCON的格式如图5-3所示。
8
TCON
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
1
5.1 AT89S51中断技术概述
• 什么是中断? • 在日常生活中:中断即中途打断某一正在进行的 工作,而去处理另外的紧急事件,待处理完后, 再继续原来的工作。 • 在计算机中:计算机在运行某个进程的过程中, 由于其他原因,有必要中止正在执行的进程,而 去执行引起中断的事件进程,待处理完毕后,再 回到被中止进程的被打断的地方继续执行,这种 情况称为“中断”。
• 中断优先级寄存器IP,其字节地址为B8H,可位寻址。 只要用程序改变其内容,可进行各中断源中断优先级 的设置,IP寄存器的格式如图5-7所示。
23
IP
D7
D6
D5
D4 PS
D3 D2 D1 D0 PT1 PX1 PT0 PX0
1:高优先级中断 0:低优先级中断 (1)PS —串行口中断优先级控制位 (2)PT1—定时器T1中断优先级控制位 (3)PX1—外部中断1中断优先级控制位 (4)PT0—定时器T0中断优先级控制位 (5)PX0—外部中断0中断优先级控制位
18
• AT89S51复位以后,IE被清“0”,所有中断请求被禁
止。IE中与各个中断源相应的位可用指令置“1”或清
“0”。 • 若使某一个中断源被允许中断,除了IE相应的位被置 “1”外,还必须使EA位置“1”。 • 改变IE的内容,可由位操作指令来实现(即SETB bit; CLR bit),也可用字节操作指令实现。
;外中断1设置为高优先级
;串行口设置为低优先级 ;定时器/计数器T0为低优先级
CLR
PT1
;定时器/计数器T1为低优先级
(2)用字节操作指令
MOV IP,#05H
27
• 练习:将外部中断1设为最高优先级;外部中 断1为边沿触发方式,外部中断0为电平触发方 式;除了2个外部中断源,其他中断都不允许 相应。
D7 EA
D6
D5
D4 ES源自文库
D3 D2 D1 D0 ET1 EX1 ET0 EX0
(1)EA:中断允许总控制位 0:CPU屏蔽所有的中断请求(CPU关中断); 1:CPU开放所有中断(CPU开中断)。 (2)ES:串行口中断允许位 0:禁止串行口中断; 1:允许串行口中断。 (3)ET1:定时器/计数器T1的溢出中断允许位 0:禁止T1溢出中断; 1:允许T1溢出中断。 17
24
• 中断优先级控制寄存器IP用位操作指令或字节操作指 令可更新IP的内容,以改变中断优先级。 • AT89S51复位以后,IP的内容为0,各个中断源均为低 优先级中断。 • 在同时收到几个同优先级的中断请求时,哪一个中断
请求能优先得到响应,取决于内部的查询顺序。
25
表5-1
同级中断的查询次序
15
中断允许控制寄存器IE
IE D7 EA D6 D5 D4 ES D3 D2 D1 D0 ET1 EX1 ET0 EX0
总的开关中断控制位EA: EA=0:所有中断请求被屏蔽。 EA=1:CPU开放中断,但五个中断源的 中断请求是否允许,还要由IE中 的5个中断请求允许控制位决定。
16
IE
19
【例5-1】 若允许片内2个定时器/计数器中断,并禁止其他
中断源的中断请求,请编写设置IE的相应程序段。 (1)用位操作指令 CLR CLR CLR SETB SETB SETB ES EX0 EX1 ET0 ET1 EA ;禁止串行口中断 ;禁止外部中断0中断 ;禁止外部中断1中断 ;允许定时器/计数器T0中断 ;允许定时器/计数器T1中断 ;总中断开关位开放
2
中断的定义
主程序
执行主程序 中 断 请 断点 求 继续执行 主程序 中 断 返 回 中断 响应 执 行 中 断 处 理 程 序
简单说: 中断是指计算机暂 时停止原程序的执 行转而执行中断服 务程序,并在服务 完成后自动返回原 程序的过程。
3
• 什么是中断?
• 中断是指计算机在执行主程序时,由于计算机系统以 外的原因,暂停主程序而转去执行中断源要求服务程 序,处理完毕后又返回主程序的这样一个过程。 • 中断技术主要用于实时监测与控制,要求单片机能及 时地响应中断请求源提出的服务请求,并作出快速响 应、及时处理。这是由片内的中断系统来实现的。
需要再执行完一条指令,才能响应新的中断请求。
如果存在上述三种情况之一,CPU不能立即对中断进行 响应。
32
32
5.5 外部中断的响应时间
• 中断响应时间是指:CPU检测到中断请求信号到 转入中断服务程序入口所需要的机器周期数。 • MCS-51单片机响应中断的最短时间为3个机器周
11
D7 D6 D5 D4 D3 D2 D1 D0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF0:定时/计数器0溢出中断请求标志位 TF0=0 定时/计数器0 无 溢出中断 TF0=1 定时/计数器0 有 溢出中断 在启动T0计数后,定时/计数器0从初值开始加1计数,当 最高位产生溢出时,由硬件置位TF0,向CPU申请中断, CPU响应TF0中断后清零该标志位,TF0也可用软件清零 (查询方式)。 TF1:定时/计数器1溢出中断请求标志位
21
图5-6
两级中断嵌套的过程
22
22
• 各中断源的中断优先级关系,可归纳为两条基本规则:
• (1)低优先级可被高优先级中断,高优先级不能低优 先级中断。如果某一中断源被设置为高优先级中断, 则不能被任何其他的中断源的中断请求所中断。 • (2)任何一种中断一旦得到响应,不会再被它的同级 中断源所中断。
TI=1:有发送中断 RI=1:有接收中断
14
5.3 中断允许与中断优先级的控制
中断允许控制由中断允许寄存器IE控制。
中断优先级控制由中断优先级寄存器IP控制。
5.3.1 中断允许寄存器IE AT89S51的对各中断源的开放或屏蔽,是由中断允许寄 存器IE控制的。 IE字节地址为A8H,可位寻址,格式如图5-5所示。
第5章 AT89S51的中断系统
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 AT89S51中断技术概述 AT89S51中断系统结构 中断允许与中断优先级的控制 响应中断请求的条件 外部中断的响应时间 外部中断的触发方式选择 中断请求的撤销 中断服务子程序的设计 多外部中断源系统设计
(2)用字节操作指令
MOV IE,#8AH 上述两段程序对IE的设置是相同的。
20
5.3.2 中断优先级寄存器IP
• AT89S51的中断请求源有两个中断优先级,由软件分
别设置为高优先级中断或低优先级中断,可实现两级
中断嵌套 • AT89S51正在执行低优先级中断的服务程序时,可被 高优先级中断请求所中断,待高优先级中断处理完毕 后,再返回低优先级中断服务程序。