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

下载本文档

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

文档简介

第七章微型计算机的中断系统

7.1中断系统的基本概念7.1.1中断的基本概念所谓中断,是指CPU执行程序时,突然有某个外部或内部事件发生,请求CPU处理,CPU暂停当前正在执行的程序,转去执行处理该事件的服务程序,服务完毕后,CPU返回原来程序被中断的地方继续执行。这个过程称为中断。

中断服务程序1中断服务程序2非预料事件1非预料事件

2CPU执行流程断点断点1、基本概念中断源:引起中断发生的内部或外部事件中断类型号:每个中断源唯一的一个编号断点:该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。包括段地址和偏移地址。中断服务程序:处理中断事件的程序段2、中断系统的功能中断系统是指实现中断功能的软、硬件的集合。具有以下功能:能实现中断响应、中断服务及中断返回。能实现中断优先权排队。能实现中断嵌套。3、计算机系统的性能并行处理能力实现CPU和多个外设同时工作,提高CPU效率。实时处理能力计算机应用于实时控制时,对外部事件及时响应故障处理能力及时处理故障,不影响其他程序的运行。多任务运行在操作系统的调度下,运行多个任务,任务间交替运行(1)中断请求:中断源发出中断请求信号(2)中断判优:对申请中断的中断源进行优先级判别的过程称为中断判优。(3)中断响应:从请求有效到转中断服务程序入口地址这一段时间。实现程序的切换。(4)中断服务(处理):中断程序的主体。(5)中断返回:使原来在中断响应过程中的断点地址和标志寄存器中的内容,依次从堆栈中弹出,以便继续执行原来的程序。4、中断过程(1)中断请求可由内部标志或指令引起;也可由外部电路引起(2)中断判优有多个中断源同时提出中断请求时,CPU应按照中断源的轻重缓急按次序响应中断。先响应优先级高的请求,后响应优先级低的请求。软件查询优先权排队法执行程序按照顺序逐位查询中断请求寄存器的状态,查询的顺序决定了优先级的高低硬件优先权判别法菊花链法——将每个接口串连起来,离CPU近的优先级高“向量”优先权排队电路——由专用的中断控制器管理优先级(3)中断响应从CPU接收到中断请求,到转去执行中断服务程序之间的过程就是中断响应。CPU实现从当前正在执行的程序到中断服务程序的切换由硬件完成关中断、保存断点、取中断服务程序入口地址等一系列中断响应操作。(4)中断服务(处理)1.保护现场

保护现场实质:将重要信息压入堆栈。2.开中断

目的:开放所有可屏蔽中断,以允许高级中断嵌套3.执行中断服务程序

中断服务程序主体-中断的目的。4.关中断

目的:关中断以确保可靠有效地恢复现场。5.恢复现场 恢复现场实质:将原来压入堆栈中的内容弹出来。7.28086CPU中断系统指令中断INTn异常中断包括:失效异常陷井异常中止异常内部异常中断微处理器中断逻辑INTRNMIIRQ0IRQ1IRQ2:IRQ15不可屏蔽中断可屏蔽中断外部中断控制器外部硬件中断7.2.18086中断的分类1、外部中断不可屏蔽中断(NMI):中断类型号为2号含义:不能用软件来控制是否允许中断的一种外部中断。常见NMI中断有:(1)电源掉电(2)存储器检验出错(3)总线奇偶错等。可屏蔽中断(INTR):含义:可用软件控制是否允许中断的外部中断。即STI使IF=1,允许中断;CLI使IF=0,禁止中断。常见INTR中断有:

所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、CD-ROM等。2、内部中断内部中断是由于8086内部执行程序出现异常引起的程序中断利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有效途径例如,ROM-BIOS和DOS系统利用内部中断为程序员提供了各种功能调用内部中断的中断类型号已定⑴除法错中断在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断例如:movbl,0idivbl ;除数BL=0,产生除法错中断movax,200hmovbl,1divbl ;商=200H,不能用AL表达 ;产生除法错中断⑵指令中断在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,称为指令中断其中向量号为3的指令中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的⑶溢出中断在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断例如:movax,2000haddax,7000h ;2000H+7000H=9000H,溢出:OF=1into ;因为OF=1,所以产生溢出中断⑷单步中断若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试3、中断优先级高至低顺序依次为:内部中断(除单步中断)>NMI中断>INTR中断>单步中断。除单步中断外,任何内部中断的优先级都高于外部中断。7.2.2中断向量表含义:

中断服务程序的入口地址(CS:IP)组成及格式:

共4个字节,段地址及偏移地址。高地址段地址高字节段地址低字节低地址偏移地址高字节偏移地址低字节段地址偏移地址返回1、中断向量2、中断向量表含义:

存放256个中断向量的内存区域。即存放中断服务程序入口地址的内存区域称为中断向量表。中断向量表大小:1KB中断向量表地址范围:00000H~003FFH。中断向量地址中断类型号n与其对应的中断向量存放起始地址之间的关系是: 起始地址=4×n;末地址=4×n+3 即中断向量在4×n~4×n+3指示的内存单元中。示例实方式下的中断服务程序入口地址求法(例子)【例】假设在实地址方式下,内存00140H到00147H中存放的数据如右图所示,求51H号中断的中断服务程序入口地址。

解:(1)求中断向量存放的首地址和末地址

由中断类型号51H可知中断向量存放的 首地址=51H×4=144H(左移两位方法) 末地址=51H×4+3=147H(2)从首末地址对应的4个单元找出中断向量,即00144H到00147H中内容就是51H号中断的中断向量对照中断向量组成及格式可知段地址=4540H,偏移地址=3430H,所以中断服务程序入口地址为段地址×16+偏移地址=45400H+3430H=48830H求解中断向量组成及格式返回3、中断向量的设置方法(1)DOS功能调用(21H)保存中断向量AH=35HAL=中断类型号INT21H返回时送ES:BX=中断向量 MOVAL,NMOVAH,35HINT21H;取原中断向量

PUSHESPUSHBX保存原中断向量DOS功能调用(21H)设置中断向量

AH=25HAL=中断类型号DS:DX=中断向量INT21H

MOVAX,SEGINTRPROC MOVDS,AX MOVDX,OFFSETINTRPROC MOVAL,N MOVAH,25H INT21H3、中断向量的设置方法(1)通过传送类指令直接设置中断向量MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRPROCMOVES:[BX],AX;偏移地址(N*4)MOVAX,SEGINTRPROCMOVES:[BX+2],AX;段地址(N*4+2)……INTRPROC:

……IRET3、中断向量的设置方法(2)7.2.38086对中断的响应CPU响应中断必须满足如下条件:(1)CPU接收到中断请求;(2)没有DMA请求;(3)当前指令执行结束,(4)如果是INTR中断请求,CPU还必须开中断,即中断标志IF=1。响应条件满足后,进入中断响应周期,中断响应操作由硬件自动完成。8086CPU对不同类型的中断响应过程稍有不同,主要是获取中断类型号的过程不同。可屏蔽中断的响应过程(1)处理器接到中断申请,处理完当前指令即进入响应周期。(2)第二阶段即中断响应周期,在其间CPU向外部中断控制器发送两个响应脉冲信号INTA。 第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。(3)将标志寄存器中的内容压入堆栈保护,然后清IF和TF标志,以禁止INTR引脚以及陷井和单步中断。(4)将断点地址压入堆栈(CS:EIP或CS:IP)。 断点地址:指中断时CPU待执行的下一条指令对应的逻辑地址。

