微机原理及应用 主讲:郑海春.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

報酬遞增與新的商業世界.
第五章 输入输出系统 5.1 概述 5.3 接口 5.3 系统总线 5.4 直接程序传送方式接口 5.5 中断方式与接口
微型计算机原理及应用.
第2章 微处理器 2.1 概述 /8086微处理器 微处理器 X86/Pentium微处理器
第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章. 第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
第10章 DOS功能调用与BIOS中断调用.
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
汇编语言与接口技术 教师:范新民.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
第8章 现代微型计算机 x86系列微处理器 8.2 微型计算机体系结构 8.3 存储管理技术 8.4 多任务管理与I/O管理
第7章 常用数字接口电路.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第7章 中断与异常.
汇编语言程序设计 Assembly Language Programming
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
微型机系统与接口技术复习.
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
微机原理及应用 主讲:谢维成 西华大学 电气信息学院 1.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 第9章 计时/计数接口.
第8章 PCH中的常规接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
可编程定时计数器.
第 3 章、組合語言 作者:陳鍾誠 旗標出版社.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第八章 中断系统.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第12章 中断 罗文坚 中国科大 计算机学院
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
微型计算机系统.
Presentation transcript:

微机原理及应用 主讲:郑海春

第7章 中断系统 7.1 中断系统基本概念 7.2 中断的处理过程 7.3 IBM-PC机中断系统结构 第7章 中断系统 7.1 中断系统基本概念 7.2 中断的处理过程 7.3 IBM-PC机中断系统结构 7.4 Intel 8259A可编程中断控制器 7.5 8259A编程举例

7.1 中断系统基本概念 7.1.1 什么是中断 7.1.2 为什么要用中断 7.1.3 中断系统的功能 7.1.4 中断类型号和中断向量表 7.1 中断系统基本概念 7.1.1 什么是中断 7.1.2 为什么要用中断 7.1.3 中断系统的功能 7.1.4 中断类型号和中断向量表 返回本章首页

7.1.1 什么是中断 计算机在正常执行程序的过程中,当出现某些异常事件或某种外部请求时,处理器就暂停执行当前程序,而转去执行对异常事件或某种外部请求的处理操作。当处理完毕后,CPU再返回到被暂停的程序继续执行,这个过程称为程序中断。 中断是微处理器与外部设备交换信息的一种方式。

中断引起程序转移示意图 返回本节

7.1.2 为什么要用中断 (1)同步操作: 快速CPU与慢速外设的同步(并行)工作。 (2)故障处理: 7.1.2 为什么要用中断 (1)同步操作: 快速CPU与慢速外设的同步(并行)工作。 (2)故障处理: 同机器硬件错误有关的应急事件的处理。 (3)实时处理: 在工业控制中使用的实时微机控制系统。 返回本节

7.1.3 中断系统的功能 1.实现中断及返回 当某一中断源发出中断申请时,若允许响应这个中断请求,CPU必须在现行的指令执行完后,把断点处的IP和CS值(即下一条应执行的指令的地址)、各个寄存器的内容和标志位的状态推入堆栈保留下来——称为保护断点和现场。然后转到需要处理的中断源的服务程序的入口,同时清除中断请求触发器。当中断处理完后,再恢复被保留下来的各个寄存器和标志位的状态(称为恢复现场),恢复IP和CS值(称为恢复断点),CPU返回断点,继续执行主程序。

2.实现优先权排队 在系统中通常有多个中断源,会出现两个或更多个中断源同时提出中断请求的情况,这样就必须要设计者事先根据轻重缓急,给每个中断源确定一个中断级别——优先权。当多个中断源同时发出中断申请时,CPU能找到优先权级别最高的中断源,响应它的中断请求;在优先权级别最高的中断源处理完了以后,再响应级别较低的中断源。

3.高级中断源能中断低级的中断处理 当CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。 (单级中断处理和多级中断处理:单级中断处理不允许其他设备再中断CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序。)

优先权关系:A>B>C (a)单级中断处理(b)多级中断处理 同时多个中断请求的处理方法示意图 返回本节

7.1.4 中断类型号和中断向量表 8086有一个简单而又多功能的中断系统。任何一种中断,CPU响应以后,都是要保护断点、和保护现场,然后转入各自的中断服务程序。在8086中各种中断如何转入各自的中断服务程序呢? 8086在内存的前1KB(地址00000H~003FFH)建立了一个中断向量表,可以容纳256个中断向量,每个中断向量占用4个字节。在这4个字节中,包含着这个中断向量的服务程序的入口地址——前两个字节为服务程序的IP,后两个字节为服务程序的CS。

