微机原理与接口技术7中断.ppt

上传人:牧羊曲112 文档编号:6284426 上传时间:2023-10-13 格式:PPT 页数:82 大小:672.50KB
返回 下载 相关 举报
微机原理与接口技术7中断.ppt_第1页
第1页 / 共82页
微机原理与接口技术7中断.ppt_第2页
第2页 / 共82页
微机原理与接口技术7中断.ppt_第3页
第3页 / 共82页
微机原理与接口技术7中断.ppt_第4页
第4页 / 共82页
微机原理与接口技术7中断.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《微机原理与接口技术7中断.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术7中断.ppt(82页珍藏版)》请在三一办公上搜索。

1、第7章 中断系统,7.1 中断的概念7.1.1 为什么要用中断?7.1.2 中断源7.1.3 中断系统的功能 中断优先权7.2 中断处理7.2.1 CPU响应可屏蔽中断的条件 7.2.2 CPU响应中断要自动完成的任务7.2.3 中断处理过程7.3 中断服务程序设计举例 中断服务程序设计步骤中断向量表的装入与修改,7.4 可编程中断控制器8259A7.5.1 8259A的芯片内部结构7.5.2 8259A的工作方式7.5.3 8259A的级联使用7.5.4 8259A 的控制字和工作方式7.5 8259A在微机系统中的使用7.6.1 8259编程命令7.6.2 8259A的使用,学 习 目 的

2、,通过对本章的学习,您应该能够达到下列要求:中断的概念及中断的用途中断类型及中断向量中断过程8259A中断原理中断在微机系统中的应用,重 点,中断的概念CPU响应可屏蔽中断的条件中断处理过程硬件中断与软件中断的比较中断向量的装入,7.1 中断的概念,7.1.1 中断概念外设向CPU发中断请求,CPU接收到中断请求并在一定条件下,暂时停止执行原来的程序而转去处理中断,处理好中断服务再返回继续执行原来的程序,就称为一个中断过程。中断是CPU被动的响应外设要求服务。为什么要用中断同步操作、并行处理;实时监控与信息捕捉;故障处理。,7.1.2 中断源,1.中断源:系统外部中断源:I/O设备:如键盘、打

3、印机等;数据通道:如软盘、硬盘等;实时时钟:如外部的定时电路;用户故障源:电源掉电等。内部中断源:执行中断指令;除法错;单步执行、断点中断、溢出中断等。,2.中断源识别目的:形成该中断服务程序的入口地址?中断向量或中断查询,中断源的分类 硬件中断:非屏蔽中断NMI(中断向量号为2)可屏蔽中断INTR 软件中断:溢出中断INTO(中断向量号为4)除法出错中断(中断向量号为0)单步中断(中断向量号为1)断点中断INT3(中断向量号为3)指令中断INT n(中断向量号为n),中断向量号:中断向量:中断向量表:,=中断类型码(256个),CS(高字)+IP(低字),其首地址=中断类型码*4,由中断向量

4、构成,即中断入口地址表,分为5个阶段:(1)中断请求(2)中断判优(3)中断响应(4)中断处理(5)中断返回,7.2 中断处理过程,(1)中断请求 中断源发送请求信号,外部中断由硬件产生,内部中断由指令产生。外部中断:CPU在每条指令执行的最后一个周期采样中断请求信号。(2)中断判优 如果有多个中断源提出中断申请,CPU可通过查询式或硬件电路自动完成中断优先权排队,然后响应优先权最高的中断申请,(3)中断响应 如果为内部中断或NMI中断,CPU自动形成中断类型码 如果是INTR中断,在IF=1的前提下,进入中断响应周期,从DB获取中断类型码 可屏蔽中断的响应周期:第一个总线周期:CPU送出中断

