CH9 微型计算机中断系统_第1页
CH9 微型计算机中断系统_第2页
CH9 微型计算机中断系统_第3页
CH9 微型计算机中断系统_第4页
CH9 微型计算机中断系统_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第九章 第九章 微型计算机中断系统9-1 概述9-2 中断处理过程9-3 中断优先级和中断嵌套9-4 可编程中断控制器8259A教材第七章内容2第九章9-1 概述 一、中断概念1、中断思想的提出uCPU与外设数据传送时的矛盾:高速CPU与慢速外设;u数据传送方式:无条件方式、查询方式 缺点: 外设有限制或处理器运行时间极大浪费,工作效率低。 解决办法: 一方面设法提高外设的工作速度; 另一方面提出设想: 外设主动提出请求,处理器响应处理中断思想3第九章2、中断的定义uCPU正常运行程序时,由于CPU的内部事件或外设请求,引起CPU暂时中断正在运行的程序,转去执行相应的外设(或内部事件)的服务

2、程序,程序执行完后又返回到原先的程序继续执行,这一过程称为中断。u中断流程如下页图所示4第九章5第九章3、使用中断的好处u分时操作 提高效率 CPU在启动外设后与外设同时工作。当外设的数据准备好向CPU发中断请求,CPU响应处理。CPU可让多个外设同时工作,这将加快数据传送速度、提高CPU的效率。u实现实时处理 实时控制时,现场各种信息可随时发出中断请求u故障自行处理 将计算机在运行的过程中常遇到的意外情况,如:电源突跳,存储器出错,运算溢出等设计成中断,计算机可利用中断系统自行处理或告警。6第九章4、与中断相关的基本概念u中断源u中断类型号u中断请求u中断响应u中断服务程序u中断返回u中断向

3、量u中断向量表u中断优先级u中断嵌套u中断屏蔽7第九章5、中断系统的基本功能(1)中断响应,中断服务,中断返回,中断屏蔽;(2)中断优先级排队;(3)中断嵌套。注意:u 这些功能是由软件与硬件共同构成的系统完成的。u 本章讨论与8086/8088CPU相配合的中断系统8第九章 二、中断的分类(中断源的分类)u8086/8088可以处理256种不同的中断。u两类:内部中断和外部中断。u中断源示意图如下图:8259A可屏蔽可屏蔽中断请求中断请求中断逻辑中断逻辑INTO指令指令INT n指令指令除法除法出错出错单步单步(TF=1)非屏蔽中断请求非屏蔽中断请求8086/8088CPUNMIINTR内部

4、中断内部中断外部中断外部中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断9第九章 1、外部中断(硬件中断)u不可屏蔽中断NMI 不能用软件屏蔽,CPU必须响应; 上升沿触发; 中断的类型号为2。u可屏蔽中断INTR IF=1,CPU响应中断;IF=0,CPU不响应; 高电平触发,高电平维持到CPU响应中断时结束; 中断类型号由中断控制器8259A或硬件电路提供。10第九章2、内部中断(软件中断) 由三种情况引起:u由软中断指令INT n引起 INT n指令,类型号n(0-255)。u由CPU运算错误引起 除法错中断:类型号0 溢出中断:类型号4,由INTO指令引起的中断;11第九章2、内部中断(软

5、件中断)(续)u由调试程序debug设置的中断单步中断: 类型号1,TF=1时产生(当前指令需执行完); Debug状态下的T命令执行时产生;断点中断: 类型号3,INT 3指令引起的中断,属于软件中断 Debug状态下由G命令设置,相当于是在程序的某个位置设置了一条INT 3 。12第九章u引脚 INTR、INTA#、NMIu指令 INT n、INTO、IRET三、与中断有关的引脚和指令13第九章 不同类型的中断处理过程略有不同,本节所介绍的内容主要针对可屏蔽中断的处理过程。 可屏蔽中断处理过程步骤:u中断请求u中断响应u保护现场u转入执行中断服务子程序u恢复现场u中断返回9-2 中断处理过