中断向量表

中断向量:指示中断服务程序的入口地址,包括:偏移地址IP 、段地址CS。 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节(低对低,高对高)。 8086 微处理器从物理地址00000H开始到003FFH(1KB),依次安排各个中断向量,向量号从0到255。 中断向量表: 256个中断向量所占用的1KB区域。 中断向量的存放首址=N×4 返回本节

7.2 中断的处理过程 7.2.1 概述 7.2.2 CPU响应中断的条件 7.2.3 CPU对中断的响应 返回本章首页

处理一个中断的过程,就是妥善处理以下一些基本问题的过程: 7.2.1 概述 处理一个中断的过程,就是妥善处理以下一些基本问题的过程: 1)何时检查中断输入信号。(CPU在每一个指令周期的最后一个T状态采样INTR线,以决定是否进入中断响应周期) 2)如何把控制转给中断服务程序。(中断向量表) 3)如何保护和恢复中断的现场。(堆栈) 4)如何识别优先级较高的中断。(优先权排队) 5)如何开放和关闭中断。(STI 、CLI) 返回本节

7.2.2 CPU响应中断的条件 1. 设置中断请求触发器(也即要有中断请求) 设置中断请求的情况

2. 设置中断屏蔽触发器 只有接口电路中的中断屏蔽触发器为“1”时,外设的中断请求才能被送出至CPU,从而增加了控制的灵活性。可把8个外设的中断屏蔽触发器组成一个端口,用输出指令来控制它们的状态。 具有中断屏蔽的接口电路

3. 中断是开放的 在CPU内部有一个中断允许触发器(也即IF)。只有当其为“1”时,CPU才能响应中断;若其为“0”,即使INTR线上有中断请求,CPU也不响应。而这个触发器的状态可由STI和CLI指令来改变。当CPU复位时,中断允许触发器为“0”,即关中断,所以必须要用STI指令来开中断。当中断响应后,CPU就自动关中断,所以必须在中断服务程序中用STI指令来开中断。

4. 现行指令执行结束 CPU在现行指令结束后响应中断,即运行到指令周期的最后一个T状态时,CPU才采样INTR线。若发现有中断请求,则进入中断响应周期。

2)设置中断屏蔽触发器,当此触发器为“1”时,允许外设的中断请求才能被送出至CPU。 1)设置中断请求触发器,发出中断请求信号 2)设置中断屏蔽触发器,当此触发器为“1”时,允许外设的中断请求才能被送出至CPU。 3)CPU处于开中断状态。 4)CPU在一条现行指令结束之后响应中断。 返回本节

7.2.3 CPU对中断的响应 关中断 8086在CPU响应中断后,发出中断响应信号 INTA的同时,内部自动地实现关中断(IF=0)。

2. 保留断点 CPU响应中断,并且把下一条将要执行指令的地 址,也即IP和CS推入堆栈保留,以备中断处理 完毕以后,能返回主程序。

3. 保护现场 为了使中断处理程序不影响主程序的运行,故要 把断点处的有关的各个寄存器的内容和标志位的 状态,推入堆栈保护起来。8086系统是由软件 (即在中断服务程序中)把要用到的寄存器的内 容用PUSH指令推入堆栈。

4. 给出中断入口,转入相应的中断服务程序 8086是由中断源提供的中断矢量形成中断入口地 址(即中断服务程序的起始地址)。

5. 恢复现场 把所保存的各个内部寄存器的内容和标志位的状 态从堆栈弹出,送回CPU中的原来位置。这个操 作在8086中也是由中断服务程序中的POP指令来 完成的。

6. 开中断与返回 在中断服务程序的最后,要开中断(以便CPU能响应新的中断请求)和安排一条返回指令(IRET),将堆栈内保存的IP和CS值弹出,运行就恢复到主程序。

中断服务程序框图与程序示例 返回本节 中断服务程序入口 CPU 响应中断后 自动关中 断 保护现场 开中断 中断服务 关中断 恢复现场 中断返回 入口地址: PUSH AX ;保护现场 PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH SP PUSH BP STI ;开中断 ∶ ;中断服务 CLI ;关中断 POP BP ;恢复现场 POP SP POP DI POP SI POP DX POP CX POP BX POP AX IRET ;中断返回 结尾部分 主体部分 起始部分 返回本节

7.3 IBM-PC机中断系统结构 7.3.1 8086/8088CPU的中断结构体系 7.3.2 8086/8088中断优先级 7.3.2 8086/8088中断优先级 7.3.3 IBM-PC/XT的中断控制逻辑 返回本章首页

