最新微机原理第8章中断PPT课件.ppt

上传人:豆**** 文档编号:77614341 上传时间:2023-03-15 格式:PPT 页数:120 大小:1.74MB
返回 下载 相关 举报
最新微机原理第8章中断PPT课件.ppt_第1页
第1页 / 共120页
最新微机原理第8章中断PPT课件.ppt_第2页
第2页 / 共120页
点击查看更多>>
资源描述

《最新微机原理第8章中断PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理第8章中断PPT课件.ppt(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微机原理第微机原理第8 8章中断章中断 掌握中断技术的基本概念 了解8086中断系统及其对各种类型中断的响应流程 了解8259A中涉及到的有关概念 掌握8259A的编程应用学习目的学习目的学习目的学习目的五、实现中断优先权的方法五、实现中断优先权的方法五、实现中断优先权的方法五、实现中断优先权的方法 判判断断和和确确定定中中断断源源的的中中断断优优先先权权,可可以以采采用用软件软件和和硬件硬件两种方法。两种方法。当系统中有多个中断源存在时,若有几个中断源同时提出申请,CPU先响应谁先响应谁?当CPU正响应某一中断过程中,又有另外的中断源提出中断请求,CPU是否响应是否响应?为此提出了中断优先权

2、的概念。为此提出了中断优先权的概念。1.1.1.1.用用用用软软件确定中断件确定中断件确定中断件确定中断优优先先先先权权优先权管理电路三态 缓冲器 译 码锁 存 器INTRD7 D0A15A0中 断 源 A 中 断 源 B 中 断 源 CM/IO1.用软件确定中断优先权用软件确定中断优先权软件查询流程图优先权管理电路三态 缓冲器 译 码锁 存 器INTRD7 D0A15A0中 断 源 A 中 断 源 B 中 断 源 CIOM在 中 断 服 务 中 读 入 请 求 状 态A 申 请?B 申 请?中 断 返 回为中断源A 服务的程序段YC 申 请?为中断源B 服务的程序段为中断源C 服务的程序段Y

3、Y 采用软件查询方式的特点:采用软件查询方式的特点:询问的次序,即为优先权的次序。询问的次序,即为优先权的次序。硬件简单。硬件简单。由查询转至相应的服务程序的时间长,由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。尤其在中断源较多的情况。2.2.硬件方式硬件方式硬件方式硬件方式(1)若CPU 未处理任何中断,则“优先权失 效”信号为高,当任一中断源请求中断时,通过门2发出INTR 信号。128-3 优先权 编码器优先权 寄存器A B 比较器A2 A1 A0 B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR 编码器和比较器的优先权排队电路(2)若CPU 正

4、在进行中断处理,当某一中断源请求中断时,能否向CPU 发出INTR信号,受比较器的控制。2.硬件方式硬件方式128-3 优先权 编码器优先权 寄存器A B 比较器A2 A1 A0 B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR 编码器和比较器的优先权排队电路 1六、六、六、六、80868086CPU CPU 响应外部中断的过程响应外部中断的过程响应外部中断的过程响应外部中断的过程 CPU 在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR 或NMI 信号线。下面以INTR 为例,说明8086 CPU 响应中断的过程。执行一条指令最后一个总线周期的最后

5、一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断(置FR中IF=0)断点地址(CS.IP)入栈FR 入栈识别中断源,转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes讨论:讨论:1.为什么要在中断服务程序中执行STI 指令?2.STI 指令在中断服务程序中的不同位置时,对CPU 处理中断有何影响?七、小结七、小结1.实现断点地址的保护与恢复。实现断点地址的保护与恢复。2.实现现状信息的保护。实现现状信息的保护。3.实现中断优先权的排队。实现中断优先权的排队。4.实现中断的嵌套。实现中断的嵌套。

6、中断服务2(高优先级)主程序中断服务1中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:INT n 指令 中断逻辑非屏蔽中断请求中断 控制系统(8259A)INT 3 指令INTO 指令单步 中断除数为 0中断 可屏蔽 中断请求NMI INTR硬件中断软件中断 8.2 8086CPU的中断系统的中断系统一、中断类型一、中断类型一、中断类型一、中断类型8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图8086的中断分类1.1.外部中断外部中断外部中断外部中断 (硬件中断硬件中断硬件中断硬件中断)(1)非屏蔽中断非屏蔽中断 NMI (类型号

7、为类型号为2)有效,不受FR 中IF 的影响,常用于处理系统的重大故障。(2)可屏蔽的中断可屏蔽的中断INTR 高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。2.2.内部中断内部中断内部中断内部中断 (软件中断软件中断软件中断软件中断)通常由三种情况引起:(1)INT n 指令中断指令中断(n 为中断类型号为中断类型号)(2)处理处理CPU 某些错误的中断某些错误的中断 除法错中断 (中断类型号为0)溢出中断(INTO)(中断类型号为4)(3)为调试程序设置的中断为调试程序设置的中断a 单步中断当FR 中TF=1时,每执行一条指令,CPU 产生类型为1 的单步中

8、断。b 断点中断设置断点实际上是把指令“INT 3”插入到程序中,CPU 每执行到断点处的“INT 3”指令,便产生类型为3 的中断。二、中断优先级二、中断优先级二、中断优先级二、中断优先级8086 系统中,中断优先级的次序为:系统中,中断优先级的次序为:高低内部中断(除法错、INTO、INT n)NMIINTR单步中断三、中断向量表三、中断向量表三、中断向量表三、中断向量表 CPU 响应中断后,如何得到中断服务程序的入入口口地地址址(中中断断向向量量),转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。中中 断断 向向量量(中中断断服服务务程程序序入入口口地地址址)在在表表中

9、中的的地地址址=中中断断类型号类型号 4中断向量表溢出中断0000 :0014 H 0000 :0013 H0000 :0010 H 0000 :000F H0000 :000C H 0000 :000B H0000 :0008 H 0000 :0007 H0000 :0004 H 0000 :0003 H0000 :0000 H类型5类型255供用户定义的中断(共224个)0000 :007 FH 0000 :007 EH0000 :03 FFHCS IPCS IPCS IPCS IPCS IPCS IPCS IP专用的中断(共5个)保留的中断(共27个)类型32 类型31类型0类型4类型3

10、类型2类型1除数为 0 中断非屏蔽中断单步中断断点中断四、中断向量的装入四、中断向量的装入四、中断向量的装入四、中断向量的装入 BIOS 负责01FH 共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:1.1.用用用用STOS STOS 指令填空中断向量表指令填空中断向量表指令填空中断向量表指令填空中断向量表假设类型号为假设类型号为60H 的中断向量为的中断向量为 CLICLDMOVAX,0MOVES,AXMOV DI,4 60H;DI 指向表中对应位置指向表中对应位置MOVAX,OFFSET_INTR;取偏移地址取偏移地址STOSW;ALDI,AHDI+1 ;DI

11、+2DI MOV AX,SEG_INTR;取段基址取段基址STOSWSTI SEG_INTR:OFFSET_INTR。2.2.利用利用利用利用MOV MOV 指令写入中断向量指令写入中断向量指令写入中断向量指令写入中断向量 CLIMOVAX,00HMOVES,AXMOVBX,4 60H;BX 指向表中对应位置指向表中对应位置MOVAX,OFFSET_INTRMOVES:BX,AX;装入编程地址装入编程地址MOVAX,SEG_INTRMOVES:BX+2,AX;装入段基址装入段基址 方方法法1,2由由用用户户直直接接操操作作中中断断向向量量表表,因此,要熟悉中断向量表的具体组织。因此,要熟悉中断

12、向量表的具体组织。3.3.利用利用利用利用DOS DOS 功能调用功能调用功能调用功能调用“INT 21H”INT 21H”的的的的AH=25 H AH=25 H 装入中断向量装入中断向量装入中断向量装入中断向量MOVAL,60H;类型号类型号ALMOVAH,25H;功能号功能号25HAHMOVDX,SEG_INTRMOVDS,DXMOVDX,OFFSET_INTR;DS:DX=中断向量中断向量INT21H 方方法法3由由DOS功功能能调调用用具具体体实实现现,中中断断向量表对用户是透明的。向量表对用户是透明的。1.取类型号;取类型号;2.计算向量地址;计算向量地址;3.根据向量地址查表,将偏

13、移地址送根据向量地址查表,将偏移地址送IP,段基段基址送址送CS;4.转入中断服务程序,进行中断处理。转入中断服务程序,进行中断处理。五、五、五、五、80868086CPU CPU 转入中断服务程序的过程转入中断服务程序的过程转入中断服务程序的过程转入中断服务程序的过程8086转入中断处理程序的过程1800HF000H00H 18H 00H F0HPUSH IRET例:执行INT21H 向量地址 21H 4 84H CPU IP CSMEM(4)(1)(2)(3)0 :0000H 0 :0084H 0 :0087H 0 :03FFH F000 :1800H中断向量表2.计算向量地址;计算向量地

14、址;向量地址 21H 4 84H3.根据向量地址查表,将偏移地址送根据向量地址查表,将偏移地址送IP,段基址送段基址送CS;4.转入中断服务程序,进行中断处理。转入中断服务程序,进行中断处理。1.取类型号;取类型号;21H 六、六、80868086CPUCPU中断响中断响应应流程流程内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回 中断响应流程第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码YYYYNNNNYN内部中断?NMI?INTR?TF0

15、?执行下条指令完成当前指令 IF1?第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码AYYYYYNNNNNY标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回A1.8086CPU各种类型中断的优先级;各种类型中断的优先级;2.CPU响应响应INTR的条件;的条件;3.INTR与其它类型中断响应过程的异同。与其它类型中断响应过程的异同。请同学们总结:请同学们总结:内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断

16、服务恢复现场开中断,返回 中断响应流程第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码YNYNYYNNYN 8.3 8259A 可编程中断控制器可编程中断控制器 在在微微机机系系统统中中,可可以以使使用用8259A 扩扩展展外外部部中中断断,Intel 8259A 可可编编程程中中断断控控制制器器,主要有以下功能:主要有以下功能:3.在在中中断断响响应应周周期期,8259A 可可提提供供相相应应的的中中断类型号。断类型号。1.1片片8259A 能能管管理理8级级中中断断,通通过过级级联联用用9片片8259A可以构成可以构成64 级主从式中断系统。级主从式中断系统。2.每一

17、级中断可以屏蔽或允许。每一级中断可以屏蔽或允许。4.可编程使可编程使8259A 工作在多种不同的方式。工作在多种不同的方式。一、一、一、一、82598259A A 的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号 控制逻辑中断服务 寄存器 ISR优先权 电路 PR中断请求 寄存器 IRR中断屏蔽寄存器IMR读写控制 逻辑级联缓冲 比较器数据总线 缓冲器D0D7A0CAS0 CAS1 CAS2INTIR0 IR1 IR78259A内部逻辑框图1.数据总线缓冲器数据总线缓冲器 8位、双向、三态,是8259A与 CPU 之间的数据接口。D0D7直接与CPU 数据总线的

18、低8位连结。2.读读/写控制逻辑写控制逻辑A0:常常与地址信号线A0相连。8259A的两个端口地址CPU 通常利用:OUT 指令,IN 指令,3.中断请求寄存器中断请求寄存器 IRR 8 位,若IRi 有效(“1”,),对应位置“1”,直到IRi 得到响应。因此,因此,IRRIRR记录外中断源记录外中断源IRIRi i的请求信息。的请求信息。4.中断服务寄存器中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套中断嵌套时,可能多位置“1”。因此,因此,ISR记录记录CPU对对IRi的响应情况。的响应情况。5.中断屏蔽寄存器中断屏蔽寄存器 IM

19、R8位,某位置“1”,对应IRi 禁止产生中断。因此,因此,IMR控制是否对控制是否对IRi进行屏蔽操作进行屏蔽操作。6.优先权电路优先权电路实现优先权的判断与处理,采用编码器和比较器电路,如下图所示。8259A中的中断优先权电路7.控制逻辑控制逻辑(1)由IRR等情况,向8259A 其它部件发出控制信息。(2)向CPU 发出INT 信号,接收CPU 信号。8.级联缓冲级联缓冲/比较器比较器可以实现8259A的级联,扩展外中断。(1)CAS2、CAS1、CAS0 引脚 主主8259A:CAS2CAS0 输出,输出被输出,输出被 响应的从片的标志码。响应的从片的标志码。问问题题:8259A级级联

20、联时时,如如何何确确定定主主8259A的的IRi接接有有从从片片,从从片片接接入入主主8259A的的IRi?8259A 从片 A 8259A 主片8259A 从片 B INT CAS0 CAS1 CAS2 IR0INT CAS0 CAS1 CAS2 IR0 INT CAS0 CAS1 CAS2 IR7 IR6 IR3 IR0 SP/EN SP/ENIR7CS A0 INTACS A0 INTACS A0 INTAIR7SP/ENIR7AB CB DBGND GND Vcc 从从8259A:CAS2CAS0 输输入入,接接收收主主片片发发出出的的标标志志码码,与与自自己己的的标标志志码码比比较较

21、。若若相相等等,下下一一个个INTA信信号号到到来来时,将中断类型号送至数据总线。时,将中断类型号送至数据总线。从片从片AA标志码:标志码:011011,从片,从片BB标志码:标志码:110110(2)SP/EN引脚 当当8259A 工作于非缓冲方式工作于非缓冲方式(直接与直接与CPU 的的DB 相连相连)为输入,是主从芯片定义引脚。当当8259A 工作于缓冲方式工作于缓冲方式(通过总线缓冲器与通过总线缓冲器与 CPU 的的DB 相连相连)EN为输出,用于CPU与8259A传送数据信息时启动数据总线驱动器。DBDBCPU数据总线驱动器8259A此时,主从芯片的定义由ICW4中的M/S实现。82

22、59A 的引脚图二、二、二、二、82598259A A 的中断处理过程的中断处理过程的中断处理过程的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0 IR7变变高高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。3、CPU响应中断时,送回应答信号 INTA。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。5、在8259A发送

23、中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。三、三、三、三、82598259A A 的工作方式的工作方式的工作方式的工作方式 8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW3)来设置。1.引入中断请求的方式引入中断请求的方式 边边沿沿触触发发方方式式。以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。电电平平触触发发方方式式。以高电平申请中断,但在响应