5、响应信号INTA 第二个总线周期:被响应的外设通过数据总线送中断类型码给CPU,中断响应过程(自动完成),关中断 保护断点(FLAG、CS、IP入栈)给出中断服务入口 执行中断服务程序,(4)中断处理 中断服务程序(自己编写),一般由以下几个部分按顺序组成,保护现场(寄存器入栈)开中断(允许中断嵌套)中断服务程序(需完成的功能)CPU关中断 恢复现场 中断返回,(5)中断返回 由IRET指令自动完成,断点恢复(IP、CS、FLAG出栈),CPU响应INTR中断的条件是(1)中断请求信号(2)开放总中断(3)在现行指令结束后响应中断,7.3 有关INTR中断的处理,8086系统中中断源种类很多,

6、但只有INTR中断可以由用户开发提供给外设使用,(1)需要中断请求中断请求触发器(2)多个外设需分别处理中断屏蔽触发器(3)CPU与外设的数据中转数据缓冲器(4)选择外设的端口号端口地址译码器(5)CPU执行完当前指令,在最后的一个T状态才采样INTR线,7.3.1 8086中有关INTR中断的触发器,7.3.2 中断优先权,为什么需要中断优先级?同时有多个中断请求,CPU如何选择中断源?中断嵌套时,CPU是否响应新的中断请求?,中断优先级确定方法 中断优先级从高到低:软件中断 非屏蔽中断 可屏蔽中断 单步中断软件查询 最简单的一种确定优先级的方法。即查询的顺序就是中断的优先级先查询的高。屏蔽

7、法程序查询移位法程序查询硬件优先权排队电路编码器与比较器组成的优先权排队电路中断控制器(8259A),1.软件查询确定中断优先权,(1)屏蔽法,IN AL,20HTEST AL,80HJNZ POWERTEST AL,40HJNZ DISKTEST AL,02HJNZ INPUT,若有8个中断源,则将它们的中断请求触发器组合起来,作为一个端口,假设端口号为20H。,1.软件查询确定中断优先权,(2)移位法,XOR AL,ALIN AL,20HRCL AL,1JC POWERRCL AL,1JC DISK,若有8个中断源,则将它们的中断请求触发器组合起来,作为一个端口,假设端口号为20H。,软件

8、查询优缺点:,询问次序就是优先级次序,原理简单省硬件,中断源优先级可由用户程序灵活确定缺点是询问很耽误时间,尤其在中断源很多时,2.优先级硬件排队电路1)优先级编码电路,中断嵌套,中断嵌套条件:1、中断1的服务程序中,应在保护现场后开中断STI;2、当中断2的优先级高于中断1时,才会发生中断嵌套,否则,不会发生中断嵌套,主程序 CPU关中断:CLI 设置中断向量 CPU开中断:STI 等待中断,7.3 中断服务程序设计举例,中断服务子程序 中断子程序名 PROC 属性 保护现场 STI 恢复现场 CLI IRET 中断子程序名 ENDP,7.4 用户中断服务子程序的装载,例:类型号为20H的中

9、断服务程序入口符号地址为INT-5,中断向量的装入方法。中断服务程序框架:INT-5 PROC NEAR.IRET INT-5 ENDP,中断向量指针:20H4=001 0 00 0000=80H 20H4+2=82H,用MOV指令中断向量的装入参考程序:,7.3:中断服务子程序的装载,CLIPUSH DSPUSH AXXOR AX,AXMOV DS,AXMOV AX,OFFSET INT-5MOV WORD PTR 080H,AXMOV AX,SEG INT-5MOV WORD PTR 082H,AXPOP AXPOP DSSTI,用串操作,中断向量的装入:,7.3:中断服务子程序的装载,C

10、LICLDPUSH ESXOR AX,AX MOV ES,AXMOV DI,4*20HMOV AX,OFFSET INT-5STOSW;DI+1DIAX,DI DI+2MOV AX,SEG INT-5STOSWPOP ESSTI,中断向量表的修改,用DOS系统功能调用INT 21H的35H功能获取原中断向量(中断向量=ES:BX.类型号=AL),并保存;用DOS系统功能调用INT21H的25H功能设置新中断向量(中断向量=DS:DX.类型号=AL);用DOS系统功能调用的25H功能恢复原中断向量。,例:用INT21H/35H设置新中断向量CLIPUSH DSMOV AL,NMOV DX,OFF