7.3.1 8086/8088CPU的中断结构体系

1.软件中断(内部中断) 软件中断的特点是: 1)是指令中指定的,或隐含的,或是预定的。 2)CPU不执行中断响应总线周期INTA。 3)除单步中断外,其他内部中断的优先级都比外部中断的要高,都不能被屏蔽(禁止)。 4)单步中断的优先级是所有中断里最低的,它可以用中断允许标志位TF置0来屏蔽。

2.硬件中断(外部中断) (1)非屏蔽中断NMI:不受中断允许标志IF的影响,它总是被CPU接受的; (2)可屏蔽中断INTR:是否响应INTR的请求,取决于中断允许标志位IF的状态。

3.中断向量表的初始化 方法一:将中断服务程序的入口地址直接装入中断向量表中。 方法二:采用DOS系统功能调用。即INT 21H的25H号功能调用。 (设置中断向量 DS:DX=中断向量 AL=中断类型号)

例题:把中断类型号为84H的中断服务程序放在1234:5670H开始的内存区域,该中断向量在向量表中的地址为84H 例题:把中断类型号为84H的中断服务程序放在1234:5670H开始的内存区域,该中断向量在向量表中的地址为84H * 4=210H,那么应该在0段的0000:0210H ~ 0000:0213H这4个单元中依次存放70H,56H,34H和12H。

用方法一实现中断向量表的初始化:(1) 在程序设计时,定义如下格式的数据段: VECDATA SEGMENT AT 0 ORG 84H*4 ;$=0210H VINSUB DW 5670H,1234H VECDATA ENDS

用方法一实现中断向量表的初始化:(2) MOV AX,0 MOV DS,AX MOV SI,0210H ; 84H*4 MOV DS:[SI], 5670H ADD SI,2 MOV DS:[SI],1234H

用方法二实现中断向量表的初始化: 功能调用。DOS功能调用指令INT 21H的25号功能可以设置中断向量。在执行INT 21H前,预置参数是:AH=25H;AL=中断类型号;DS:DX中预置中断向量。 MOV AH,25H;功能号 MOV AL,84H ;中断类型号 MOV BX,1234H MOV DS,BX MOV DX,5678H;预置中断向量的偏移地址 INT 21H;设置中断向量 预置中断向量中的段地址 返回本节

7.3.2 8086/8088中断优先级 中断源 优先级 除法错、断点中断、INTO、INT n 最高 NMI INTR 单步 最低

返回本节

7.3.3 IBM-PC/XT的中断控制逻辑 (1)内部中断源:除法错引起的中断、单步中断、溢出引起的中断、执行中断指令INT(包括INT 3 断点中断)引起的中断。 (2)非屏蔽中断NMI:系统板上存储器奇偶校验错、I/O通道中的插件奇偶校验错、8087协处理器请求中断。 (3)可屏蔽中断INTR:外部设备请求中断时,是通过INTR引脚向8088CPU请求可屏蔽中断。

IBM PC/XT机中断源和中断类型号 8259输入 中断类型号 中断源 IRQ0 08 电子钟定时中断 IRQ1 09 键盘中断 IRQ2 0A 为用户保留 IRQ3 0B 异步通信中断:COM2 IRQ4 0C 异步通信中断:COM1 IRQ5 0D 硬盘中断 IRQ6 0E 软盘中断 IRQ7 0F 并行打印机中断 返回本节

7.4 Intel 8259A可编程中断控制器 7.4.1 8259A的框图和引脚 7.4.2 设置优先权方式 7.4.3 屏蔽中断源的方式 7.4.2 设置优先权方式 7.4.3 屏蔽中断源的方式 7.4.4 结束中断处理的方式 7.4.5 中断触发方式 7.4.6 数据线连接方式 7.4.7 8259A初始化命令字和操作命令字 返回本章首页

7.4.1 8259A的框图和引脚 1.功能 1)1片8259A可以管理8级中断,经级联最多可扩展至64级。 2)每一级中断都可单独屏蔽或允许。 3)在中断响应周期,8259A可提供相应的中断向量号,从而能迅速地转至中断服务程序。 4)通过编程使8259A工作在多种不同的方式。

2.8259A的结构框图

中断请求寄存器IRR􀁺 保存8条外界中断请求信号IR0~IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR􀁺 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR􀁺 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许􀂋