24、中断后必须及时清除高电平,以免引起第二次误中断。中中断断查查询询方方式式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务。2.连接系统总线的方式连接系统总线的方式 在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式缓冲器方式。在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式非缓冲器方式。3.屏蔽中断源的方式屏蔽中断源的方式 普普通通屏屏蔽蔽方方式式。利用操作命令字OCW1,使屏蔽寄存器IMR中的

25、一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某一个中断源的中断请求,则将IMR中相应的位置0。特特殊殊屏屏蔽蔽方方式式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D511来设定。4.优先级排队的方式优先级排队的方式 全全嵌嵌套套方方式式。在此种方式下中断优先级按0 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。特特殊殊全全嵌嵌套套方方式式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同同级级中中断断请

26、求的特殊嵌套(8259A级级联联使使用用时时,某某从从片片的的8个个中中断断源源对对主主片片来来说说,可可以以认认为为是是同同级级的的)。特殊全嵌套方式用于多片级联。固固定定优优先先级级方方式式。在这种方式下,优先级顺序是固定不变的。其优先级顺序规定为IR0,IR1,IR7。该方式在大多数系统中得到应用。优优先先级级自自动动循循环环方方式式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,IR7。该方式用在系统中多个中断源优先级相等的场合。优优先先级级特特殊殊循循环环方方式式。这种方式与优先级自动循环方式唯一的区别是

