第七章 中断
51单片机学习教程第7章 中断PPT课件
2020/8/20
单片机C语言程序设计
19
中断的优先原则
8051单片机中断优先级遵循以下原则:
中断 Interrupt
1
标题添加
点击此处输入相 关文本内容
标题添加
点击此处输入相 关文本内容
总体概述
点击此处输入 相关文本内容
Байду номын сангаас
点击此处输入 相关文本内容
2
中断的事例
日常生活中有很多计划任务要完成 或突发事件要处理,常用的是查询法, 但更好的处理办法是中断。
如烧开水时,水烧开后应及时切断 加热源。
RI/TI=1
10
单片机中断系统的结构
中断服务程序入口地址和中断号:
中断源
中断标志
中断服务程序入 口地址
优先级顺序
外部中断(INT0) IE0
0003H
高
定时/计数器0(T0) TF0
000BH
↓
外部中断(INT1) IE1
0013H
↓
定时/计数器1(T1) TF1
001BH
↓
串行口
RI和TI
0023H
1. 查询法:不断地检查水是否烧开 2. 中断法:在烧水的壶上装哨子,利用水
烧开后的蒸汽吹响哨子
2020/8/20
单片机C语言程序设计
3
中断的概念
计算机处理的任务按实时性要求分 为两类:
1. 非实时性任务:显示刷新、声音鸣响 2. 实时性任务:系统错误处理、实时监控
对于实时性要求高的任务,出现后 要求立即处理,采用轮询的方式容易实 现,但实时性不高,浪费CPU时间,采 用中断的方式较为适宜。
9
单片机中断系统的结构
微机原理第7章 8086中断系统和中断控制器
3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。
微机原理14162中断处理过程
8
§7.2 中断处理过程
二、CPU对中断的响应
3. 识别中断源
CPU要对中断进行处理,必须找到相应的中断服 务程序的入口地址,这就是中断源的识别。
4. 保护现场
为了不使中断服务程序的运行影响主程序的状态, 必须把断点处的相关寄存器及标志寄存器压栈保 护。
5. 执行中断服务程序
6. 恢复现场 7. 开中断及返回
2019/10/3
4
§7.2 中断处理过程
一、CPU响应中断的条件
中断允许触发器的状态可用指令CLI和 STI来改 变,下述三种情况可关闭中断:
1) 当CPU复位时,中断允许触发器处于关中 断状态;
2) 中断请求被响应后,CPU自动关中断; 3) CPU执行关中断指令CLI后,中断关闭。
2019/10/3
2019/10/3
7
§7.2 中断处理过程
二、CPU对中断的响应
CPU进入中断响应周期后,中断响应过程如下:
1. 关中断
CPU在响应中断后,发出中断响应信号INTA,同 时内部自动关中断,以禁止接受其它的中断请求。
2. 保护断点 把断点处的IP及CS值入栈保存,以备中断处理完 后能正确返回断点。
2019/10/3
四、中断优先级
17
§7.2 中断处理过程
实现方法:
将8个外 设的中断 请求触发 器组合为 一个端口, 并给这个 端口赋以 设备号 (口地址),
2019/10/3
四、中断优先级
18
§7.2 中断处理过程
四、中断优先级
然后,把各外设的中断请求信号相或后作为INTR信 号。任何外设有中断请求时,都可向CPU发出INTR 信号。CPU响应中断后,把中断寄存器的状态作为 一个输入端口读进CPU,然后逐位检测其状态,若 有中断请求就转入相应的中断服务程序,这样优先 级的级别取决于软件查询的顺序,先测试的中断源 具有较高的优先级。
第7章 中断系统
可 屏 蔽 中 断 请 求
软件中断
硬件中断
小结: 中断分类及中ຫໍສະໝຸດ 类型码8086/8088系统最多可处理256级不同类型的中断。
可屏蔽中断(INTR) 外部中断(硬件中断) 非屏蔽中断(NMI,中断类型码2) 中断分类 单步中断(中断类型码1) 内部中断(软件中断) 断点中断(中断类型码3) 溢出中断(中断类型码4) Int n 中断
器退出暂停状态,响应中断,进入中断处理程序。
若现行指令为WAIT指令,且 TEST 引脚加入低电平信号, 则中断请求信号INTR产生后,便使处理器脱离等待状态,响 应中断,进入中断处理程序。
HLT: 暂停指令
(4) 8259A连续两次接收(2个总线周期) INTA = 0的中断 响应信号后,便通过总线将中断矢量号送CPU。 (5) 保护断点。将标志寄存器内容、当前CS内容及当前IP 内容压入堆栈: (SP)←(SP)-2
((SP)+1:(SP))←(PSW)
(SP)←(SP)-2 ((SP+l:(SP))←(CS) (SP)←(SP)-2 ((SP)+1:(SP))←(IP)
(6) 清除IF及TF(IF←0,TF←0),以便禁止其它可屏蔽中 断或单步中断发生。 (7) 求中断程序的入口地址 :根据8259A向CPU送的中断 矢量号n求得矢量地址,再查中断矢量表,得相应中断处理程 序首地址(段内偏移地址和段地址),并将 位首地址置入CS及
7.1 概述
中断和异常是处理器处理突发事件时所采取的两种不同 的处理方法,具体来说,中断指的是处理器暂停当前的程序, 转而去处理中断事件;而异常虽然也会对异常事件作出反应, 但不一定会暂停当前的程序。 在8086/8088处理器时代,中断主要包括外部中断 和 内 部中断两种。 在386/486等32位处理器时代,内部中断的数量和功能被 扩充,习惯上,称内部中断为异常,而中断则主要指外部中 断。
单片机讲义第七章
一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。
嵌入式系统基础第7章中断和异常
为减少延时,ARM在快中断中采取了 两个措施: (1)专门为快中断FIQ设置了一个FIQ模式, 并为这个模式配置了较多的私有寄存器, 从而可使中断服务程序有足够的寄存
器来使用,而不必与被中断服务程序使用 同一组寄存器,这样就免去了因寄存器冲 突而必需的保护及恢复现场工作。
(2)ARM把FIQ的中断向量放在了中断 (异常)向量表末尾0X0000001C处,因此 它后面没有其它中断向量,允许用户将中 断服务车工许程序直接放在这里。
除了外部设备可以发出可以发出中断 请求之后,处理器内部也会有一些事件可 以发出中断请求,例如读取指令出错或在 进行除法运算时除数为零等。为了与外部 事件引起的中断相区别,人们把这种由内 部事件引起的中断叫做异常。
7.1.2
中断请求信号的屏蔽
处理器中用来屏蔽中断的积存器和开 关如下:
1、可屏ห้องสมุดไป่ตู้中断
1、低端和高端向量表
ARM有低端和高端两种向量表,用户可 以根据需要选用其中一种,如下所示:
ARM中断(异常)的各个向量在向量表 中的分配如下:
中断(异常) 复位(RESET) 未定义指令(UNDEF) 向量在低端向量表的地址 0x00000000 0x00000004 向量在高端向量表的地址 0xFFFF0000 0xFFFF0004
一般情况下,这个优先排队机构可能 在处理器中有一套,在中断控制器中也有 一套,甚至在借口电路中也会有一套。
(2)软件实现方法
就是把所有中断源的中断请求信号分 成两路,其中一路经“或”逻辑送到处理 器的中断请求输入端,而另一路则送入中 断接口电路经数据总线送入处理器。
中断源的软件查询法电路的接线如下 图所示:
异常/中断 复位(RESET) 未定义指令(UNDEF) 软中断(SWI) 地址 LR LR 说明 指向未定义指令的下一条指令 指向SWI指令的下一条指令
第7章 中断处理
多道程序或多重任务的运行:分时中断处理。 多道程序或多重任务的运行:分时中断处理。
4. 中断源 任何能够引发CPU中断的事件都称为中 中断的事件都称为中 任何能够引发 中断的事件 断源。 断源。
二、多中断源情况下的特殊问题
1. 中断源的识别
对于软件中断而言,CPU对中断源的识别靠 对于软件中断而言, 对中断源的识别靠 软件中断指令( 来识别, 软件中断指令(INT n)中的中断号 来识别,并 )中的中断号n来识别 转到响应中断服务程序去执行。 转到响应中断服务程序去执行。 对于硬件中断,CPU只有一个 只有一个NMI和INTR引 对于硬件中断,CPU只有一个NMI和INTR引 当有多个外设要申请中断时, 脚,当有多个外设要申请中断时,就必须通过中 断接口电路来连接, 断接口电路来连接,同时给每个中断外设编排一 个中断号( 系统称为中断类型码)。 个中断号(8086系统称为中断类型码)。当任一 系统称为中断类型码)。当任一 外设有中断申请时, 外设有中断申请时,通过中断接口电路将外设中 断信号转发给CPU,然后再由 断信号转发给 ,然后再由CPU从中断接口电 从中断接口电 路读取该中断源的编号。 路读取该中断源的编号。
中 断 控 制 器
IRQ0 IRQ1
外设0 外设1
IRQn
外设n
软硬件结合的简易中断控制器
≥1
2. 中断优先级 对于多中断源而言, 对于多中断源而言,存在各中断源的优先级别 问题。当两个及以上的中断源同时申请中断时, 问题。当两个及以上的中断源同时申请中断时,最 先响应哪个中断源的中断请求, 先响应哪个中断源的中断请求,则由它们的优先级 别决定。 别决定。 可屏蔽中断源的优先级别由中断控制器决定。 可屏蔽中断源的优先级别由中断控制器决定。 8086系统中各类中断的优先级别如下: 系统中各类中断的优先级别如下: 系统中各类中断的优先级别如下
第7章 中断控制器
全嵌套方式
8259A在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式 就自动进入全嵌套方式 全嵌套方式特点 特点: 全嵌套方式特点: 1、中断请求的优先级固定,其顺序是 优先级固定, 最高,逐 、中断请求的优先级固定 其顺序是IR0最高 逐 最高 次减小, 次减小,IR7最低 最低 2、中断服务寄存器 、中断服务寄存器ISR保存优先权电路确定的优先 保存优先权电路确定的优先 级状态,相应位置“ ,并且一直保持这个服务“记录” 级状态,相应位置“1”,并且一直保持这个服务“记录” 状态,直到CPU发出中断结束命令为止 状态,直到 发出中断结束命令为止 3、在ISR置位期间,不再响应同级及较低级的中断 置位期间, 、 置位期间 请求,而高级的中断请求如果CPU开放中断的话仍能够得 开放中断的话仍能够得 请求,而高级的中断请求如果 到中断服务 4、IR7~IR0的中断请求输入可分别由中断屏蔽寄存 、 的中断请求输入可分别由中断屏蔽寄存 的相应位屏蔽与允许, 器IMR的D7~D6的相应位屏蔽与允许,对某一位的屏蔽 的 的相应位屏蔽与允许 与允许, 与允许,操作不影响其它位的中断请求操作 全嵌套工作方式由ICW4的D4=0来确定 全嵌套工作方式由 的 来确定 17
10
可编程中断控制器8259A 第二节 可编程中断控制器 1. 8259A的引脚 的引脚 2. 8259A的中断顺序 的中断顺序 3. 8259A的编程 的编程 4. 8259A的工作过程 的工作过程
11
8259A中断控制器 中断控制器
Intel 8259A是可编程中断控制器 是可编程中断控制器PIC 是可编程中断控制器 可用于管理Intel 8080/8085、 可用于管理 、 8086/8088、80286/80386的可屏蔽中 、 的可屏蔽中 断 8259A的基本功能 的基本功能
微型计算机原理与接口技术第七章课后答案全文
第七章1. 什么叫中断?什么叫可屏蔽中断和不可屏蔽中断?答:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。
可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。
可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。
当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。
不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。
不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。
2. 列出微处理器上的中断引脚和与中断有关的指令。
答:INTR:可屏蔽中断请求输入引脚。
NMI:不可屏蔽中断请求输入引脚INTA:可屏蔽中断响应引脚INT n :软件中断指令,其中n为中断类型号INTO:溢出中断,运算后若产生溢出,可由此指令引起中断。
CLI:中断标志位IF清0STI:置位中断标志位为13. 8086/8088系统中可以引入哪些中断?答:(1)外部中断两种外部中断:不可屏蔽中断NMI和可屏蔽中断INTR(2)内部中断内部中断又称软件中断,有三种情况引起:①INT n :中断指令引起的中断②CPU的某些运算错误引起的中断:包括除法错中断和溢出中断③由调试程序debug设置的中断:单步中断和断点中断。
4. CPU响应中断的条件是什么?简述中断处理过程。
答:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。
可屏蔽中断处理的过程一般分成如下几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。
硬件技术基础第七章中断系统
CPU响应中断的条件和过程 CPU响应中断的条件和过程
恢复现场 把所保存的各个内部寄存器的内容和标志位的状态从 堆栈弹出,送回CPU中的原来位置。这个操作在8088 CPU中的原来位置 8088中也 堆栈弹出,送回 CPU中的原来位置。这个操作在8088 中也 是由服务程序中用POP指令来完成的。 POP指令来完成的 是由服务程序中用POP指令来完成的。 开中断与返回 在中断服务程序的最后,要开中断(以便CPU CPU能响应 在中断服务程序的最后,要开中断(以便 CPU能响应 新的中断请求)和安排一条返回指令,将堆栈内保存的IP 新的中断请求)和安排一条返回指令,将堆栈内保存的IP CS值弹出 程序就恢复到主程序中运行。 值弹出, 和CS值弹出,程序就恢复到主程序中运行。
中断系统
教学目的和要求
本章主要介绍中断的基本概念 , 中断响应过程 , 8088的中断方式 的中断方式, PC/XT的中断方式 的中断方式, 8088的中断方式,IBM PC/XT的中断方式,之后又介绍了 中断控制器8259 重点掌握中断概念、中断响应过程、 8259, 中断控制器 8259 , 重点掌握中断概念 、 中断响应过程 、 8088中断方式 中断方式。 8088中断方式。
中断系统
中断的屏蔽:有些中断源产生的中断,可以用编程的方法, 中断的屏蔽:有些中断源产生的中断,可以用编程的方法, CPU不予理睬 不予理睬。 使CPU不予理睬。 CPU响应中断转去执行中断服务程序前, CPU响应中断转去执行中断服务程序前,需要把被中 响应中断转去执行中断服务程序前 断程序的现场信息保存起来,以便执行完中断服务程序后, 断程序的现场信息保存起来,以便执行完中断服务程序后, 接着从被中断程序的断点处继续往下执行,这些现场信息 接着从被中断程序的断点处继续往下执行, 包括程序计数器的内容、CPU的状态信息 的状态信息、 包括程序计数器的内容、CPU的状态信息、执行指令后的 结果特征和一些通用寄存器的内容。 结果特征和一些通用寄存器的内容。 中断处理的隐操作: 中断处理的隐操作:有些信息的保存如程序计数器的内容 等由机器硬件预先安排完成。 等由机器硬件预先安排完成。 中断向量: 中断向量:有些信息的保存是在中断服务程序中预先安排 CPU响应中断 由中断源提供地址信息, 响应中断, 的。CPU响应中断,由中断源提供地址信息,
微机原理 第七章中断控制器
CAS2
3
2 . 8259A的编程结构和工作原理
4
编程结构 (1)上半部分:处理部件 中断请求寄存器IRR 中断优先级裁决器PR 当前中断服务寄存器ISR (2)下半部分:7个寄存器 ICW1~ICW4 OCW1~OCW3
5
中断请求寄存器IRR
保存8条外界中断请求信号IR0-IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求
1. 中断优先权管理方式: 可见,8259A (1) 全嵌套方式 (2)特殊全嵌套方式 有多中工作方式, (3)自动循环方式 (4)特殊循环方式 使用起来很灵活, 2. 屏蔽中断源的方式 不易掌握,所以介 (1)普通屏蔽方式 (2)特殊屏蔽方式 绍编程之前,先对 3. 中断结束方式 其工作方式分类进 (1) 自动结束(AEOI)方式 行简要的介绍。 (2) 非自动结束(EOI)方式: ① 普通EOI方式;② 特殊EOI方式 4. 系统总线的连接方式(8259A级连方式) (1) 缓冲方式 (2)非缓冲方式 5. 中断请求的引入方式 (1) 边沿触发 (2)电平触发 (3)中断查询
• 优先级特殊循环方式:初始优先级队列是由编程确定的。 也可由操作命令字OCW2来设定。
10
2、屏蔽中断源的方式
• 普通屏蔽方式:8259A的每个中断请求输入端都可以通过 对应屏蔽位的设置被屏蔽,通过设置操作命令字OCW1使 屏蔽器中任一位或几位置1(对中断的屏蔽总是暂时的, eg:计算机网络通信)
5.
6.
16
五、中断响应过程(CPU与8259A的操作过程)
1、申请中断 外设 对应IR0 ~ IR7为“1”, 为“1” CPU的INTR输入“1”,申请中断。 2、响应中断的条件 CLI 使 IF = 0,禁止中断。 STI 使 IF = 1,允许中断。 判优后使INT
《单片机原理与技术》课件第7章-中断
1.定时器/计数器控制寄存器TCON
位7
位6
位5
位4
位3
位2
位1
位0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0:外部中断INT0触发方式选择 位。可由用户用软件选择。 • IT0=1:设定外部中断引脚信号为下降 沿触发方式。 •
IT1:外部中断INT1触发方式选择 位,其功能类似于IT0。 • IE0:外部中断INT0触发有效标志 位。 • IE1:外部中断INT1触发有效标志 位,其功能类似于IE0。 •
•
定时器0与定时器1标志为TF0与TF1, 在定时器溢出周期的S5P2设置。然后其值 在下一周期由电路查询。然而,定时器2标 志TF2是在S2P2设置且在定时器溢出的同 一周期内被查询。 Nhomakorabea•
若请求有效且响应的条件正确,至请 求的服务例程的硬件子例程调用将是下一 条要执行的指令。CALL自己需要两个周期。 因此,在外部中断请求的激活与服务例程 的第一条指令的执行开始之间,至少需要3 个完整的机器周期。图7-9所示为中断响应 时序。
图7-4 中断响应、服务及返回流程图
7.3 80C51中的中断结构
7.3.1 中断启用
图7-5 MCS-51中断源
图7-6 80C51中的IE(中断启用)寄存器
7.3.2
中断优先权
图7-7 80C51中的IP(中断优先级)寄存器
7.3.3
•
中断如何处理
在操作中,所有中断标志在每个机器 周期的S5P2期间被采样。在下一个机器周 期期间查询采样。若找到一启用的中断的 标志已设置,中断系统生成一LCALL至在 程序存储器中的适当单元,至中断服务例 程的LCALL的生成,由以下3个条件中的任 一个阻断:
单片机原理及接口技术 第七章
7.6.2 中断返回
在中断服务子程序的最后要安排 一条中断返回指令IRET,执行该指令, 系统自动将堆栈内保存的 IP/EIP和CS 值弹出,从而恢复主程序断点处的地 址值,同时还自动恢复标志寄存器FR 或EFR的内容,使CPU转到被中断的程 序中继续执行。
7.6.4 中断请求的撤除
①若ITO (ITl) =0,外中断为电平触发方式。单片机在每一个机器周期的S5P2期间采样中断输入信号INTO (INT1)的状态,若为低电平,即可使TCON寄存器中的中断请求标志位IEO (IEl)置位,若满足响应条件就能得 以及时响应。由于外中断源在每个机器周期被采样一次,所以输入的低电平至少必须保持12个振荡周期,以保 证能被采样到。而一旦CPU响应中断,进入中断服务程序时,IEO (IEl)会被CPU自动删除,但由于中断系统没有 对外的中断应答信号,即中断响应后没有信号输出去通知外设结束中断申请,所以,设计人员如果没有措施来 撤除低电平信号,则在下一个机器周期CPU检测外中断申请时又会发现有低电平信号而将IEO (IEl)重新置位。
外部中断是由外部原因引起的,共有两个中断源,及外部中断0和外部中断1,相应的中断 请求信号输入端是INT0和INT1。 外部中断INT0和INT1有两种触发方式,即电触发方式和脉冲触发方式。
7.4.2 定时中断类
定时中断发生在单片机的内部,也有两个中断源,即为定时/计数器0溢出中断和定时/计 数器1溢出中断。
7.4 中断源类型
中断源,中断是指由于某种事件的发生(硬件或者软件的),计算机暂停执行当前的程序, 转而执行另一程序,以处理发生的事件,处理完毕后又返回原程序继续作业的过程。中断是 处理器一种工作状态的描述。我们把引起中断的原因,或者能够发出中断请求信号的来源统 称为中断源。
武汉理工通信原理课件第七章 中断和异常
外部中断(硬中断) 2,外部中断(硬中断) 指外部芯片通过 CPU的INTR引脚或NMI引脚 CPU的INTR引脚或NMI引脚 发出中断申请引起的中断. 发出中断申请引起的中断.
CPU执行流程 执行流程
中断事件1 中断事件 中断服务程序1 中断服务程序
中断事件 2 中断服务程序 2
二,中断源和中断优先权
引起中断的因素很多, 引起中断的因素很多, 将发出中断申请的外设或内部的原因, 将发出中断申请的外设或内部的原因,称为中断源 给每个中断源指定一个优先权, 给每个中断源指定一个优先权,称为中断优先权 当多个中断源同时发出中断请求时, 当多个中断源同时发出中断请求时, CPU按照中断优先权的高低顺序,依次响应. CPU按照中断优先权的高低顺序,依次响应.
当INTR上有高电平信号 INTR上有高电平信号 当NMI上有上升沿信号 NMI上有上升沿信号
8 0 8 8
可屏蔽中断
由INTR引脚引起的中断,称可屏蔽中断. INTR引脚引起的中断, 可屏蔽中断. CPU是否响应INTR引脚上的中断请求取决于IF标志: CPU是否响应INTR引脚上的中断请求取决于IF标志: IF=1 CPU响应INTR引脚上的中断请求 IF=1,CPU响应INTR引脚上的中断请求 IF=0 CPU不响应INTR引脚上的中断请求 IF=0,CPU不响应INTR引脚上的中断请求 即当IF=0 即当IF=0时,将INTR引脚上的中断申请屏蔽. INTR引脚上的中断申请屏蔽.
最大组态(最小组态) 最大组态(最小组态) GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 (HIGH)(SSO) MN/MX RD RQ/GT0(HOLD) RQ/GT1(HLDA) LOCK(WR) S2(IO/M) S1(DT/R) S0(DEN) QS0(ALE) QS1(INTA) TEST READY RESET
微机原理及接第七章中断技术可编程中断控制器(Intel 8259A)口技术
A/D转换器 开关量输入 D/A转换器 开关量输出
键盘 数字化仪 点阵打印 CRT 显示 光笔 图形输入 激光打印 液晶显示 声音输入 喷墨打印 绘图仪 X-Y记录仪 扫描仪
硬盘 软盘 光盘 磁带
微机控制各类接口框图
二、 CPU 与外设之间的接口信息
1. 数据信息 (DATA) CPU与外设交换的基本信息是数据, 有三种类型: (1) 数字量 由键盘、光电输入机等输入的信息。
译 码 器 三态缓 冲器 G
A15~A0 M/ IO
INTA INTR
中断允许 触发器
工作原理:若输入设备准备好数据,且中断允许,则通 过中断请求触发器发INTR。如果IF=1,则CPU在当前指 令执行完后,进入中断响应周期,发INTA,待到中断类 型号,进入中断服务实现数据传送。
外 设 准 备 数 据
3. 控制信息 (CONTROL)
CPU通过接口输出用以控制外设工作的信息。 例如控制I/O 设备启动或停止等。
AB CPU DB CB DATA STATUS I/O 设备
1 I/O 接口 2
3 CONTROL
CPU 与外设之间的接口信息
三、接口的功能
接口用以解决CPU与外设连接时存
在的矛盾,一般有以下功能: 1. 数据缓存:匹配不同的数据传送速率。 2. 端口寻址:选择某一外设,某一端口。 3. 命令译码:解释CPU输出的命令,产生相 应的操作控制信号。
4. 同步控制:协调时序上的差异。
8.2
I/O 端口的编址方式
接口电路中能被CPU访问的寄存器或某 些特定器件称为I/O端口。I/O端口分为数据 端口、状态端口和命令端口。
AB
CPU 1 I/O 接口 2 DATA
计算机原理第七章8259
8259的初始化命令字ICW2
ICW2是中断类型码初始化命令字,A0=1,跟在ICW1后表示对 ICW2编程。
ICW2设置中断类型码; 中断类型码高5位来自ICW2高5位,低3位对应IR0~IR7。
17
8259的初始化命令字ICW3
ICW3是标志主片/从片的初始化命令字,只有当SNGL=0时,跟 在ICW2后面出现,对其设置应使A0=1;
连接系统总线方式
缓冲方式 在多片8259级连的大系统中,8259通过总线驱动器和数据总线相 连; 使用8259的SP#/EN#作为总线驱动器的使能信号;
非缓冲方式 8259的SP#/EN#作为输入; 单片使用时, SP#/EN#接高电平;多片时,主片SP#/EN#接高电 平,从片SP#/EN#接低电平;
操作命令字可在任何时候写入8259A ,且无顺序。
OCW1为中断屏蔽操作命令字; A0=1 表示设置OCW1; Mi=1 表示屏蔽IRi输入中断请求;
28
8259的操作命令字OCW2
ቤተ መጻሕፍቲ ባይዱ
OCW2用来设置优先级循环方式和中断结束方式; A0=0,且D4D3 = 00,表示对OCW2编程; R,优先级循环状态 R=1优先级自动循环;R=0优先级不循环; EOI 中断结束命令位,非自动结束方式时清ISn; SL 设定标志。 SL=1,由L2、L1、L0指明中断号或最低优先权; SL=0,则L2、L1、L0无效;
29
设置优先级方式
优先级自动循环方式 一般用在系统中多个中断源优先级相等的场合; 优先级是变化的,一个设备收到中断服务后,它的优先级自 动降为最低; 初始优先级为IR0-IR7;
优先级特殊循环方式 最低优先级由初始编程设置;
30
08 中断
0 1 INTR
单步中断 8086/8088CPU内部逻辑 8086/8088CPU内部逻辑 CPU
1、8088系统采用中断类型 向量 码来识别不 、 系统采用中断类型(向量 系统采用中断类型 向量)码来识别不 同的中断源, 同的中断源,每个中断源都有一个与它相对 应的中断类型码 。
(1)溢出、断点、除法溢出、单步、非屏蔽中 )溢出、断点、除法溢出、单步、 断的类型码为固定值 (2)软件中断的类型码由指令给出 ) (3)可屏蔽中断的类型码由 )可屏蔽中断的类型码由PIC给出 给出
(5)中断返回 )
执行中断返回指令IRET 执行中断返回指令
IRET指令将使 指令将使CPU把堆栈内保存的断点信息弹 指令将使 把堆栈内保存的断点信息弹 出到IP、 和 出到 、CS和FLAG中,保证被中断的程序从断 中 点处能够继续往下执行。 点处能够继续往下执行。
IPL IPH CSL CSH FLAGL FLAGH IP
外部中断
非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须 :类型号 ,不可用软件屏蔽, 非屏蔽中断 必须 响应它。 响应它。 可屏蔽中断INTR:类型号由 提供。 可屏蔽中断 :类型号由PIC提供。IF=1时CPU才能响 提供 时 才能响 应。
8086/8088中断源类型 中断源类型
软件中断指令 n 溢出中断 断点中断 除法错 4 3 中断逻辑 中断控 制器 8259A PIC 2 NMI 非屏蔽中断请求
• 在有些情况下,即使中断允许标志位IF=1, CPU也不能立即响应外部的可屏蔽中断请 求,而是要再执行完下一条指令才响应外 部中断。例如,发出中断请求时,CPU正 在执行封锁指令。如果执行向段寄存器传 送数据的指令,如MOV和POP指令,也要 等下一条指令执行完后,才允许中断。当 遇到等待指令或串操作指令时,允许在指 令执行过程发中断请求,但在一个基本操 作完成后响应中断。
第七章中断与中断控制知识题选解
7.7 8259A 只有两个端口地址,但可读/写寄存器数远远多于两个,如何保证正确读/写? 解:8259A 中使用了如下几种方法来实现同一地址寻址多个内部寄存器: (1)利用命令字OCW:事先指定读IRR 或ISR;(2)利用命令字中位4和位3的状态来决定写ICW1,OCW:还是写OCW3 ; (3)根据顺序来决定同一接口地址下的命令字(ICWZ,ICW3 ,ICW4,OCW1) 。
7.11某80X86微机的中断系统有5个外部中断源,接在8259A 的07~IR IR 端,中断类型码为5BH,5CH,5DH,5EH 和5FH , 8259A 的端口地址为B0H,B1H 。
允许它们以全嵌套工作方式工作,中断请求采用电平触发方式。
试编写8259A 的初始化程序。
解:先确定要写哪些控制字,以及每个控制字对应位的取值,再编程。
此题,要写的控制字及位取值如下:(1) 1ICW = x x xllxll ,即:中断请求为电平触发、单片8259A 、写ICW4 。
(2) 2ICW =01011x x x ,即:此片8259A 中断类型码高5位为:01011 (3) ICW3无需写。
( 4 ) ICW4 = 00000 x 01,即:一般嵌套、非缓冲、正常EOI ,8086 /8088模式。
其中x 表示取值为0或1均可。
假定控制字中的x 固定为0,初始化程序如下: MOV DX,0B0H ;指向端口0MOV AL,1BH ;中断请求为边沿触发、单片8259A 、写ICW4 OUT DX , AL ;写ICWI INC DX ;指向端口1MOV AL, 58H ;中断类型码高5位为01011 OUT DX , AL ;写ICW2MOV AL,01H ;一般嵌套、非缓冲、正常EOI , 8086 /8088模式OUT DX , AL ;写ICW47.12某80X86系统中设置三片8259A 级联使用,一片为主,两片为从,从片分别接人主片的2IR 和4IR 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章中断一、教学内容1 中断与异常中断2 向量中断系统3 可编程中断控制器8259A芯片4 中断向量表的建立方法5 CPU中断处理顺序二、要求掌握和理解中断、多任务的原理、概念及用途和中断应用的具体实现。
三、重点掌握中断控制器8259A的工作原理及其与CPU的接口技术和编程实现。
四、难点在于对中断体系结构和多任务系统的工作原理、概念的理解和具体应用编程与实现。
五、本章分为3讲,每讲2学时。
第一讲1.中断与异常中断1)中断的概念中断(中断/异常)中断源中断请求中断响应中断处理中断返回2)中断分类按中断源的性质可以把中断分类:①外部硬件中断:中断源是外部硬电路。
通过CPU的NMI引脚或INTR引脚向CPU提出中断请求。
INTR:可屏蔽中断,受CPU内标志寄存器中IF位的屏蔽NMI:非屏蔽中断,不受IF位的屏蔽。
CPU每执行完一条指令,检测NMI和INTR引脚上有无中断请求。
②内部异常中断:中断源是CPU内部正在执行的过程发生的异常情况。
如除法操作时结果太大 (分母太小) ;访问某个页或段时,该页或段正好不在内存;系统的硬件、软件 (各种系统用表)发生错误。
3)中断优先顺序CPU的中断优先权排列从高到低为:➢除法出错中断,溢出中断,INT n,…➢NMI➢INTR➢单步中断4)中断类型码中断类型码是连接中断源和中断处理程序的唯一桥梁。
80X86可处理256级中断,中断类型码可以是0~255,一部分由系统占用,一部分用户可以支配。
比如:除法错误(n=0)调试异常(n=1)NMI中断(n=2)断点中断(n=3)溢出中断(n=4)5)中断处理顺序6)中断向量表和中断描述符表每个中断都分配有中断类型码,CPU通过中断类型码经过处理要找到对应的中断服务程序的入口地址。
第二讲可编程中断控制器8259A1.8259A的内部结构及管脚分配1)内部结构①中断请求寄存器(IRR)中断请求IR7-IR0,当某个为高电平时,IRR相应位置“1”。
②中断服务寄存器(ISR)任何一级中断被响应,执行其中断服务程序,ISR相应位置“1”。
多重中断情况下,ISR中多位被同时置“1”。
③优先权判别器(PR)当IR7-IR0中有多个中断请求信号同时产生时,PR判定哪个中断请求具有最高优先权,并把它置入ISR的相应位。
④中断屏蔽寄存器(IMR)通过IMR可实现对各级中断的有选择的屏蔽。
⑤级联(中断最多扩展到64级)一片8259A只能接收8级中断,当超过8级时,可用多片8259A级联使用,构成主从关系。
连线要求:➢主8259A:级联信号CAS2-CAS0是输出信号; SP端为“1”➢从8259A:级联信号CAS2-CAS0是输入信号; SP端为“0”➢从8259A的INT输出接到主的中断输入端IR上⑥控制电路根据IRR的置位情况和优先权判别器PR的判定结果,向8259A内部其它部件发出控制信号,并向CPU发出中断请求INT和接收来自CPU的中断响应INTA。
⑦读/写控制逻辑A0 :8259A占两个I/O端口地址,用A0来选:端口地址的其它高位由片选信号端输入。
:读信号 :写信号⑧数据总线缓冲器双向8位三态缓冲器,构成8259A与CPU之间的数据接口。
2)8259A的管脚分配➢与外部设备连接的中断请求输入管脚IR0-IR7;➢与CPU连接的数据通路和控制信号:D0-D7,WR,RD,INTA,INT;➢用于8259A级联的管脚CAS0-CAS2,SP/EN;➢端口地址选择信号CS,A0。
2.8259A的中断管理方式1)中断优先权管理①完全嵌套方式固定优先权:IR0>IR1>…>IR7。
高优先级的中断可进入低优先级,但低优先级不能进入高优称级或同等优先级。
②自动循环方式IR0-IR7轮流具有最高优先权。
当任何一级中断被处理完,它的优先级别就被改变为最低,而最高优先级分配给该中断的下一级中断。
③中断屏蔽方式➢普通屏蔽:在中断屏蔽寄存器IMR中,将某一位或几位置“1”来屏蔽掉相应级别的中断请求。
➢特殊屏蔽:可使低优先级别的中断进入正在服务的高优先级别中。
④特殊完全嵌套方式(用于级联情况)接在主片IR3上的从片比接在IR4上的从片具有高的优先权;而主片上IR0,IR1,IR2上的中断比从片具有高优先权。
2)8259A中断结束的管理方式中断结束的管理就是用不同的方式使ISR的相应位清“0”,并确定下面的优先排队。
➢完全嵌套情况➢自动循环情况➢特殊完全嵌套情况3.8259A的编程1)预置命令字① ICW1的格式D1=1,使用单片8259A;D1=0, 8259A级联。
D3=1,电平触发方式;D3=0,边缘触发方式。
② ICW2:提供中断类型号中断类型号的高5位由用户指定,低3位由8259A的中断请求输入端IR7-IR0的编码决定。
中断类型码是连续的。
在ICW2中,用户指定高5位后,当8259A的某个IR端有中断请求,就自动填入相应IR的编码到ICW2的低3位。
③ ICW3只有在8259A有级联的情况下使用,主片和从片的ICW3格式不同,主片的ICW3表明主8259A的哪个IR端接有从8259A。
从片的ICW3表明它接在主8259A 的哪个IR端。
④ ICW4的格式➢AEOI:定义是否采用自动中断结束方式。
D1=1为自动EOI, D1=0为正常EOI。
➢SFNM:D4=1为特殊完全嵌套方式,D4=0为非特殊完全嵌套方式。
➢BUF及M/S:0X—非缓冲方式;10—缓冲方式从片; 11—缓冲方式主片。
2)操作命令字① OCW1的格式实现屏蔽功能,OCW1的内容被置入中断屏蔽寄存器IMR中,Di为“1”:禁止对应的IR端的中断请求。
Di为“0”:允许对应的IR端的中断请求.OCW1的格式如下:② OCW2的格式控制中断结束,优先权循环等操作。
L2-L0:编码指定相应的IR端为当前结束中断。
R SL EOI 功能0 0 1 一般EOI命令0 1 1 特殊EOI命令1 0 1 自动循环的一般EOI命令1 0 0 设置自动循环AEOI方式0 0 0 清除自动循环AEOI方式1 1 1 自动循环特殊EOI命令1 1 0 置位优先权命令0 1 0 无效③ OCW3的格式控制8259A的中断屏蔽和读取寄存器的状态。
➢ESMM及SMM:0X-无用;10-清除特殊屏蔽; 11-设置特殊屏蔽➢P=1,查询中断; P=0,非查询中断;➢RR及RIS:0X-无用;10-随后读IRR; 11-随后读ISR例1:在某个8086最小方式系统中接有一片8259A,有一外设中断请求从IR7引入,8259A的端口地址及外设申请中断的中断类型号由图给出,试写出8259A的初始化程序。
端口地址分析:中断类型号分析:初始化程序:INTRRUP SEGMENT AT 0ORG 0C7H*4DD INTC7INTRRUP ENDSINTC7 …………MAIN SEGMENT……CLI;关中断MOV AL,13H ;ICW1OUT 84H,ALMOV AL,0C7H ;ICW2OUT 86H,ALMOV AL,01 ;ICW4OUT 86H,ALSTI ;开中断MAIN ENDS例 2: 8259A的级联使用。
某系统有两片8259A,➢从片8259A接主片的IR4,主片的IR2和IR5有外部中断引入,从片IR0和IR3上也分别有外设中断引入。
➢主片中断类型号分别为62H,65H,中断服务程序在同一段中,段地址为2000H,两个中断服务的偏移地址为2500H和2600H。
➢从片中断类型号分别为40H,43H,中断服务程序也在同一段中,段地址为4000H,偏移地址为2640H和4620H,试分别写出主8259A和从8259A的初始化程序。
主片8259A,设定如下要求:(1) 主8259A有级联,从IR4引入;(2) 中断请求信号以边沿触发;(3) 中断类型号为60H~ 67H;(4) 采用特殊完全嵌套方式;(5) 采用非自动结束EOI,非缓冲方式,SP=1;(6) 采用一般EOI结束方式;(7) 屏蔽IR2,IR4和IR5以外的中断源。
主片8259A的初始化程序如下:……MOV AL,11H ;ICW1,A0=0MOV DX,MPORT0OUT DX,ALMOV AL,62H ;ICW2,A0=1MOV DX,MPORT1OUT DX,ALMOV AL,10H ;ICW3,A0=1OUT DX,ALMOV AL,11H ;ICW4,A0=1OUT DX,ALMOV AL,0CBH ;OCW1,A0=1OUT DX,ALMOV AL,20H ;OCW2,A0=0MOV DX,MPORT0OUT DX,AL从片8259A的要求为:(1) 从片8259A接在主片IR4上;(2) 中断请求信号为边沿触发;(3) 中断类型号分别为40H~ 47H;(4) 采用特殊完全嵌套方式;(5) 采用非自动结束EOI,非缓冲方式,SP=0;(6) 采用一般EOI结束;(7) 屏蔽掉IR0和IR3以外的中断源。
从片8259A的初始化程序为:……MOV AL,11H ;ICW1,A0=0 MOV DX,SPORT0OUT DX,ALMOV AL,40H ;ICW2,A0=1 MOV DX,SPORT1OUT DX,ALMOV AL,04 ;ICW3,A0=1 OUT DX,ALMOV AL,11H ;ICW4,A0=1 OUT DX,ALMOV AL,0F6H ;OCW1,A0=1OUT DX,ALMOV AL,20H ;OCW2,A0=0 MOV DX,SPORT0OUT DX,AL将中断服务程序地址置入中断地址入口表中:SEGMENT AT 0ORG 40H*4SINTR0 DW 2640H ;从片IR0中断服务地址DW 4000HORG 43H*4SINTR3 DW 4620H ;从片IR3中断服务地址DW 4000HORG 62H*4MINTR2 DW 2500H ;主片IR2中断服务地址DW 2000HORG 65H*4 ;主片IR5中断服务地址MINTR5 DW 2600HDW 2000H例3:系统正在处理由8259A的IR3引入的中断,而临时有一个低优先级别的中断要紧急处理,一般情况下是不允许的,但8259A利用设置操作命令字(OCW3)可以做到这点,对8259A设置特殊屏蔽方式(SMM位)使运行的中断暂时停止,一直维持到SMM复位。
IR3服务程序……CLI ;关中断MOV AL,08H ;屏蔽IR3,OCW1MOV DX,PORT1OUT DX,ALMOV AL,68H ;OCW3,SMM位置“1”MOV DX,PORT0OUT DX,ALSTI ;开中断……. ;低优先级中断处理CLI ;关中断MOV AL,48H ;OCW3,SMM复位MOV DX,PORT0OUT DX,ALMOV AL,00H ;OCW1,开放IR3MOV DX,PORT1OUT DX,ALSTI ;开中断第三讲中断向量表的建立方法1.绝对地址置入法AT指定段地址(16位) ,ORG指定偏移地址,用DD伪指令将中断服务程序的首地址装入。