8259A可以级连,1个主片最多可以级连8个从片􀂋 级连时,主片的级连线CAS0~CAS2连至每个从片的CAS0~CAS2,输出被选中的从片编号􀂋 每个从片的中断请求信号INT,连至主8259A的一个中断请求输入端IRx;主片的INT线连至CPU的中断请求输入端INTR􀂋 在非缓冲方式下,引脚-SP/-EN,通过接地指定该片充当从片(-SP=0);反之若接高电平则该片充当主片(-SP=1)。

3.8259A的引脚

4. 8259A的中断响应过程 1)当它的一条或多条中断请求线(IR7~IR0)变为 高电平时,它就使中断请求寄存器IRR相应的位置1。2)8259A分析这些请求,它就向CPU发出高电平有效信号INT,请求中断服务。 3)当前一条指令执行完毕,且IF=1时,CPU响应中断请求,进入中断响应总线周期。

4)8259A接到来自CPU的第一个负脉冲,把允许中断的最高优先级请求位,置入服务寄存器ISR,并把IRR中对应的位清零。 5)CPU在第二个总线周期,再次发出一个负脉冲,8259A接到第二个负脉冲,将中断类型码(ICW2的内容)送到数据总线的D7~D0,CPU读取该类型码。第二个中断响应周期,总线封锁撤销。

中断响应总线周期时序

5.8259A的读写操作及地址 CS RD WR A0 功能 8259A端口 PC/XT机端口 1 读IRR,ISR 偶地址 20H 1 读IRR,ISR 偶地址 20H 读IMR 奇地址 21H 写ICW1,OCW2,OCW3 写ICW2,ICW3,ICW4,OCW1 × 无操作   返回本节

7.4.2 设置优先权方式 1.普通全嵌套方式 2.特殊全嵌套方式 7.4.2 设置优先权方式 1.普通全嵌套方式 8259A的中断优先权顺序固定不变,从高到低依次为:IR0、IR1、IR2、……IR7 中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位) 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套 2.特殊全嵌套方式 允许同级中断嵌套(用于级连主片) 返回本节

7.4.3 屏蔽中断源的方式 1.普通屏蔽方式 将IMR的Di位置1,对应的中断IRi将被屏蔽,该中断请求将不能从8259A送到CPU 7.4.3 屏蔽中断源的方式 将IMR的Di位置1,对应的中断IRi将被屏蔽,该中断请求将不能从8259A送到CPU 如果将IMR 的Di位置0,则允许对应的中断产生 1.普通屏蔽方式 2.特殊屏蔽方式 允许发生低级的中断嵌套,用于级连时的主片。 返回本节

7.4.4 结束中断处理的方式 8259A判断中断服务寄存器ISR的状态:若某位为1,表示该中断源正在得到服务;若某位为0,表示该中断服务已结束。 1.自动中断结束方式 中断响应后自动送结束字(EOI)使中断源在ISR中的相应位复位。 2.非自动中断结束方式 中断结束时用户用指令送结束字(EOI),使ISR中的相应位复位。 返回本节

7.4.5 中断触发方式 边沿触发方式 中断请求输入端出现上升沿为有效的中断请求信号 电平触发方式 中断请求端出现高电平为有效的中断请求信号 7.4.5 中断触发方式 边沿触发方式 中断请求输入端出现上升沿为有效的中断请求信号 电平触发方式 中断请求端出现高电平为有效的中断请求信号 返回本节

7.4.6 数据线连接方式 缓冲方式 对8259A的数据线(输出中断向量号)加缓冲器予以隔离和驱动 7.4.6 数据线连接方式 缓冲方式 对8259A的数据线(输出中断向量号)加缓冲器予以隔离和驱动 -SP/-EN引脚作为输出端,输出允许信号,用以关闭或开启缓冲器 非缓冲方式 -SP/-EN引脚作为输入端 在8259A级连时,用它选择该芯片充当主片或从片

8259A非缓冲方式下级连结构 当中断源提出中断申请时,相应的从8259会通过主8259向CPU提出服务请求,CPU将发出2个-INTA脉冲,在此期间主8259根据申请信号的引脚编号通过CAS0~CAS2发出选择编码,被选中的从8259在第二个-INTA脉冲期间通过数据总线发出中断向量号。 返回本节

7.4.7 8259A初始化命令字和操作命令字

1. 初始化命令字ICW 8259A在开始工作前必须写入初始化命令字 初始化命令字ICW最多可以有4个:ICW1~ICW4 必须按照下图顺序依次写入: 其中ICW1和ICW2是必须的 ICW3和ICW4是否需要,由具体的工作方式决定