27、,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。5.结束中断的处理方式结束中断的处理方式 自自动动中中断断结结束束方方式式。在中断服务程序中,中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的ISR位(实际上在CPU发第二个信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。非非自自动动中中断断结结束束方方式式。在中断服务程序返回之前,必须发中断结束命令才能使ISR中的当前服务位清除。四、四、四、四、82598259A A 的初始化命令字的初始化命令字的初始化

28、命令字的初始化命令字 8259A 初始化编程时,有四个初始化命令字 ICW(Initialiation Command Word),即ICW1ICW4;8259A工作期间,有三个操作命令 字 OCW(Operation Command Word),即OCW1OCW3。8259A 只有两个端口地址A0=0 偶地址端口1 奇地址端口因此,对8259A读/写操作时,要注意控制字写入的端口地址写入的顺序有关的标志位1.ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)01LTIM SNGL IC4A0D7D6D5D4D3D2D1D0标志位标志位 LTIM:规定IRi的触发方式1高电平触发0

29、触发=SNGL:是否单片使用1单片使用0级联使用=IC4:是否写入ICW41后面写入ICW40不写入ICW4=例例:某 8086微 机 系 统 中,使 用 单 片8259A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H,21H,则其初始化命令字ICW1应为:0001001113H,设置ICW1的指令为:MOVAL,13HOUT20H,AL2.ICW2(中断类型号的高5位)(中断类型号的低3位由8259A 自动编码产生)1T7T6T5T4T3A0D7D6D5D4D3D2D1D0IRi 对应中断类型号的高5位T7 T6 T5 T4 T3 T2 T1 T0由ICW2规定0 0 00