6、程14第九章NY保护现场保护现场中断服务中断服务恢复现场恢复现场返回返回取下一条指令取下一条指令执行指令执行指令转中断服务程序转中断服务程序响应中断响应中断关中断关中断保护断点保护断点寻找中断源寻找中断源指令结束指令结束有中断请求有中断请求NY可屏蔽中断处理流程图可屏蔽中断处理流程图15第九章 1、CPU响应可屏蔽中断的条件 (1)外设提出中断申请; (2)本中断未被中断控制器屏蔽; (3)本中断优先级最高; (4)CPU允许中断;一、CPU响应可屏蔽中断过程16第九章2、CPU响应可屏蔽中断的过程uCPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,则CPU响应中断。u响

7、应过程中自动依次完成以下工作:CPU向外设发两个/INTA ,外设收到第2个/INTA 后,立即往数据线上给CPU送中断类型号。CPU从数据线上读取中断类型号;将flags入栈; 保护现行程序运行结果产生的状态和控制标志。CPU响应中断的过程17第九章关中断(清IF和TF) 为了防止在进入中断处理,但并未执行中断程序这段时间内又响应新的中断。保护断点 将当前指令的下一条指令的CS和IP压入堆栈,使中断处理完成后能正确的回到原程序继续执行。转入相应的中断服务子程序;中断返回 从堆栈中弹出断点的地址和flags的内容,返回主程序的断点处,继续执行主程序。CPU响应中断的过程18第九章19第九章u确

8、定中断源的方法:查询中断和矢量中断。查询中断:一种软件查询法,中断响应后,启动中断查询程序,依次查询哪个外设申请了中断,检测以后,转到此设备预先设置的中断服务程序处执行。这种中断处理过程称为查询中断。 特点:速度慢,且后检测的设备服务机会少。矢量中断:中断响应后,外设中断接口电路将中断类型号送给CPU,CPU根据中断类型号找到对应的中断服务程序的入口地址送入CS或IP,然后转入相应的中断服务程序处执行。这种中断处理过程称为矢量中断,也叫向量中断。 特点:速度快。二、中断向量表20第九章 1、中断向量表 又称:中断服务程序的入口地址表。 中断服务程序的入口地址又称中断向量u8086在存储器最低的

9、1KB(00000H003FFH)空间内,存放256个中断的中断向量。u每个类型号的中断向量占4字节,高2字节存放段基址,低2字节存放偏移地址;u按照中断类型号的顺序依次将其中断向量存在1K的内存表中,格式如下: 21第九章u中断类型号n与中断向量的地址关系:n4中断向量地址u(4n 和4n+1)IP (4n+2和4n+3)CS22第九章【例】某中断的类型号为68H,中断的操作过程如下: 步骤分析:取中断类型号68H;计算中断向量地址68H*4=1A0H;取中断入口地址的偏移地址送入IP,段地址送入CS;转向中断服务程序;中断返回到INT 68H指令的下一条指令。23第九章类型类型69H中断向

10、量中断向量A0002050类型类型67H中断向量中断向量中断处理程序中断处理程序STIPUSH DS.IRET2050INT 68HMOV AX,00:19C0:1A00:1A20:1A4A000IPCSA000:2050向量地址向量地址=68H4=1A0H中断操作过程图示24第九章 2、中断向量(中断入口地址)的设置 IBM PC对256种中断类型已经进行地址分配,附录D中给出中断向量表。u概念:将中断服务程序的入口地址置入中断类型号所对应的中断向量表中。u两种方法:用指令设置;用DOS功能调用设置。25第九章 用指令设置中断服务程序的入口地址表MOV AX,0MOV ES,AXMOV BX

11、,N*4MOV AX,OFFSET INTRADMOV ES:BX,AXMOV AX,SEG INTRADMOV ES:BX+2,AX STI .INTRAD:PUSH AX . IRETPUSH DSMOV AX,0MOV DS,AXMOV BX,N*4MOV AX,OFFSET INTRADMOV BX,AXMOV AX,SEG INTRADMOV BX+2,AXPOP DS STI .INTRAD:PUSH AX . IRET26第九章 利用DOS功能调用设置中断服务程序的入口地址表 27第九章 PUSH DS MOV AX,SEG INTRAD; MOV DS,AX MOV DX,OF

12、FSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS 利用DOS功能调用设置中断服务程序的入口地址表 28第九章 注意:u为了避免直接使用中断向量的绝对地址,一般利用DOS功能调用INT 21H设置或取出中断向量。u应用时一般在设置自己的中断向量时,应先保存原中断向量,再设置新的中断向量,在程序结束前恢复原中断向量。 29第九章【例】利用利用DOS功能设置中断向量和取中断向量。功能设置中断向量和取中断向量。 MOV AL,N ;取中断向量取中断向量,并存中断向量并存中断向量 MOV AH,35H INT 21H PUSH ES PUSH BX PUSH