11、SET INT-SEVMOV AX,SEG INT-SEVMOV DS,AXMOV AH,25HINT 21HPOP DSSTI,思考题1.中断响应周期中,第一个中断响应脉冲信号向外部电路说明什么?第二个脉冲呢?解:第一个中断响应信号脉冲表示当前中断请求已被响应,第二个中断响应信号表示将最高优先级的中断类型码放在数据总线上。2.中断向量地址是。3.硬件中断可分为 两种。4.8086/8088最多能处理种 中断。5.非屏蔽中断的中断类型码是。6.对于掉电的处理,8086/8088是通过 来处理的。,中断服务程序入口地址,非屏蔽中断和可屏蔽中断,256,2,非屏蔽中断,7.在下面的中断中,只有 需

12、要硬件提供中断类型码。A.INTO B.INT n C.NMI D.INTR INTO是指溢出中断,是类型为4的内部中断;INT n 是指软件中断,其类型码即为指令中的n;NMI是非屏蔽中断,它的中断类型码为2;而只有可屏蔽中断需要硬件提供中断类型码。8.在中断响应周期内,将中断标志位IF清0是由 完成的。,D,硬件自动,7.4 可编程中断控制器 Intel 8259A,8259A的功能:具有8级优先权管理,可用9片扩展为64级中断系统接受中断请求,提供中断类型号具有屏蔽与开放中断的功能可编程选择不同工作方式8259A特点:具有对中断服务程序入口地址的寻址能力单片8259可处理8级中断级联时:

13、最多可用9片处理64级中断8259A的片内寻址A0=1、0,用于选择内部不同寄存器,8259A的引脚,双列直插式芯片28个引脚,数据总线,外设的8级中断请求输入,读信号:状态信息和中断向量,写信号:初始化命令字和操作命令字,向CPU发送中断请求信号,中断响应信号,地址线,级联信号:用于连接主从芯片完成多片间的信息传输,主从设备选择控制信号/允许缓冲线,8259A内部结构,IRR:用于保存IR0IR7的中断请求,Di=1:IRi有中断请求ISR:用于存放正在被服务的中断源,Di=1:IRi正在被服务IMR:用于存放对应中断请求信号的屏蔽状态,Di=1:IRi被禁止,7.4.2 8259A的中断工

14、作过程,有请求输入时,将IRR相应位置位;经IMR屏蔽电路处理后(IRR与IMR相与),送PR;PR检测出最高的中断请求位,并经嵌套处理考虑是否发送INT;若可发INT信号,则控制逻辑将INT信号送给CPU的INTR引脚若CPU处在开中断,则在当前指令完成后,发两个INTA信号;8259A接到第一个INTA信号后,使ISR位置位,IRR相应位复位;CPU启动另一个响应周期,输出第二个INTA脉冲,8259A 向数据总线送出中断类型码;同时,CPU取出此向量乘以4,得到中断服务程序的入口地址;中断响应周期完成,CPU执行中断服务程序,8259A工作 在自动结束AEOI或普通结束EOI模式下,使I

15、SR清0。,端口地址的确定,假设:8259A的端口地址为:20H,21H,某8位CPU 和 8259A的地址线如何连接?,A7 A0 0 0 1 0 0 0 0 0 20H 0 0 1 0 0 0 0 1 21H,分为3类(1)中断触发方式(2)中断优先权管理方式:中断屏蔽方式 设置优先权方式 中断结束处理方式(3)连接系统总线方式,7.4.3 8259A的工作方式,7.4.3 8259A的工作方式,1.中断触发方式(此方式由ICW1来设置)(1)边沿触发方式:上升沿触发,要求高电平信号具有一定的宽度,可避免毛刺现象引发的中断误判(2)电平触发方式:当中断输入端持续出现2个脉冲的高电平,表示有