30、0 10 1 01 1 1IR0IR1IR2IR7例例:某PC机中8个可屏蔽中断(IR0 IR7)的类型号为08H 0FH,A01,端口地址为21H,则ICW2为:08H,设置ICW2的指令为:MOVAL,08H OUT21H,AL3.ICW3(级联时,主从芯片的级联引脚)若ICW1 中SNGL=1不写入ICW30写入ICW3(1)(1)写给主片的写给主片的写给主片的写给主片的ICWICW3 3Si=1,表示主片IRi上接有从片。1S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0(2)(2)写给从片的写给从片的写给从片的写给从片的ICWICW3 3ID2 ID1 ID0该从

31、片 0 0 0接入主片的IR0 0 0 1接入主片的IR1 1 1 1接入主片的IR7100000ID2ID1ID0A0D7D6D5D4D3D2D1D0从片的标志码 例例:某某8086微微机机系系统统中中,主主片片8259A的的IR2,IR6引引脚脚上上分分别别接接有有从从片片8259A,则则主主、从从片片的的ICW3初初始始化命令字设置如下:化命令字设置如下:主片初始化命令字:主片初始化命令字:(口地址设为口地址设为20H,21H)MOVAL,44H;44H为主片的为主片的ICW3,表示其表示其IR6,IR2上接有从片上接有从片OUT21H,AL;将将ICW3写入奇地址端口写入奇地址端口从片