13、DS MOV AX,SEG INTRAD;设中断向量设中断向量 MOV DS,AX MOV DX,OFFSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS POP DX;恢复原中断恢复原中断 POP DS MOV AL,N MOV AH,25H INT 21H INTRAD: IRET 30第九章 3、中断类型号的获取 矢量中断中,中断入口地址依赖中断类型号,中断型号获取方法:u对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号04;u对于用户自己确定的软件中断INT n,类型号由n决定;u对于INTR引脚上的

14、中断:由硬件电路设计产生中断类型号。可用8259A获取中断类型号。31第九章三、中断服务子程序1、中断服务子程序特点为”远”过程(类型为FAR) 要用IRET指令返回2、中断服务子程序一般结构形式保护现场(PUSH regs) 开中断(STI) 进行中断处理 关中断(CLI) 恢复现场(POP regs) 中断返回(IRET) 32第九章【总结】中断处理过程中软件及硬件各自完成的功能归纳1.主程序中的初始化 (1)设置中断向量; (2)设置8259的中断屏蔽寄存器的中断屏蔽位; (3)设置CPU中断允许标志位IF(开中断STI);2.硬件(外设接口)和CPU自动完成 (1)外设向CPU INT

15、R端发出请求; (2)CPU发两个/INTA给外设; (3)CPU取中断类型号 n; (4)CPU自动将flags,CS,IP内容压入堆栈;33第九章 (5)清除IF,TF,禁止外部中断和单步中断; (6)从中断向量表中取(4n)地址中内容IP,取(4n+2)地址中内容CS; (7)转向中断服务子程序。3.中断服务子程序【注意】 (1)对重复前缀的指令作为一条处理; (2)遇到STI和IRET,要执行两条后,再响应中断; (3)CPU自动清除IF,TF位,在中断服务程序不允许产生中断,如需要则必须开中断。34第九章设计一个能接收一个中断源的中断系统,用8088CPU。【例】35第九章 主程序初

16、始化将中断服务程序的入口地址装入中断向量表 PUSH DSMOV DX,OFFSET INTER1 MOV AX,SEG INTER1 MOV DS,AXMOV AL,80HMOV AH,25HINT 21HPOP DSSTI可屏蔽中断处理程序INTER1 PROC FARPUSH AX ;保护现场STI ;开中断以便允许 ;多重中断 . . ;中断处理CLI ;关中断POP AX ;恢复现场 IRET ;返回主程序INTER1 ENDP 36第九章 CPU处理中断的一般原则:u多个中断源同时向CPU请求中断,CPU由中断优先级排队决定,先响应优先级高的中断请求。 级别不同的中断同时发生时,由

17、高到低依次处理。 级别相同的中断同时发生时,按事先设定的次序处理u当CPU正在处理中断时,有更高优先级别的中断请求,并且IF1,CPU能响应更高级别的中断请求,而屏蔽掉低级的中断请求,形成中断嵌套,或称为多重中断。9-3 中断优先级和中断嵌套37第九章 1、不同级别中断优先级顺序 计算机中的中断源,优先级从高到低的顺序如下: (1)内部中断(除法错,INTO,INT n) (2)NMI (3)INTR (4)单步中断一、中断优先级38第九章 2、可屏蔽中断的优先级设定方法u软件查询中断优先级 查询程序的次序,决定了外设优先级别的高低,先测试的中断源优先级别最高,依次下降。u硬件查询优先方式菊花

18、链法 u矢量中断优先级 设置一般是采用中断优先级控制器(如8259A)。 39第九章可屏蔽中断的优先级设定软件查询中断优先级1中断请求寄存器PORTINTR0INTR1INTR2INTR3INTR4INTR5INTR6INTR7CPUINTR缓冲器.D7D0译码40第九章软件查询中断优先级 0号申请中断 1号申请中断保护现场中断处理程序.恢复现场中断返回0号外设服务程序1号外设服务程序YYNN中断服务子程序处理流程41第九章u移位法 XOR AL,AL IN AL,PORT RCR AL,1 JC INTR0 RCR AL,1 JC INTR1 INTR0: INTR1:软件查询中断优先级中断