16、1个中断请求,当该请求得到响应后,输入端必须及时撤除高电平,否则引发第二次中断。(3)中断查询方式:CPU用软件查询,通过读取查询字来确认是否有中断产生,7.4:8259A中断触发方式,2.中断屏蔽方式(1)普通屏蔽方式 用OCW1命令将中断屏蔽寄存器IMR的相应位置“1”。高优先级的中断才能中止低优先级的中断(2)特殊屏蔽方式 用于中断处理程序中。当要允许优先级低的中断进入,可采用特殊屏蔽方式.可用OCW3的D6D5=11设置,用OCW1命令将中断屏蔽寄存器IMR的相应位置“1”,同时将ISR对应位清“0”。此时除IMR中置1位对应的中断被屏蔽外,其它置0位对应的中断无论优先级高低都可得到响

17、应。,3.优先级的管理方式:一般全嵌套方式特殊全嵌套方式优先级自动循环方式优先级特殊循环方式,(1)全嵌套方式:8259A默认工作方式.特点:在全嵌套方式中,中断请求按固定优先级IR0IR7进行处理,IR0级中断的优先级最高。当一个中断被响应时,中断类型码被放到数据总线上,ISR中的对应位ISn被置1,然后进入中断服务程序。一般情况下(除了中断自动结束方式外),在CPU发出中断结束命令(EOI)前,此对应位一直保持“1”,需使AEOI=0。仅级别高的中断才能中断级别低的中断。(2)特殊全嵌套方式 用途:多片级联方式,特殊全嵌套方式仅设置在主片中.特点:和全嵌套方式基本相同,不同的是:在处理中断

18、时,可响应同级中断,从而实现对同 级中断请求的特殊嵌套.,思考题:当有3片8259A级联时,主片采用特殊全嵌套方式,从片采用全嵌套方式,其中断的优先级顺序应该为?,(3)优先级自动循环方式:(由OCW2决定)用途:多个中断源优先级相等的场合。特点:优先级是在变化的。优先权初始化顺序为IR0IR7,一个设备中断被响应后,其优先级自动降为最低,比它低一级的中断源优先级升到最高。如:IR4中断请求被响应后,此方式下,中断优先级自动变为:IR5 IR6 IR7 IR0 IR1 IR2 IR3 IR4(4)优先级特殊循环方式 与优先级自动循环方式不同点:用户用程序指定初始的最低优先级的中断源。例如设置I

19、Ri为最低优先级,则最高优先级为IRi+1,其它各级按循环方式类推。,4.中断结束处理的方式,中断自动结束方式一般的中断结束方式特殊的中断结束方式,(1)中断自动结束方式:用于系统中只有一片8259A,多个中断不会嵌套的情形。系统一进入中断处理,就将当前中断服务寄存器ISR的对应位清除。对8259A来说,好像已经结束了当前中断。在命令字ICW4中将AEOI(D1)位置“1”。(2)普通的中断结束方式(非自动EOI):用在全嵌套的情形。CPU用OUT指令往8259A偶地址发一个EOI命令,8259A将使ISR中优先级别最高的非零位(正在服务的最高优先级)清零。结束当前正在处理的中断。用操作命令字

20、OCW2中的R=0,SL=0,EOI=1 的设置来实现。在命令字OCW2=0010000B=20H,(3)特殊的中断结束方式(非自动EOI),在非全嵌套方式下,通过向8259A发一条特殊中断结束命令来判断要清除ISR中置1位中的哪一位。用操作命令字OCW2中的R=0,SL=1,EOI=1 的设置来实现,此时OCW2中的L2、L1、L0这3位指出了到底要清除ISR中的哪一位。OCW2=01100L2L1L0 往偶地址端口输出OCW2命令。OCW2中:EOI=1、SL=1、R=0是特殊中断结束命令。,5.连接系统总线方式,(1)缓冲方式:8259A通过总线驱动器和数据总线相连,这就是缓冲方式。用于