顺序:先压入断点地址CS,后压入偏移地址EIP(或IP)。(5)CPU得到中断类型号码n后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而转入中断服务程序入口地址。完成中断响应任务。7.3中断控制器8259A一、8259A主要功能:(1)8位可编程中断控制器,又称优先级控制器(2)处理8级向量优先级中断(3)可提供中断类型号(4)8259A芯片级联组成强大的中断管理系统(多至64级外部中断)。(5)优先级方式可编程(6)多级中断管理7.3.18259A的引脚信号与CPU相连的引脚D7~D0为8位双向的数据线A0:端口选择信号CS:片选信号RD和WR:读/写控制信号INTA:中断响应输入信号INT:中断请求输出信号与中断源相连的引脚IRi:8个中断源中断请求端级联扩展引脚CAS0~CAS2级联信号SP/EN:从片/缓冲允许控制(1)非缓冲时为输入:SP:1=主片,0=从片(2)缓冲时为输出:EN:1=CPU写,0=CPU读7.3.28259A的内部结构中断请求寄存器IRR功能:记录外部中断源的中断申请的状态。状态:1=对应引脚有中断请求且还未被响应 0=对应引脚无中断请求或有但已经被响应D7D6D5D4D3D2D1D0IRR7IRR6IRR5IRR4IRR3IRR2IRR1IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚中断优先权分辨器PR优先权分辨器PR用来确定存放在IRR中 各个中断请求信号对应中断源的优先级。 并总是选出当前最高优先中断源的中断申请通知控制逻辑,以便控制逻辑发送中断请求信号INT给CPU。中断服务寄存器ISR功能:记录外部中断源的中断申请被服务的状态。状态:1=对应引脚的中断请求已被响应(服务)且服务还没有结束。 0=对应引脚的中断请求未被响应。D7D6D5D4D3D2D1D0ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚中断屏蔽寄存器IMR功能: 设置外部中断源的中断屏蔽状态。状态: 1=对应引脚的中断被屏蔽。 0=对应引脚的中断未被屏蔽。注意: 只有IMRi相应位为0且IF=1,CPU才有可能响应可屏蔽中断。D7D6D5D4D3D2D1D0IMR7IMR6IMR5IMR4IMR3IMR2IMR1IMR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚数据总线缓冲器数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。数据总线缓冲器的主要功能有:(1)通过数据总线缓冲器,CPU向8259A内部发送

命令。(2)CPU接收8259A状态信息。(3)在中断响应周期,CPU从中获得中断类型号。读/写逻辑接收CPU送来的读/写控制信号、片选信 号以及地址选择信号,对内部各个寄存器 进行读写操作。级联缓冲/比较器级联缓冲/比较器在级联方式的主从结构 中(两个以上的8259A组成的系统),用 来存放和比较系统中各8259A的从设备标 志(ID)。控制逻辑控制逻辑是控制8259A内部各个部件的主要逻辑电路。主要功能包括:(1)根据CPU对8259A编程设定的工作方式来产生内部控制信号。(2)如果中断请求寄存器IRR有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向CPU发中断请求信号INT。(3)接收CPU送来的中断响应信号,并允许中断服务寄存器ISR的相应位(ISRi)置位。(4)控制发出相应的中断类型号,以供CPU读取。①

中断申请寄存器IRR锁存外部的中断申请。若IR0~IR7引脚上有中断申请,则将IRR相应位置1IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR118259A工作过程②中断屏蔽寄存器IMR决定IRR中的中断申请是否进入优先级裁决器PR。IMR对应位为0,允许中断申请进入优先级裁决器;为1,不允许进入,中断申请被IMR屏蔽。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTR③

当前中断服务寄存器ISR记录CPU正在响应的中断。ISR中的某位为1,表示CPU正在响应此级中断,即正在执行此中断源的中断子程;ISR中的某位为0,表示CPU没有或已响应完此级中断,即不在执行此中断源的中断子程IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTR④优先级裁决器PR据新进入的中断申请和ISR的内容,决定是否发中断申请信号。