19、服务子程序片断u测试法 XOR AL,AL IN AL,PORT TEST AL,01H JNZ INTR0 TEST AL,02H JNZ INTR1 INTR0: INTR1:42第九章可屏蔽中断的优先级设定硬件查询优先方式(菊花链法)43第九章矢量中断优先权控制器的原理图可屏蔽中断的优先级设定矢量中断优先级中断服务寄存器 中断类型寄存器优先级管理逻辑 中断请求寄存器 中断屏蔽寄存器 由中断请求决定IR0IR1IR2IR744第九章u中断嵌套:当CPU正在处理中断时,有更高优先级别的中断请求,并且IF1,CPU能响应更高级别的中断请求,而屏蔽掉低级的中断请求u以8259A为例介绍,8259

20、A在完全嵌套优先级工作方式下,中断优先级的顺序为:IR0、IR1IR7。 二、中断嵌套45第九章下面是一个中断嵌套的例子46第九章【说明】u主程序必须有开中断指令,使IF1,才能响应中断。进入中断处理程序时,系统自动关中断,在中断服务程序中必须有STI开中断指令,这样才可以允许其它中断进入实现中断嵌套。u中断结束返回前要有EOI中断结束命令,用来清除中断服务寄存器中的对应位,允许低级中断进入。最后有中断返回指令IRET,使程序返回到被中断的程序的断点处。47第九章u中断处理程序中如果没有STI指令,中断处理中不会受其它中断影响,在执行IRET指令后,因为自动返回中断断点及中断标志寄存器PSW的

21、内容,当IF的值为1,系统便能开放中断。u一个正在执行的中断处理程序,中断服务寄存器相应位置“1”,在开中断(IF1)的情况下,能够被优先级高于它的中断源中断。但如果中断处理中提前发出了EOI命令,则清除了正在执行的中断服务,中断服务寄存器置“1”位被清0,允许响应同级或低级的中断申请。但这种情况要尽量避免,防止重复嵌套,使优先级高的中断不能及时服务,因此一般EOI结束命令放在中断返回指令IRET前面。48第九章 设系统有两个外部中断源,类型号分别是40H、41H。试用链式结构实现8086中断系统的扩展。要求: a.画出实际电路。 b.编写程序,实现不同的中断能转入相应的服务程序入口处。【例】

22、49第九章解:a.画出实际电路50第九章. MOV DX,0FFSET INTER1 MOV AX,SEG INTER1 MOV DS,AX MOV AL,40H MOV AH,25H INT 21H.b.主程序 MOV DX,0FFSET INTER2 MOV AX,SEG INTER2 MOV DS,AX MOV AL,41H MOV AH,25H INT 21H 51第九章 中断服务程序 INTER1 PROC FAR PUSH AX ;保护现场 STI ;开中断,以实现多重中断 . POP AX ;恢复现场 IRET INTER1 ENDP INTER2 PROC FAR PUSH A

23、X ;保护现场 STI ;开中断,以实现多重中断 . POP AX ;恢复现场 IRET INTER2 ENDP52第九章 主要内容: 功能和引脚 内部结构 8259A的中断管理方式 8259A的编程方式 8259A的中断级联及举例9-4 可编程中断控制器8259A53第九章 1、主要功能 (1)具有8优先级控制,通过级联可以扩展到64级 优先级控制; (2)每一级中断可由程序单独屏蔽或允许; (3)可提供中断类型号传送给CPU; (4)可以通过编程选择多种不同工作方式。一、功能和引脚54第九章 2、引脚55第九章 D7D0:双向数据线,三态,与系统的 数据总线相连。 IR7IR0:外设的中断

24、请求信号输入端,输入; 中断级联时,连接8259A从片INT端。 RD#:读命令信号,输入,低电平有效,用来控制 数据由8259A读到CPU。 WR#:写命令信号,输入,低电平有效,用来控制 数据由CPU写到8259A。 CS#: 片选信号,输入,连译码器输出。RDRD56第九章 A0:选择8259A的两个端口,输入,连低位地址线。 INT:向CPU发出的中断请求信号,输出 与CPU的INTR端相连。 INTA#:CPU给8259A的中断响应信号,输入; 8259A要求两个负脉冲的中断响应信号; 第1个是CPU响应中断的信号; 第2个结束后,CPU读取8259送的中断类型号57第九章 CAS2