8259A初始化命令字的顺序 写ICW1 写ICW2 Y N 写ICW3 写ICW4 初始化完 准备接收中断 单片8259A?

D2和D7~D5,只在8080/8085CPU模式下用,8086CPU模式下这几位不起作用。 ICW1 命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 要 ICW4 不要 单片方式 级连方式 偶地址端口 特征位 电平触发 边沿触发 × × × 1 LTIM × SNGL IC4 D2和D7~D5,只在8080/8085CPU模式下用,8086CPU模式下这几位不起作用。

ICW2 命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 中断类型号的高 5 位 8259A 自动 填入 T7 T6 T5 T4 T3 0 0 0 9259A管理的中断类型号的高5位由D7~D3确定,由用户给出,系统会根据中断引入端IR0~IR7自动确定D2~D0的值。例如,写入ICW2的内容为40H,则IR0~IR7对应的8个中断类型号依次为:40H,41H,…,47H。可见,设定的8个中断类型号一定是连号的(末位必是0H~7H或8H~FH)。

主8259A的 ICW3 命令字 1 - IRi 输入引脚接从片的INT 输入引脚未接从片的INT A0 D7 D6 D5 D4 D3 D2 D1 D0 S3 S2 S1 S0 S4 S5 S6 S7 ICW3(主/从片初始化字)。该命令字定义系统中主片、从片的级连。若系统中只有一片8259A,则不需要ICW3;若有多片8259A,则主片8259A和从片8259A的初始化都需要ICW3。主片和从片的ICW3格式是不同的。

从8259A的 ICW3 命令字 D7~D3:不起作用,常取0。 ID2 ID1 ID0 1 D7~D3:不起作用,常取0。 D2~D0:表示从片的识别码ID2~ID0,它对应于主片的IR7~IR0级连的从片的编码。例如,主片的IR5中断请求线上级连有从片,此从片的ID2~ID0为101(即从片的ICW3为00000101),而主片的ICW3为00100000。

ICW4 命令字 1 - 8088/8086CPU 8080/8085 CPU 自动 EOI 方式 非自动 特殊全嵌套方式 普通全嵌套方式 8080/8085 CPU 自动 EOI 方式 非自动 特殊全嵌套方式 普通全嵌套方式 × 非缓冲方式 缓冲方式从片 缓冲方式主片 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 SFNM BUF M/S AEOI uPM

PC机上主片8259A地址:20h-21h IBM-PC/AT机对8259A的初始化——初始化主片8259A MOV AL,11H ;边沿触发,级连,有ICW4 OUT 20H,AL ;写入ICW1 MOV AL,08H ;中断类型号的初值为08H OUT 21H,AL ;写入ICW2 MOV AL,04H ;04H=00000100B 从片INT接主片IR2 OUT 21H,AL ;写入ICW3 MOV AL,01H ;8086系统,非自动EOI,非缓冲,普通全嵌套 OUT 21H,AL ;写入ICW4

PC机上从片8259A地址:0A0h-0A1h IBM-PC/AT机对8259A的初始化——初始化从片8259A MOV AL,11H ;边沿触发,级连,有ICW4 OUT 0A0H,AL;写入ICW1 MOV AL,70H ;中断类型号的初值为70H OUT 0A1H,AL;写入ICW2 MOV AL,02H ;从片INT接主片IR2 OUT 0A1H,AL;写入ICW3 MOV AL,01H ;8086系统,非自动EOI,非缓冲,普通全嵌套 OUT 0A1H,AL ;写入ICW4

2. 操作命令字OCW OCW1 命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 该命令字用来设置或清除对中断源的屏蔽。若OCW1的某位为“1”,则对应的中断源被屏蔽;若为“0”,则中断被开放。例如:OCW1=80H,则IR7中断被屏蔽。

OCW2 命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 R SL EOI L2 L1 L0 R=0、SL=0、EOI=1(L0~L2无意义):此时的OCW2用作全嵌套方式下的非自动EOI命令的中断结束字。通常,该命令在中断服务程序的末尾,用来清除当前正在服务的中断级。 OCW3命令字(略) 返回本节

7.5 8259A编程举例 例:利用PC机的8259A中断控制器的08H号中断(时钟定时中断)进行字符串“8259A interrupt!”的多次显示。 说明: 8259A的IRQ0(向量号为08H)中断请求来自定时器8253,每隔一定时间产生一次定时中断。 本例改变PC机原08H号中断服务程序为我们自己定义的用来显示一个字符串的中断服务程序。 PC机采用非自动中断结束EOI方式,需在中断服务程序最后发送EOI命令(OCW2)。 返回本章首页