如果进入的中断申请比ISR中记录的中断优先级高,则通过8259A的INT引脚向CPU发出中断请求信号;如果进入的中断申请不比ISR中记录的中断优先级高,同级或低级,则不向CPU发中断请求信号。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTR(2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号

CPU接收到INTR上的中断申请信号后:如果IF标志为0,则CPU不响应此中断申请信号,

即中断申请被IF屏蔽。如果IF标志为1,则处理完当前的指令后,进入中断响应周期:通过

INTA引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应的过程。8259A的中断响应周期程CAS0~CAS2D0~D7SP/ENIR0~IR7CPU响应周期8259A工作波形INT第一个周期T1T2T3T4ALECLK

第二个周期T1T2T3T4第一个前保持为高电平

INTALOCK关于8259A思考题1.什么情况下IRR=FFH?2.什么情况下ISR=FFH?3.IMR=FFH,计算机系统会怎样?4.IRR=0AH,ISR=0AH是否可能?参考答案:1.八个中断源都有请求,但均未被CPU响应。2.从最低到最高级优先级依次进入中断服务程序,但都没有结束中断处理。(8级中断嵌套)3.系统将处于瘫痪状态(所有硬件中断被禁止)。4.有可能,ISR=0AH表示IR1和IR3对应的中断请求已被响应,但还没有结束,此时IR1和IR3又都重新有申请,但还未被响应。7.3.3工作方式优先级的方式屏蔽中断源的方式结束中断处理的方式连接系统总线的方式中断请求信号方式优先级的方式(4种)全嵌套方式特殊全嵌套方式优先级自动循环方式优先级特殊循环方式全嵌套方式仅允许高一级中断进入嵌套。从高到低优先级依次为IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。特殊全嵌套方式允许高一级,也允许同级中断进入嵌套。从高到低优先级依次为IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。用于级联方式的主片优先级自动循环方式在这种方式下,中断源的优先级是变化的,当一个设备得到中断服务以后,它的优先级自动降为最低优先。在初始状态下的优先级为IR0>IR1>...>IR7;IR0得到服务后下一次优先级为IR1>IR2>....>IR6>IR7>IR0,依次类推。优先级特殊循环方式与优先级自动循环方式只有一点区别:

初始最优者可由程序设定,可任意指定一个初始最高优先级,以后再循环优先。屏蔽中断源的方式普通屏蔽方式:设置8259A内部中断屏蔽寄存器IMR的相应位为1(通过OCW1),即可屏蔽对应中断源的中断申请。特殊屏蔽方式:先写入特殊屏蔽命令字OCW3,然后再写屏蔽命令字OCW1。使当前中断服务寄存器ISR的相应位自动复位。这就只屏蔽了当前正在处理的这级中断。=屏蔽该中断并清中断服务位。结束中断处理的方式自动结束方式:系统一旦进入中断服务程序,8259A就自动将当前中断服务寄存器相应位清0。(在第二个中断响应脉冲)非自动结束方式:在中断服务程序结束,返回主程序之前发一条中断结束命令,使8259A的当前最高优先级的中断对应的ISR复位。连接系统总线的方式缓冲方式:

一般在多片8259A级联系统中,8259A通过总线驱动器与系统总线相连,而不是8259A直接与系统总线相连,这就是缓冲方式。非缓冲方式:

当系统只有一片8259A或少量几片8259A时,一般将它直接与数据总线相连。这就是所谓的非缓冲方式。中断请求信号方式边沿触发方式:

在边沿触发方式下,8259A将中断请求输入端出现的上升沿作为中断请求信号,且该信号可以一直保持为高电平。为了防止干扰,其高电平也应有一定的宽度。电平触发方式:

8259A把中断请求输入端出现的高电平作为中断请求信号。但应注意的是,当中断请求被响应后,输入端必须立即撤消高电平,以免引起再一次中断。7.3.58259A的初始化命令字和初始化编程在8259A内部有两组命令寄存器,一组是在8259A初始化时设定的,叫初始化命令字ICW,另一组在8259A初始化后使用时写入,叫操作命令字OCW。8259A有4个初始化命令寄存器ICW1~ICW4。8259A开始工作前必须写入初始命令字,使它按预定的工作方式工作。

芯片初始化命令字ICW1A7A6A51LTIMADISNGLIC4X86不用特征位0=不用ICW41=要ICW4X86不用0=边沿触发1=电平触发0=多片1=单片写入A0=0的端口返回中断类型初始化命令字ICW2T7~T3决定中断类型号(D2~D0任意)8个中断源具有连续的中断类型号写入A0=1的端口D7D6D5D4D3D2D1D0T7T6T5T4T3×××返回主/从片初始化命令字ICW3

——主片ICW3IRi=1,指示8259的引脚IRi处接一从片写入A0=1的端口D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0返回主/从片初始化命令字ICW3

——从片ICW3ID2,ID1,ID0编码决定从片的INT接主片写入A0=1的端口D7D6D5D4D3D2D1D000000ID2ID1ID0返回编码决定IRi返回控制初始化命令字ICW4各位含义:μPM:CPU类型,0=8080/8085,1=80X86。AEOI:自动结束中断方式,AEOI=1有效。M/S:主/从片选择,1=主片,0=从片。BUF:缓冲方式。BUF=1工作在缓冲方式。SFNM:特殊全嵌套方式。SFNM=1,特殊全嵌套方式。写入A0=1的端口D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIμPM返回8259A的

初始化编程对8259A进行初始化编程就是向8259A写入两到四个初始化命令字。流程如图。初始化编程任务:1.设定中断请求信号的有效形式。2.设定8259A是单片还是多片级联方式。3.设置中断类型号。4.设置优先排队规则。5.设定中断结束时的操作原则。返回8259A初始化编程实例(1)【例7-1】IBM-PC微机中,8259A的端口地址分别为20H和21H,工作方式如下:单片方式,请求信号采用边沿触发方式,优先级采用完全嵌套方式,非自动结束中断,与系统采用非缓冲方式连接。中断类型号为08H~0FH。则8259A的初始化程序段如下:MOV AL,00010011B;ICW1:边沿触发,单片系统,需要ICW4OUT 20H,ALMOV AL,00001000B ;ICW2:类型号从08H开始OUT 21H,ALMOV AL,00000001B ;ICW4:完全嵌套方式,非缓冲,非自动结束OUT 21H,AL8259A初始化编程实例(2)【例7-2】IBMPC/AT机中使用两片8259A管理中断,硬件连线如图7‑13所示。主片的要求是:●

主片的IR2接从片的INT端。●主片中断信号为边沿触发方式。●级联但无缓冲。●起始中断类型号为08H(IR0)。●正常的中断结束,选择特殊的全嵌套方式。● 级联方式要ICW3和ICW4。从片的要求是:●从片的INT接主片的IR2。●从片起始中断类型号为70H。●级联方式要ICW3和ICW4。返回返回主片8259A初始化MOVAL,00010001B ;ICW1:边沿,ICW4,ICW3OUT20H,AL ;写入ICW1(A0=0地址端口)MOVAL,00001000B ;ICW2:IR0中断类型号为08HOUT21H,AL ;写入ICW2(A0=1地址端口)MOVAL,00000100B ;ICW3:主片IR2接从片INTOUT21H,AL ;写入ICW3(A0=1地址端口)MOVAL,00010001B ;ICW4:非缓冲,正常中断结束 ;特殊全嵌套方式,主片OUT21H,AL

;写入ICW4(A0=1地址端口)返回从片8259A初始化MOVAL,00010001B ;ICW1:边沿,ICW4,ICW3OUT0A0H,AL ;写入ICW1MOVAL,01110000B ;ICW2:IR0中断类型号为70HOUT0A1H,AL ;写入ICW2

MOVAL,00000010B ;ICW3:从片接主片的IR2OUT0A1H,AL ;写入ICW3MOVAL,00000001B ;ICW4:非缓冲,正常结束,

;非特殊全嵌套方式,从片OUT0A1H,AL ;写入ICW4返回7.3.68259A的操作命令字及应用中断屏蔽命令字OCW1控制中断和优先级循环的操作命令字OCW2屏蔽查询状态命令字OCW3返回中断屏蔽命令字OCW1(IMR)

Mi=1表示对应的IRi中断源被屏蔽,Mi=0则取消屏蔽(i=0,1,2,3,4,5,6,7)。要求写入8259A的A0=1的端口D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0返回OCW1的应用某系统中有3个中断源,分别连接到8259A的IR0、IR2和IR3上。若系统中8259A的偶地址为80H,奇地址为81H。则屏蔽字为:MOVAL,11110010B ;为0的位允许中断,为1的位中断被屏蔽OUT81H,AL若系统中再增加一个IR1中断请求IN AL,81HANDAL,11111101B ;只将OCW1中的D1位清“0”OUT81H,AL当IR1的所有中断全部完成后IN AL,81HOR AL,00000010B ;只将OCW1中的D1位置“1”,OUT81H,AL控制中断和优先级循环的操作命令字OCW2

R:优先级循环位,R=1为循环优先。SL:指定IRi级别位。SL=1时L2~L0有效。EOI:中断结束命令位,1=中断结束L2~L0:编码指定IRi注意:要求写入8259A的A0=0的端口D7D6D5D4D3D2D1D0RSLEOI00L2L1L0返回屏蔽查询状态命令字OCW3

各位含义: ESMM:特殊屏蔽允许,1有效。 SMM:特殊屏蔽位,1有效。 P:管理查询方式。当P=1时可用作查询方式

RR:读寄存器命令位,RR=1读寄存器IRR和ISR,RR=0禁止读这两个寄存器的内容。

RIS:寄存器选择位,RR=1时且RIS=0读IRR寄存器,RIS=1读ISR寄存器的内容。要求写入8259A的A0=0的端口D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS返回8259的查询方式除了在中断方式外,8259A可工作在查询方式。查询方式工作如下:1)CLI关中断2)写OCW3使P=1(命令字=0CH)进入查询方式3)读取查询状态(A0=0端口)判断I值: I=1有中断,W2W1W0为当前最高优先级的编码。I----W2W1W0D7D6D5D4D3D2D1D0返回操作命令编程实例MOVAL,11110000B;主片OCW1,屏蔽IR4,5,6,7OUT21H,AL ;写入主片的OCW1MOVAL,10000001B;从片OCW1:屏蔽IR0和IR7OUT0A1H,AL;写入从片的OCW1MOVAL,00100000B;OCW2:结束最高中断,清ISR相应