32、从片1的初始化命令:的初始化命令:(口地址为口地址为30H,31H)MOVAL,02H OUT31H,AL从片从片2的初始化命令:的初始化命令:(口地址为口地址为40H,41H)MOVAL,06H OUT41H,AL4.ICW4100SFNM BUFM/SAEOI1A0D7D6D5D4D3D2D1D00标志位用于8088/8086系统0 正常的完全嵌套方式1 特殊的完全嵌套方式(1)SFNM:规定规定8259A中断的嵌套方式中断的嵌套方式(单片使用时,两种方式一样。)SFNM=正常的完全嵌套方式正常的完全嵌套方式高级的中断 特殊的完全嵌套方式特殊的完全嵌套方式同级的或高级的中断注意:级联使用时

33、,某一从片的注意:级联使用时,某一从片的IRIRi i对对主片来说是同级的主片来说是同级的(同级中断同级中断)。此处,要理解同级中断的概念此处,要理解同级中断的概念!(to CPU)INTAINT从8259AIR7IR6IR0IR7IR6IR0INTAINTCAS0CAS1CAS2CAS0CAS1CAS2主8259AINTA(from CPU)INTR例如:例如:若若主主、从从8259A工工作作于于固固定定优优先先权权方方式式,从从片片的的优优先先级级为为IR0IR1 IR7。但但对对主主片片来来说说,从从片片的的IR0 IR7 是同级的。是同级的。1缓冲方式0非缓冲方式(2)(2)BUFBU