25、CAS0:双向级联信号线 作主片时,为输出;作从片时,为输入 与SP#/EN#配合实现8259A级联 SP#/EN#: 编程/双向使能缓冲 输入时:决定本片8259A是主片还是从片: =1,则为主片; =0 ,则为从片。 输出时:启动8259A到CPU之间的数据总线驱动器 输入还是输出,由 8259A的工作方式决定: 缓冲方式:SP#/EN#为输出; 非缓冲方式:SP#/EN#为输入。58第九章二、内部结构级联级联缓冲器缓冲器/比较器比较器 控制电路控制电路数据总线数据总线缓冲器缓冲器 读读/写写控制电路控制电路 中断服务中断服务寄存器寄存器(ISR) 优先级优先级管理逻辑管理逻辑(PR) 中

26、断请求中断请求寄存器寄存器(IRR) 中断屏蔽寄存器中断屏蔽寄存器(IMR) IR0IR1IR7RDINTWRSP/ENCSA0D7D0CAS0CAS1CAS2INTA59第九章 1、数据总线缓冲器 8259A与系统数据总线的接口,8位、双向、三态 传送信息种类: (1)控制字 (2)状态信息 (3)中断类型号 2、读/写控制电路 读写控制电路接收CPU送来的读/写命令RD#、 WR#,片选信号CS#及端口选择信号A0,用于 控制8259A与CPU之间的信息传送。60第九章8259A的读写功能61第九章 3、级联缓冲/比较器 8259A和系统的连接有两种方式: (1)缓冲方式 多片8259A级

27、联的系统中使用,作为输出端 当EN#0时,控制数据从8259A送到CPU 当EN#1时,控制数据从CPU送到8259A (2)非缓冲方式 单片8259A或少量8259A级联时使用,作为输入端 控制8259A作为主片还是从片: SP#1,为主片;SP#0,为从片 单片单片8259A8259A时,时, SP#SP#接高电平接高电平62第九章 4、中断请求寄存器IRR 8位寄存器,存放外部输入的中断请求信号IR7IR0; 当某个IR端有中断请求时,IRR相应的某位置1; 当中断请求被响应时,IRR的相应位清0。 5、中断屏蔽寄存器IMR 8位寄存器,用来存放各级中断请求的屏蔽信息。 若IMR第i位为

28、1,则IRi中断申请被屏蔽 若IMR第i位为0,则IRi中断申请被允许 6、优先级判别器PR 对保存在IRR中的中断请求进行优先级识别,送出最高 优先级的中断请求到CPU和ISR中去。63第九章 7、中断服务寄存器ISRu8位寄存器,保存正处理的中断请求信号;uCPU响应后,由第一个 信号将ISR寄存器中的相应位置“1”; 中断返回前,由中断结束命令EOI将其清0。u没进行中断服务的ISR各位为0。INTA64第九章8、控制电路u根据IRR和IMR的情况,根据PR判定优先级,控制8259A内部各部分协调工作,主要功能如下:u控制8259A向CPU发INT信号和接收 ;u控制ISR相应位置1,I

29、RR相应位清0;u控制8259A送中断类型号。INTA65第九章 三、8259A的中断管理方式 8259A有多种工作方式,是通过编程来设置的。 1、8259A的编程结构u 8259A的中断管理方式是通过控制字来设置的。u 初始化命令字写入寄存器ICW1ICW4,只能设定1次。u 操作命令字写入寄存器OCW1OCW3,用来对中断处理过程进行控制,在系统运行过程中,操作命令字可进行多次设置。66第九章译译码码器器 IR0IR1IR2IR3IR4IR5IR6IR7当前中当前中断服务断服务寄存器寄存器 优先级优先级裁决器裁决器 中断请中断请求寄存求寄存器器 中断屏蔽寄存器中断屏蔽寄存器ICW1 (芯片

30、控制芯片控制)ICW2 (类型类型)ICW3 (主主/从从)ICW4 (方式控制方式控制)OCW3OCW1OCW2D0D7AD0AD7CAS2CAS0CAS1A08088连连A08086连连A1地址地址总线总线INTRINTWRINTARDCSSP/NE67第九章2、优先级设置方式(1)完全嵌套方式u默认方式;u中断优先级固定,分07级,其中IR0最高,IR7最低;u允许中断嵌套(只允许高级中断低级);u可用普通EOI、自动AEOI结束中断,一般用普通EOI。(2)特殊全嵌套方式u与(1)基本相同,区别在于允许同级中断请求进入;u主要用于8259A级联时,主片的优先级设定;68第九章 (3)优