;位,即发普通中断结束命令OUT0A0H,AL ;先向从片发中断结束命令OUT20H,AL ;后向主片发中断结束命令返回8259A状态的读取中断屏蔽寄存器IMR的读取

读取IMR只需用一条IN指令 IN AL,21H ;读主片IMR(A0=1端口)中断请求寄存器IRR的读取

MOVAL,0AH ;发读取IRR的OCW3命令字 OUT20H,AL ;写入A=0的偶地址端口 IN AL,20H ;读IRR内容到AL中中断服务寄存器ISR的读取

MOVAL,0BH ;发读取ISR的OCW3命令 OUT20H,AL ;命令字写入A0=0的端口 IN AL,20H ;读ISR内容到AL中返回7.4 中断应用举例【例7-3】假设某应用系统通过一组8位开关的状态控制8个发光二极管,某开关闭合对应的发光二极管点亮。要求8个开关的状态全部设置完成后,才能点亮对应的发光二极管,当开关的数据为0FFH时,程序结束。完成软硬件设计。1、硬件电路设计开关和发光二极管是最基本的输入输出设备,开关可直接通过三态缓冲器74LS244与CPU的数据总线相连,发光二极管通过锁存器74LS273与总线相连。要求8个开关的状态全部设置完成后,才能点亮对应的发光

温馨提示

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

评论

0/150

提交评论