34、F=(3)(3)M/SM/S 当8259A 工作于缓冲方式时(BUF=1),M/S用于定义主、从芯片。1主8259A0从8259AM/S=当8259A工作于非缓冲方式时(BUF=0),SP引脚为输入,用于定义主从芯片,此时 M/S 不起作用。(4)AEOI:规定中断的结束方式规定中断的结束方式(如何使如何使ISR中对应位清中对应位清0)AEOI=1 自动中断结束方式 当CPU 发出第二个 后,ISR 中的相应位复位,此时,不适宜实现中断嵌套。AEOI=0 非自动中断结束方式 由程序发出EOI 命令(由8259A 的OCW 实现),使ISR 中相应位复位。五、五、五、五、82598259A A

35、的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑用ICW1设置:是否级联?请求信号的触发方式 后面是否用ICW4用ICW2设中断类型码是否为级联方式?本片为主片吗?设ICW3各位对应 IR0IR 7 的连接状况设ICW3 高5位为0;低3位为标识码用ICW4 吗?用 ICW4 设:为特殊全嵌套方式?为缓冲方式?为自动EOI方式?为8086/8088系统?ENDNYNNY8259A的初始化流程注注意意:级级联联使使用用时时,主主、从从 8259A都都要要作作初初始始化化操作。操作。例:例:例:例:PC/XT PC/XT 系统中系统中系统中系统中82598259A A的初始化编程的

36、初始化编程的初始化编程的初始化编程2020HH、21H21H为为为为82598259A A的端口地址,的端口地址,的端口地址,的端口地址,在在在在BIOS BIOS 中,中,中,中,82598259A A的初始化程序段如下:的初始化程序段如下:的初始化程序段如下:的初始化程序段如下:MOVAL,13H;ICW1=0001,0011B,边沿触发边沿触发,单片使用单片使用,;要要 ICW4.OUT20H,ALMOVAL,08H;ICW2=08H,IR0IR7对应的中断类型号对应的中断类型号;为为08H0FHOUT21H,ALMOVAL,09H;ICW4=09H,正常的嵌套方式正常的嵌套方式,;非自

37、动中断结束方式非自动中断结束方式OUT 21H,AL六、六、六、六、82598259A A 的操作命令字的操作命令字的操作命令字的操作命令字 对8259A 进行初始化编程后,8259A作好了接收中断请求输入的准备,在8259A 工作期间可由操作命令字OCW1OCW3 规定其各种工作方式。1.OCW1(中断屏蔽操作命令字)中断屏蔽操作命令字)设置或清除IMR 的各个位。1A0D7D0M7M0 Mi=1 表示IRi被屏蔽 例例:设OCW106H,则表示IR1,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申请(IR0,IR3IR7)则得到允许。8259A编程指令为:MOV AL,00000110

38、B;OCW1屏蔽字OUT 21H,AL ;屏蔽字写入奇地址口 ;的 OCW1寄存器2.OCW2(优先权循环方式和中断结束方式优先权循环方式和中断结束方式操作命令字操作命令字)0RSL EOI00L2L1L0A0D7D6D5D4D3D2D1D0标志位有两个作用:(1)8259(1)8259A A 工作于非自动中断结束方式时,如工作于非自动中断结束方式时,如工作于非自动中断结束方式时,如工作于非自动中断结束方式时,如何复位何复位何复位何复位ISR ISR 中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法:SFNM 一般方法:令SL=0,EOI=1 将O

39、CW2写入8259A后,将刚刚被服务的IRi对应位复位。特殊方法:令 SL=1,EOI=1写入OCW2后,使L2L1L0指定的位复位。L2 L1 L00 0 00 0 11 1 1D0D1D7ISR中的DiIR0IR1IR7对应的IRi(2)(2)定义定义定义定义82598259A A 的优先权工作方法的优先权工作方法的优先权工作方法的优先权工作方法 R=0 固定优先权方式IR0 IR1 IR7 R=1,SL=0 优先权自动循环方式例:IR7IR6IR5IR4IR3IR2IR1IR0初始优先权为:76543210若ISR=01010000则 当 IR4 服务完毕后,优先权为:21076543