21、多片8259A级联时,此时主片SP/EN作为总线驱动器的启动信号连接到CE端,从片SP/EN控制数据的方向。(2)非缓冲方式:当系统中只有单片8259A时,一般将它直接与数据总线相连。或者8259A片数不多的情况下,也可直接与数据总线相连。单片时,8259A SP/EN接高电平;多片时,主片SP/EN接高电平,从片SP/EN接低电平,8259A缓冲方式下级连结构,8259A非缓冲方式下级连结构,3,6,1#从片挂在主片的IR6,2#从片挂在主片的IR3,6 8259A的级联应用,?,主片:IR3有申请 IRR:0000 1000 ISR:0000 1000主片向CPU发INTR信号CPU发响应

22、信号INTA主片收到INTA主片向从片送识别码:CAS0CAS2=011,在2#从片:若IR5有申请 IRR:0010 0000 ISR:0010 0000向主片发INT信号2#从片与识别码一致2#从片通过数据总线送出中断类型码,7 中断查询工作方式,与前面所讲8259A工作在向量中断方式不同,查询中断工作方式具有以下特点:外设的中断请求信号送入8259A,但是8259A不使用INT引脚向CPU发送中断请求CPU的IF=0,即使得CPU不会响应INT引脚上产生的中断CPU通过软件定期或循环查询8259A的状态(读入查询字)来确认中断源,7.4.4 8259A 的编程 分两种:初始化编程和工作方

23、式编程。初始化编程:由CPU向8259A送24个字节的初始化命令字,一旦设定,在中断工作过程中一般不再改变。工作方式编程:由CPU向8259A送3 个字节的工作命令字,以规定8259A的工作方式,用于动态控制中断处理过程。8259A的初始化命令字:ICWi(i=14)ICW1:芯片控制初始化命令字 ICW2:中断类型码设置 ICW3:用于级联,主片/从片的初始化命令字 ICW4:方式控制初始化命令字,(1)ICW1(A0=0)芯片控制初始化命令,ICW1必须写入偶地址端口中。D7D5:在系统中不用,为1为0都可以,是A7A5。D4:设置为1,指示ICW1的标志。D3(LTIM)=1,表示中断请

24、求为电平触发方式,=0,表示中断请求为边沿触发方式。D2(ADI):在8086/8088中不起作用。D1(SNGL):指出8259A有否级联。=1,表示系统中有一片8259A,不需写ICW3=0,表示系统中有多片8259A,需要写ICW3 D0(IC4):指出后面是否设置ICW4。使用ICW4时 D0必须为1。,8259A 的初始化命令字,(2)ICW2(A0=1)中断类型码的设置,ICW2写入8259A的奇地址端口。T7T3:设置中断类型码的高5位,低3位可以为0D2D0:由中断请求引脚IR的编号自动插入,8259A 的初始化命令字,解:,ICW1=0001 0011B ICW2=0000

25、1000B MOV AL,00010011B OUT 20H,AL MOV AL,00001000B OUT 21H,AL,例1:8259A采用前沿触发,单片使用,需要ICW4,假设IR0的类型码为08H,试确定ICW1,ICW2。已知8259A端口地址:20H,21H,【问】8259A的ICW2设置了中断类型码的哪几位?试说明对8259A的ICW2分别设置为:30H、38H、36H时有什么差别?,【答】8259A的ICW2设置了中断类型码的D7D3位。30H和36H对应的高5位相同,均为:00110,表示中断类型码区别于低3位;而38H的高5位为:00111,与前面的两者不可能是同片8259

26、中断。,8259A 的初始化命令字,(3)初始化命令字ICW3:级联方式结构,需要分别对主片和从片进行设置,8259A 的初始化命令字,(3)ICW3(A0=1)级连方式的设置 ICW3写入8295A的奇地址端口。主片ICW3的格式:指出主8259哪个引脚连有从8259,对应位置1。从片ICW3的格式:指出从片8259 连在主8259哪个引脚上,由D2D1D0指出。,主片,从片,8259A 的初始化命令字,例2:现有一主片8259A的IR3和IR6接了2个从片。主片端口地址:20H,21H;1#从片端口地址:A0H,A1H 试设置ICW3。,8259A 的初始化命令字举例,主片:ICW3=01