31、先级自动循环方式 (4)优先级特殊循环方式 3、中断结束方式 中断处理结束时,发送中断的结束命令EOI,使ISR寄存器中对应位清“0”。不同时刻使ISR中对应位清“0”,对应着不同的中断结束方式。 (1)普通EOI结束方式u中断返回前,CPU向8259A传送EOI结束命令,将ISR中优先级最高位清0,用于完全嵌套工作方式;u EOI结束命令要放在IRET前;69第九章(2)特殊EOI结束方式uCPU向8259A发特殊EOI结束命令,命令中将当前要清除的中断级别也传给8259A。此时,8259A将ISR寄存器中指定级别的对应位清“0”。(3)自动EOI结束方式u CPU发第二个INTA脉冲后,8

32、259A自动将ISR寄存器中对应位清“0”;容易引起重复嵌套,不建议用。70第九章 4、循环优先级的循环方法 根据中断结束方式不同,优先级循环又分为三种: (1)普通EOI循环方式 中断结束后,将ISR中优先级最高的位清0,此级赋予最低级,最高级为其下一级,其余类推。 (2)特殊EOI循环方式 中断结束后,将ISR中由L2L0给定级别相应的位清0,此级赋予最低级,最高级为其下一级,其余类推。 (3)自动EOI循环方式 CPU发第二个INTA脉冲后,将ISR寄存器中对应位清“0”;并按照普通EOI循环方式改变优先级。71第九章 5、中断源屏蔽方式 可以对中断请求单独屏蔽,有两种方式: (1)普通

33、屏蔽方式 通过操作命令字OCW1将IMR中某一位或某几位置“1”,可将对应位的中断请求屏蔽掉。 (2)特殊屏蔽方式 屏蔽本级中断,允许高级或低级中断进入,通过OCW3进行设置。72第九章 6、中断请求引入方式 (1)边沿触发方式 8259A的IRi端以上升沿作为中断请求信号。 (2)电平触发方式 8259A的IRi端以高电平作为中断请求信号。 注意: 当中断响应后,中断输入端的高电平必须及时撤出。 (3)中断查询方式73第九章 四、8259A的编程方法 分为两步:u初始化编程: 由CPU向8259A送初始化命令字ICW。在8259A开始正常工作前,必须写初始化命令字使其处于开始状态。u操作命令

34、编程: 由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根据需要在程序的任何地方写入。 74第九章 1、初始化命令字 (1)ICW1 芯片控制初始化命令字IC4SNGL0LTIM1A5A6A70D0D1D2D3D4D5D6D7A0ICW1的地址的地址 1:需要:需要ICW4 0:不设不设ICW4 1: 8259A单片方式单片方式 0: 8259A级联方式级联方式ICW1 的标志位的标志位8080/8085用用触发方式触发方式 1:高电平触发:高电平触发 0:上跳沿触发:上跳沿触发 例7-13 IBM PC/XT系统初始化中,设ICW1=13H,表示系统中8259A为单片方式,

35、上升沿触发,要求设置ICW4。指令为: MOV AL,13H OUT 20H,AL75第九章 (2)ICW2设置中断类型号初始化命令字 中断类型号基值,即IR0的类型号。其中低3位初始时为0,高5位由用户设定。工作过程中,低3位值由IR0IR7中响应哪级中断(对应000111)来确定。000T3T4T5T6T71D0D1D2D3D4D5D6D7A0中断类型的高中断类型的高5位位例7-14 在IBM PC/XT系统中,T7T3=00001,所以对应8个中断的类型号为08H0FH。端口地址为21H。设置ICW2的指令为: MOV AL,8 OUT 21H,AL76第九章 (3)ICW3标识主片/从