40、R=1,SL=1 优先权特殊循环方式此时,L2L1L0 规定循环开始时的最低优先权例:1 1 0 0 1 0 1IR5优先权最低此时,优先权为:IR7IR6IR5IR4IR3IR2IR1IR010765432 例例例例例例:若若若若若若使使使使使使808680868086系系系系系系统统统统统统中中中中中中825982598259A A A的的的的的的优优优优优优先先先先先先级级级级级级顺顺顺顺顺顺序序序序序序为为为为为为IRIRIR33,IRIRIR4,4,IRIRIR55,IRIRIR66 IRIRIR77,IRIRIR00 IRIRIR1,1,IRIRIR22,试试试试试试编编编编编编写

41、写写写写写一一一一一一段段段段段段程程程程程程序序序序序序实实实实实实现现现现现现该该该该该该优优优优优优先先先先先先顺顺顺顺顺顺序序序序序序,设设设设设设825982598259A A A的的的的的的偶偶偶偶偶偶地地地地地地址址址址址址为为为为为为202020H HH。根根根根根根据据据据据据题题题题题题意意意意意意要要要要要要求求求求求求,为为为为为为实实实实实实现现现现现现上上上上上上述述述述述述优优优优优优先先先先先先级级级级级级顺顺顺顺顺顺序序序序序序,应应应应应应先先先先先先确确确确确确定定定定定定OCWOCWOCW22,然然然然然然后后后后后后将将将将将将它它它它它它写写写写写写

42、入入入入入入825982598259A A A的的的的的的偶偶偶偶偶偶地地地地地地址端口:址端口:址端口:址端口:址端口:址端口:MOVAL,0C2H ;OCW2 OUT20H,AL;把把OCW2写写入入8259A的的偶偶地址端口。地址端口。OCW2:R SL EOI 0 0 L2 L1L01 1 0 0 0 0 1 0例例:试编一段程序,用以清除8086系统中8259A的ISR第6位(ISR6),8259A的偶地址为20H。为实现题意要求,应先确定OCW2的内容,然后将OCW2写入8259A的偶地址端口。OCW2:MOVAL,66H ;OCW2OUT20H,AL ;把OCW2写入8259A的

43、偶地址端口。R SL EOI 0 0 L2 L1 L00 1 1 0 0 1 1 03.OCW300ESMM SMM01PRR RISA0D7D0标志位(特殊屏蔽方式和中断查询方式操作命令字特殊屏蔽方式和中断查询方式操作命令字)有三个作用:有三个作用:(1)(1)设置和撤消特殊屏蔽工作方式设置和撤消特殊屏蔽工作方式设置和撤消特殊屏蔽工作方式设置和撤消特殊屏蔽工作方式 正常的屏蔽方式由OCW1 设置IMR 实现 特殊的屏蔽工作方式因因此此,可可以以通通过过设设置置或或撤撤消消特特殊殊的的屏屏蔽蔽工工作作方方式,动态改变优先权的结构。式,动态改变优先权的结构。正常的屏蔽方式设置特殊的屏蔽方式只要I

44、MR中的对应位没有置“1”,8259A就可以接受其中断请求。撤消特殊的屏蔽方式正常的屏蔽方式=1SMM1ESMM令=0SMM1ESMM令(2)(2)为为为为CPU CPU 读取读取读取读取82598259A A内部寄存器提供选择内部寄存器提供选择内部寄存器提供选择内部寄存器提供选择INAL,INTA1;IMR AL8259A 中的IMR由OCW1设置,对应奇地址端口,可以写入,也可以读出。8259A 中中IRR、ISR 只只能能读读出出,不不能能写写入入,都都对对应应偶偶地地址址端端口口。此此时时,可可先先写写入入OCW3,OCW3中中的的RR、RIS 规规定定从从偶偶地地址址端口读出的是端口