27、00 1000=48H从片1#:ICW3=0000 0011=03H从片2#:ICW3=0000 0110=06H主片ICW3的初始化程序段:MOV AL,48H OUT 21H,AL1#从片ICW3的初始化:MOV AL,03H OUT 0A1H,AL,解:,(4)ICW4的格式(A0=1)ICW4为方式控制初始化命令字,写入奇地址端口。SFNM:=0,一般全嵌套方式;=1,特殊全嵌套方式(Specific Full Nested Mode)BUF:=0,非缓冲方式;=1,缓冲方式(buffered)M/S:主片(Master)/从片(Slave)若BUF=1,M/S=1,作主片,M/S=0

28、,作从片 BUF=0,M/S无意义AEOI:=0,中断非自动结束;=1,中断自动结束(Automatic End Of Interrupt)uPM:=0,用于8位机;=1,用于16位机,8259A 的初始化命令字,8259A的工作命令字:OCWi(i=13)OCW1:中断屏蔽命令字;OCW2:优先级循环方式和中断结束方式;OCW3:查询方式,特殊屏蔽方式,读状态等。,8259A 的操作命令字,在对8259A进行了初始化编程后,芯片已经作好接收中断请求的输入准备。在8259A工作期间若需要改变8259A的工作方式,可由CPU发送操作命令字OCW进行控制。,(1)OCW1的格式(A0=1)OCW1

29、称为屏蔽命令字,写入8259A的奇地址端口。当OCW1某位=1,表示对应的中断请求被屏蔽。,8259A的操作命令字,用于设置优先级循环方式和中断结束方式,写入偶地址单元。D4D3:=00,特征位 D7(R):=1,优先级循环方式;R=0,固定方式。D5(EOI):=1,普通EOI方式。在中断服务完毕,发中断结束命令,使当前ISR的最高优先权的ISn复位。D5(EOI):=0,未定义。D6(SL):=1,用L2、L1、L0指定中断等级。在ICW4中,若AEOI=1,自动清除当前ISn。AEOI=0,ISn要用EOI清除。,(2)OCW2的格式(A0=0),8259A的操作命令字,8259A的操作

30、命令字,OCW2的R、SL、EOI格式,D7 D6 D5,D7 D6 D5=001:使当前最高优先级的正在服务ISR位清0。例1:普通EOI命令.(中断服务程序).MOV AL,00100000B OUT 20H,AL IRET,D7 D6 D5=011:使L2L0所指定IR对应的ISR清0。例2、特殊EOI命令:MOV AL,01100101B OUT 20H,AL IRETIR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0(原)ISR:0 0 1 1 0 0 0 0(新)ISR:0 0 0 1 0 0 0 0(中断源IR5),D7 D6 D5=101:使当前正在服务ISR位清0

31、,并使其对应IR的优先级变为最低。例3、自动循环、普通EOI命令 MOV AL,10100000B OUT 20H,AL IRET执行前 ISR:0 1 0 0 1 0 0 0 优先级:7 6 5 4 3 2 1 0执行后 ISR:0 1 0 0 0 0 0 0 优先级:3 2 1 0 7 6 5 4,D7 D6 D5=100:进入自动循环优先状态,在CPU响应某一IR请求后自动将其ISR位清0,并将该IR的优先级变为最低。1 0 0 0 0 0 0 0D7 D6 D5=000:退出自动循环优先状态,此后按AEOI方式使ISR清0,优先级结构保持固定方式不变。0 0 0 0 0 0 0 0,D