36、片初始化命令字 8259A主片格式:S0S1S2S3S4S5S6S71D0D1D2D3D4D5D6D7A00:表示:表示IRi端上未接端上未接8259A从片从片1:表示:表示IRi端上接有端上接有8259A从片从片Si=ID0ID1ID2000001D0D1D2D3D4D5D6D7A08259A从片格式:从片格式:从片从片8259A的识别地址的识别地址77第九章8259ACPU00-从片CPU8259A1EN输出1-主片1从片0主片1SP输入0SP/ENM/SBUF1:8086/8088方式方式0: 8080/8085方式方式1:中断自动结束:中断自动结束0:非自动结束:非自动结束1 :特殊全

37、嵌套方式:特殊全嵌套方式0:完全嵌套方式:完全嵌套方式 PMAEOIM/SBUFSFNM0001D0D1D2D3D4D5D6D7A0非缓冲方式非缓冲方式 0 缓冲方式缓冲方式/从片从片 1 0缓冲方式缓冲方式/主片主片 1 1(4) ICW4方式控制初始化命令字78第九章 ICW设置的顺序:写写ICW1写写ICW2SNGL=1?写写ICW3IC4=1?写写ICW4YNNY地址地址A0=0A0=1A0=1A0=179第九章 ICW功能:u设定触发形式:电平、上升沿;u设定工作方式:单片、级联;u设定中断类型号基值;u设定优先级方式;u设定中断结束方式。80第九章 2、8259A的操作命令字及编程

38、 (1)OCW1中断屏蔽操作命令字 用于设置和读出中断屏蔽寄存器的内容,必须在ICW之后写入 M0M1M2M3M4M5M6M71D0D1D2D3D4D5D6D7A01:屏蔽由:屏蔽由IRi引入的中断请求引入的中断请求0:允许:允许IRi端中断请求引入端中断请求引入Mi= 例7-18 设某中断系统要求屏蔽IR3,IR5,8259A编程指令为: MOV AL,00101000B OUT 21H,AL81第九章R SL EOI操 作 功 能001一般EOI结束命令 011特殊EOI结束命令101自动循环优先级的一般结束命令 100设置优先级自动循环方式命令 000结束优先级自动循环方式的命令 111

39、设置特殊优先级循环的EOI结束命令110设置特殊优先级循环方式命令 010无效 优先级固定优先级固定0优先级循环优先级循环1不发不发结束命令结束命令0发发结束命令结束命令1L2L1L0无效无效0L2L1L0有效有效1L1L0L200EOISLRA0 0标志位标志位 111IR7110IR6101IR5100IR4011IR3010IR2001IR1000IR0L2 L1 L0最低最低优先级优先级编码编码(2)OCW2 设置8259A的优先权循环方式和中断结束方式。82第九章 (3)OCW3特殊屏蔽方式和查询方式命令字 设定特殊屏蔽方式和中断查询的工作方式; 设置读取8259A的IRR和ISR寄

40、存器的内容。83第九章 3、编程小结uICW在程序初始化时写入,要按顺序且只能设定1次uOCW在初始化命令字之后,可根据需要在程序的任何位置去设置,可设置多次。uICW1、OCW2、OCW3写入8259A偶地址端口,用D4D3位区分;uICW2、ICW3、ICW4和OCW1写入8259A奇地址端口,用顺序区分。84第九章五、8259A的中断级联思考:最多级联64级,需要几片8259A? 如果4片8259A,可管理多少级中断? 一片8259A管理8级中断,当申请中断的外设多于8级时,可以将8259A级联使用,图7-14给出了两级级联的例子,第一级为8259A主片,第二级为8259A从片,主片可接

41、18片从片,这样最多可以管理64级中断源。(9片)(29级)85第九章外部中断请求外部中断请求+5VCAS2CAS0CAS1A0RDSP/NEIR7IR6IR5IR4IR3IR2IR1IR0 INTWRINTAD0D7CS从从8259ACAS2CAS0CAS1A0RDSP/NE IR7IR6IR5IR4IR3IR2IR1IR0 INTWRINTA D0D7CS主主8259A外部中断请求外部中断请求例例7-21 某系统中两片某系统中两片8259A采用中断级联方式组成中断系统,采用中断级联方式组成中断系统,从片的从片的INT端连主片的端连主片的IR3端,若当前主片从端,若当前主片从IR1,IR5端