45、读出的是IRR 或或ISR 的值。的值。MOV AL,OCW3OUT INTA0,ALIN AL,INTA0 ;若若OCW3中中RR RIS 则读出的是则读出的是1 1 ISR1 0 IRR 例例例例:试试试试编编编编写写写写一一一一段段段段程程程程序序序序,以以以以实实实实现现现现将将将将80868086系系系系统统统统中中中中82598259A A的的的的IRRIRR,ISRISR,IMRIMR三三三三寄寄寄寄存存存存器器器器的的的的内内内内容容容容读读读读出出出出并并并并送送送送入入入入存存存存储储储储器器器器从从从从00800080HH开开开开始始始始的的的的数数数数组组组组中中中中,

46、设设设设82598259A A的偶地址为的偶地址为的偶地址为的偶地址为2020HH,奇地址为奇地址为奇地址为奇地址为2121HH。MOVAL,0AH;OCW3=0AH,指出要读指出要读IRR OUT20H,AL;OCW3写入写入8259A的偶地址端口的偶地址端口 INAL,20H;读回读回IRR的内容的内容 MOV080H,AL ;将将IRR的内容存入从的内容存入从080H开始的单元中开始的单元中 MOVAL,0BH ;OCW30BH,指出要读指出要读ISR OUT20H,ALINAL,20H ;读回读回ISR的内容的内容 MOV 081H,AL ;将将ISR的内容存入内容的内容存入内容 IN

47、AL,21H ;读回读回IMR MOV082H,AL;IMR内容存入内存内容存入内存(3)(3)使使使使82598259A A 和和和和CPU CPU 的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式 查询方式查询方式查询方式查询方式 某些情况下,当IF设置为0时,用查询方式为中断源服务。令OCW3 中的P=1,写入OCW3后,若之前有IRi有效,8259A 把CPU 的下一个读信号看作 信号,使ISR 中最高优先权的某一位置位,同时送以下数据至DB。MOVAL,OCW3;其中 P=1OUTINTA0,AL;发OCW3INAL,INTA0;读偶地址端口此时,AL

48、 中的数据1W2W1W0D7D0当前最高优先权IRi对应的编 码0 0 00 0 11 1 1IR0IR1IR71表示有中断请求 0 没有中断请求 例例:假如8259A的IR2输入引脚上有中断申请,但此时8086CPU内部的中断允许标志IF0,8086CPU应如何知道其8259A的IR2输入引脚上有中断请求?为使8086CPU知道其8259A IR2引脚上有中断申请,可用中断查询方式来解决(即CPU先发一个查询命令OCW3,然后接收8259A的查询字),其程序如下:OCW3为:MOVAL,0CH ;P1查命令OCW3OUT20H,AL;输出查询命令,即OCW3 写入8259A的偶地址端口 IN

49、AL,20H;读8259A的查询字七、七、七、七、82598259A A 对对对对ICWICW、OCWOCW的识别的识别的识别的识别8259A 只占两个端口,但ICW 有4个,OCW有3个。1.A0=0 (偶地址端口偶地址端口)写入的有:写入的有:ICW1,OCW2,OCW3(D4=1)用标志位识别用标志位识别2.A0=1 (奇地址端口奇地址端口)写入的有:写入的有:ICW2 ICW3 ICW4 OCW1按写入顺序识别按写入顺序识别注注意意:初始化过程中可能没有ICW3或ICW4,应根据具体情况确定。八、八、八、八、82598259A A编程举例编程举例编程举例编程举例例例 9.19.1 设8

50、259A应用于8088系统,中断类型号为08H0FH,它的偶地址为20H,奇地址为21H,设置单片8259A按如下方式工作:电平触发,普通全嵌套,普通EOI,非缓冲工作方式,试编写其初始化程序。分分析析:根据8259A应用于8088系统,单片工作,电平触发,可得:ICW1=00011011B;根据中断类型号为08H0FH,可得:ICW2=00001000B;根据普通全嵌套,普通EOI,非缓冲工作方式,可得:ICW4=00000001B。写入置此三字,即可完成初始化,程序如下:MOV AL,1BH ;00011011B,写入写入ICW1 OUT 20H,AL MOV AL,08H ;000010

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