32、7 D6 D5=111:同时完成普通EOI命令和设置最低优先级命令。例4、循环指定、普通EOI命令(有多个中断时)。要把IR6定为最低(L2L1L0=110)MOV AL,11100110B OUT 20H,AL执行前 ISR:0 1 1 0 0 1 0 0 优先级:2 1 0 7 6 5 4 3执行后 ISR:0 1 0 0 0 1 0 0 优先级:0 7 6 5 4 3 2 1,D7 D6 D5=110:使L2L0所指定IR为最低优先级。该命令可用于循环优先的优先级结构改变,也可用于固定优先结构中设定优先级顺序。例:设置优先权命令。若知当前IR5最高,想把IR7定为最高优先权。(实际上应该

33、把IR6置为最低优先权)。此时,L2L1L0=110.MOV AL,11000110B OUT 20H,AL;IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0(前)优:2 1 0 7 6 5 4 3(后)优:0 7 6 5 4 3 2 1,(3)OCW3的格式(A0=0),用于提供查询方式,特殊屏蔽方式,读状态等操作 D4D3=01,特征位1.查询中断:P=1时,表示查询。例:IR4引脚上有中断请求,CPU执行一条输入指令,从偶地址端口读得以下查询字:,8259A的操作命令字,P=0时,读IRR或ISR。,2.读状态OCW3=00001010B,RR=1,RIS=0,读IRR;O

34、CW3=00001011B,RR=1,RIS=1,读ISR。若要读IMR,不须设OCW3的查询命令,直接从奇地址端口读入IMR。3.特殊屏蔽方式操作ESMM=1,SMM=1,置特殊屏蔽方式,8259A脱离当前优先级方式.ESMM=1,SMM=0,撤销特殊屏蔽方式ESMM=0,SMM不起作用,8259A的操作命令字,4.8259A哪些寄存器的内容可读出?设8259A地址20H,21H,1)读中断屏蔽寄存器IMR内容:中断屏蔽字 IN AL,21H;A0=12)要读出ISR或IRR的内容,A0=0必须设置OCW3中的 D4D3 D2=010:(1)读IRR:设置OCW3:D1D0=10 MOV A

35、L,00001010B IN AL,20H(2)读ISR:设置OCW3:D1D0=11 MOV AL,00001011B IN AL,20H,8259A的操作命令字,3)此外,查询字也可读出,A0=0。先写入P=1的OCW3查询命令字,【问】8529A仅占用两个I/O地址,它是如何区别4条ICW命令和3条OCW命令的?在地址引脚A01时读出的是什么?,【答】A0=0写ICW1、OCW2、OCW3,以其特征位区分(D4D3分别是1X,00,01)。A0=1写ICW2、ICW3、ICW4、OCW1,写ICW1后顺序写的是ICW2、ICW3、ICW4。A0=0读IRR、ISR、查询字,由OCW3的R

36、R和RIS两位区分IRR和ISR,通过OCW3的P位向8259发查询命令后读出的是查询字。A0=1时,读IMR。,编写程序,将8259的IRR、ISR和IMR寄存器的内容送到内存0050H开始的单元中。,MOV AL,0AHOUT 20H,ALIN AL,20HMOV 0050H,ALMOV AL,0BHOUT 20H,ALIN AL,20HMOV 0051H,ALIN AL,21HMOV 0052H,AL,分析:要读IRR,则OCW3的D1D0=10;要读ISR,则OCW3的D1D0=11;IRR和ISR在偶地址中,IMR在奇地址中。,8259A命令字的使用方法,ICW按顺序写入(先写)IC

37、W1 ICW2(ICW3)(ICW4)ICW2、ICW3、ICW4为同址顺序写入(奇地址)OCW按需要写入(后写)OCW1、OCW2、OCW3无写入顺序 OCW2、OCW3为同址识别写入(偶地址、标志位),7.4.6 8259A在微机系统中的使用,图8-12 8259A的初始化流程,1.8259编程命令1.初始化命令字 ICW1ICW42.操作命令字 OCW1OCW3,2.8259A的使用,例1:单片使用8259A的初始化(1)要求:IBM PC/XT 8259A,单片,边缘触发,全嵌套方式,设定0级中断类型码为08H.端口地址:20H,21H.(2)硬件连接:CAS2CAS0不用,SP/EN