42、引入端引入两个中断请求,中断类型号为两个中断请求,中断类型号为31H,35H。中断服务程序的。中断服务程序的段基址为段基址为1000H,偏移地址分别为,偏移地址分别为2000H及及3000H。从片。从片IR4,IR5端引入中断请求,类型号为端引入中断请求,类型号为44H和和45H。中断服务程序基。中断服务程序基址址2000H,偏移地址为,偏移地址为3600H和和4500H。86第九章(1)设置中断向量)设置中断向量 将将4个中断源的入口地址写入中断向量表个中断源的入口地址写入中断向量表 MOV AX,1000H;送段地址;送段地址 MOV DS,AX MOV DX,2000H;送偏移地址;送偏

43、移地址 MOV AL,31H;中断类型号;中断类型号 MOV AH,25H INT 21H MOV DX,3000H ;送偏移地址;送偏移地址 MOV AL,35H ;中断类型号;中断类型号 INT 21H87第九章 MOV AX,2000H;送段地址;送段地址 MOV DS,AX MOV DX,3600H;送偏移地址;送偏移地址 MOV AL,44H;中断类型号;中断类型号 MOV AH,25H INT 21H MOV DX,4500H;送偏移地址;送偏移地址 MOV AL,45H;中断类型号;中断类型号 INT 21H88第九章(2 2)主片主片8259A初始化编程初始化编程 8259A主

44、片端口地址为主片端口地址为FFC8H和和FFC9H MOV AL,11H ;定义;定义ICW1,主片级联使用,边沿触发,主片级联使用,边沿触发 ;要设要设ICW4 MOV DX,0FFC8H OUT DX,AL MOV AL,30H ;定义;定义ICW2,中断类型号,中断类型号30H37H MOV DX,0FFC9H OUT DX,AL MOV AL,08H ;定义;定义ICW3,IR3端接从片的端接从片的INT端端 OUT DX,AL MOV AL,11H ;定义;定义ICW4,特殊全嵌套方式,非缓冲方式,特殊全嵌套方式,非缓冲方式 OUT DX,AL ;非自动;非自动EOI结束方式结束方式

45、 MOV AL,0D5H ;定义;定义OCW1,允许,允许IR1,IR3,IR5中断,其余屏蔽中断,其余屏蔽 OUT DX,AL89第九章(3 3)从片从片8259A初始化编程初始化编程 8259A从片端口地址为从片端口地址为FFCAH和和FFCBH MOV AL,11H ;定义;定义ICW1,级联使用边沿触发级联使用边沿触发,要设要设ICW4 MOV DX,0FFCAH OUT DX,AL MOV AL,40H ;定义;定义ICW2,引入中断类型号,引入中断类型号40H47H MOV DX,0FFCBH OUT DX,AL MOV AL,03H ;定义;定义ICW3,从片接在主片的,从片接在

46、主片的IR3端端 OUT DX,AL MOV AL,01H ;定义;定义ICW4,完全嵌套方式,非缓冲方式,完全嵌套方式,非缓冲方式 OUT DX,AL ;非自动;非自动EOI结束方式结束方式 MOV AL,0CFH ;定义;定义OCW1,允许,允许IR4,IR5中断,其余屏蔽中断,其余屏蔽 OUT DX,AL90第九章(4)中断的结束编程)中断的结束编程 无论对主片无论对主片8259A或从片或从片8259A,操作命令字可根据,操作命令字可根据需要在操作过程中设置,需要在操作过程中设置,OCW2命令字定义中断结束方命令字定义中断结束方式时,通常式时,通常放在中断服务子程序中放在中断服务子程序中

47、。主片的中断结束命令为:主片的中断结束命令为: MOV AL,20H ;定义;定义OCW2,普通普通EOI结束方式结束方式 MOV DX,0FFC8H OUT DX,AL从片的中断结束命令为:从片的中断结束命令为: MOV AL,20H ;定义;定义OCW2,普通普通EOI结束方式结束方式 MOV DX,0FFCAH OUT DX,AL91第九章 例例7-9 编写中断处理程序,要求主程序运行时,每编写中断处理程序,要求主程序运行时,每10秒秒响铃一次,同时屏幕上显示信息响铃一次,同时屏幕上显示信息“The bell is ring!” 可以利用中断类型可以利用中断类型1CH进行处理,因为系统定时器进行处理,因为系统定时器(中断中断类型类型8)的中断处理程序中,时钟中断一次的中断处理程序中,时钟中断一次(约约18.2次次/秒秒)要调要调用一次用一次INT 1CH。在。在R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论