38、接+5V.(3)初始化命令字:ICW1=0001 0011B;边缘触发,单片,需ICW4 ICW2=0000 1000B;设置类型码的高5位 ICW4=0000 0001B;全嵌套,非缓冲,非自动EOI,16位机,8259A初始化编程,.MOV AL,13H;ICW1:边沿触发.单片.要ICW4OUT 20H,ALMOV AL,08H;ICW2:IRQ0中断类型为08HOUT 21H,AL MOV AL,01H;ICW4全嵌套.8086系统OUT 21H,AL;普通EOI方式,例2:1片8259A工作于全嵌套方式.若要求在IR3的中断服务中,允许IR5进入,该如何作?,1)在IR3中断服务程序

39、开始关中断(CLI)用OCW3设置特殊屏蔽方式取原屏蔽字保存将IMR3,IMR4,IMR6,IMR7置1,只允许IR5进入开中断(STI)2)在IR3中断服务程序后适当处恢复原屏蔽字用OCW3撤销特殊屏蔽方式,7.4:8259A的应用举例,例3:一片从8259的INT端连在主8259的IR3上,主8259的IR0和IR5端分别引入两个中断,从8259的IR2和IR3引入两个中断.主8259中断类型码为:40H,45H;中断服务程序的段基址为1000H,偏移地址为1050H和2060H.主8259端口地址为:FFE8H,FFE9H从8259中断类型码为:32H,33H;中断服务程序的段基址为20

40、00H,偏移地址为5440H和3620H.从8259端口地址为:FFFAH,FFFBH,主8259A的初始化程序段:MOV AL,11H;定义ICW1,边缘触发,级联,单级,需ICW4 MOV DX,0FFE8H OUT DX,AL;ICW1送偶地址端口MOV AL,40H;定义ICW2,使IR3的中断类型码为40HMOV DX,0FFE9H;送奇地址端口OUT AL,DXMOV AL,08H;定义主片ICW3,IR3上接从片 OUT DX,AL;ICW3送奇地址端口MOV AL,11H;定义ICW4,8086,特殊完全嵌套方式OUT DX,ALMOV AL,0D6H;定义OCW1,屏蔽IR0

41、,IR3,IR5以外的中断申请OUT DX,AL MOV AL,80H;定义OCW2,优先级自动循环MOV DX,0FFE8HOUT DX,AL,从8259A的初始化程序段:MOV AL,11H;定义ICW1,边缘触发,级联,单级,需ICW4 MOV DX,0FFFAH OUT DX,AL;ICW1送偶地址端口MOV AL,30H;定义ICW2MOV DX,0FFFBH;送奇地址端口OUT AL,DXMOV AL,03H;定义从片ICW3,INT接主片的IR3 OUT DX,AL;ICW3送奇地址端口MOV AL,11H;定义ICW4,8086,特殊完全嵌套方式OUT DX,ALMOV AL,

42、0F3H;定义OCW1,屏蔽IR2,IR3以外的中断申请OUT DX,AL MOV AL,80H;定义OCW2,优先级自动循环MOV DX,0FFFAHOUT DX,AL,(1)中断类型为40H的中断向量设置:服务程序的入口地址:1000H:1050H 20H*4=0080H 0080H+2=0082H PUSH DS XOR AX,AX;清AX MOV DS,AX MOV AX,1050H MOV 0080H,AX;设中断服务程序的入口地址,送IP MOV AX,1000H MOV 0082H,AX;送CS POP DS,1、8259A中 IRR、IMR和 ISR三个寄存器的作用是什么?2、某时刻8259A的IRR内容是08H(00001000B),说明。某时刻8259A的ISR内容是08H,说明。在两片8259A级连的中断电路中,主片的第5级IR5 作为从片的中断请求输入,则初始化主、从片时,ICW3的控制字分别是和。,习题,作业P197,23459,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号