微型计算机原理及接口技术第8章-86序列微型计算机的中断系统课件_第1页
微型计算机原理及接口技术第8章-86序列微型计算机的中断系统课件_第2页
微型计算机原理及接口技术第8章-86序列微型计算机的中断系统课件_第3页
微型计算机原理及接口技术第8章-86序列微型计算机的中断系统课件_第4页
微型计算机原理及接口技术第8章-86序列微型计算机的中断系统课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、第 8 章 86系列微型计算机的中断系统 本章主要内容8.1 中断的基本概念 8.2 中断的处理 8.3 8086/8088中断系统 8.4 可编程中断控制器8259A 8.1.1 中断的定义和作用8.1 中断的基本概述 定义:指当CPU正在处理某件事情的时候,突然发生的某一外部事件(如一个电平的变化,一个脉冲沿的发生或定时器的计数溢出等)请求CPU迅速去处理,此时若条件允许,CPU暂时停止当前的工作,转去处理所发生的事情。处理完该事件以后,再回到原来被终止的地方(断点),继续原来的工作,这样一个完整的过程称为中断 实现中断功能的部件称为中断系统。8.1.1 中断的定义和作用产生中断的事件源称

2、为中断源。 外部设备中断源控制对象中断源故障中断源定时脉冲中断源中断系统功能:实现中断响应、中断服务及中断返回实现中断优先权排队 实现中断嵌套 作用:提高CPU的工作效率 提高实时数据的处理时效 可以实现多任务多用户管理中断过程: 中断申请 中断响应 中断处理 中断返回8.1.1 中断的定义和作用CPU响应中断的条件: (1)CPU开放中断,即CPU工作于中断方式 (2)目前申请中断的优先级别最高 (3)当前没有发生复位(RESET)、保持(HOLD)和非屏蔽中断请求(NMI)。 (4)若中断请求同时满足条件13,CPU并不立即响应,而只有等到CPU将当前指令运行结束后,才能响应中断。(5)若

3、当前执行的指令是开中断指令(STI)和中断返回指令(IRET),则他们执行完后再执行一条指令,CPU才能响应INTR请求。 8.1.2 中断响应8.1 中断的基本概述 在响应过程中,中断系统将自动完成以下几件事:(1)关中断。 (2)保存断点。 (3)形成中断入口地址。 8.1.2 中断响应关闭中断的原因:一是对于电平触发的中断,当CPU响应中断后,如果不关中断,则本次中断有可能会触发新的中断;其次中断是CPU从正在执行的主程序转向执行中断服务程序,执行完毕后再回到主程序的过程,所以CPU响应中断后,要保护断点和保护现场,在这个过程中,是不允许被其他外设的中断请求打断的。 问题:1)当多个中断

4、源同时向CPU发出中断请求的情况。这时,CPU首先响应哪一个中断请求并执行其中断服务程序 ?2)当CPU已在中断处理状态时,如果另一个外设又发出了中断请求信号,这时CPU是否中断当前的中断处理程序而接受更需要紧急处理的中断 ?8.1.3 中断的优先级8.1 中断的基本概述 中断的优先权 中断优先级分配方法:软件方案 硬件方案 软硬件结合方案 8.1.3 中断的优先级1. 软件方案 中断优先权由查询顺序决定,先查询的中断源具有高的优先权 链形电路:利用外设在系统中的物理位置来决定其中断优先权的 8.1.3 中断的优先级2. 硬件方案 编码电路 8.1.3 中断的优先级特点:逻辑简单,编程方便,但

5、是优先级一旦固定很难改变。 通过可编程中断控制器(如8259A)实现对中断优先级的管理。8.1.3 中断的优先级2. 软硬件结合方案 特点:具有硬件方案的逻辑简单、响应中断快速等优点,又可以通过软件控制命令字和操作命令字对中断优先级进行灵活设置。8.1.4 中断嵌套8.1 中断的基本概述 在某一时刻,CPU正在执行某个中断服务程序时,若CPU的中断是开放的,如果有级别更高的中断源请求中断时,CPU可以把正在执行的中断服务程序暂停下来而响应和处理中断优先权更高中断源的中断请求,等到处理完后,再返回原来中断服务程序的断点处继续执行 条件:CPU开中断有级别更高的中断源请求一旦CPU响应中断,就可转

6、入中断服务程序之中,中断服务程序的一般结构如下: 8.2 中断的处理PUSH AX ;保护现场.PUSH BX STI ;开中断 ;中断处理CLI ;关中断POP BX ;恢复现场.POP AX ;STI ;开中断IRET ;中断返回(1)保护现场 对象:一些寄存器这些寄存器在主程序和中断服务程序都使用。由用户保护寄存器的这段程序称为保护现场,实质上是执行PUSH指令将需要保护的寄存器内容推入堆栈。 8.2 中断的处理 (2)开中断CPU接收并响应一个中断后自动关闭中断。如何要实现中断嵌套,需要开中断。 (3)中断服务中断服务程序的核心就是对某些情况进行处理,如传输数据、处理掉电紧急保护和各种

7、报警状态等。(4)关中断 呼应前面开中断,以便下面的恢复现场的工作顺利而不被打断。 8.2 中断的处理 (5)恢复现场 在返回主程序前要将用户保护的寄存器内容从堆栈中弹出,以便返回主程序后继续正确执行主程序。(6)开中断并返回 此处的开中断对应CPU响应中断后自动关闭中断。在返回主程序前,也就是中断服务程序的第二条指令往往是开中断指令。8.3 8086/8088中断系统中断特点: 矢量型中断,有256个中断矢量号(设备号) (0255)中断分类非屏蔽中断可屏蔽中断NMI引入,1个,不受IF的屏蔽INTR引入,多个,受IF的屏蔽CPU根据软件中的某条指令或者软件对标志寄存器中的设置而产生的硬件中

8、断软件中断(外部中断)(内部中断)8.3 8086/8088中断系统软件中断硬件中断8.3.1 中断矢量和中断矢量表8.3 8086/8088中断系统中断矢量:是中断处理子程序的入口地址,每个中断类型对应一个中断矢量中断中断矢量号代码 (0255) 中断服务程序 一一对应一一对应中断矢量表:在内存中,开辟一个区域存放中断服务程序的入口地址的表。对于8086,这个区域的首地址00000H(固定)问题:已知中断矢量号代码,怎样找到中断服务程序的入口地址?8.3.1 中断矢量和中断矢量表8.3.1 中断矢量和中断矢量表 中断矢量表范围: 00000H 003FFH(1KB) 每一个中断服务程序的入口

9、地址占四个字节单元(2564=1024B),高字节放的是段地址(CS),低字节放的是偏移地址(IP) 每个中断源对应一个中断服务程序,每一个中断服务程序都有固定的入口地址中断矢量号N中断矢量表的地址中断矢量表中断服务程序的入口 地址(CS,IP) 48.3.1 中断矢量和中断矢量表例8-1: 键盘中断的矢量号为09H,它的中断服务程序入口地址为0BA9H:0125H,求它在中断矢量表中的地址及相应单元内容 解:键盘中断对应的中断矢量表位于0000:0024H (09H4=24H)开始的4单元 这4个单元的内容见表:又称为软件中断,分为专用中断和指令中断两部分。 8.3.2 内部中断8.3 80

10、86/8088中断系统1. 专用中断(1) 0号中断这是除法出错中断。在执行除法指令时,若发现除数为0或商超出了寄存器所能表示的范围(双字/字的范围为-32 768 +65 535;字/字节的范围为-128 +255)时,CPU会立即产生一个矢量号为00H的0型中断,转入相应的除法出错处理程序。由于0号中断没有相应的中断指令,也不是由外部硬件引起的,通常称为“自陷”中断。8.3.2 内部中断(2) 1号中断当将CPU内标志寄存器的陷阱标志TF位置1后,CPU每执行完一条指令,会产生1号矢量中断。常被用来作为调试程序的单步操作手段,所以又称为单步中断或陷阱中断。(3) 3号中断CPU执行INT

11、3而产生的中断,此指令是单字节指令。3号中断和单步中断一样,也是8086提供的一种调试手段。它用于设置程序中的断点,故称为断点中断,用INT或INT 3指令表示。INT n指令的矢量号就是给定的n。 INT n主要是用于系统定义或用户自定义的软件中断。CPU执行INT n指令,产生矢量地址号为n的中断,称为n号矢量中断。 8.3.2 内部中断(4) 4号中断当CPU内部溢出标志位OF被置1,执行溢出中断指令INTO后,会产生4号中断。若标志OF为0,则此指令不起作用。INTO指令为程序员提供了一种算术运算溢出时的处理手段。INTO指令通常安排在算术指令之后,以便在运算过程中,一旦产生溢出错误能

12、及时进行处理。 2. 指令中断INT n内部中断特点:8.3.2 内部中断中断矢量号由CPU内部自动提供,不需要执行中断响应总线周期去读取矢量号 除单步中断外,所有内部中断都不可以用软件屏蔽,即都不能通过执行CLI指令使IF清0来禁止对它们的响应 除单步中断外,所有内部中断的优先级别均高于外部中断 软中断不具有随机性 8.3.3 外部中断8.3 8086/8088中断系统1. 非屏蔽中断中断请求NMI特点:对NMI请求的响应不受中断标志位IF的控制中断矢量号为2NMI中断优先级别高于可屏蔽中断相应过程:将矢量号乘以4,得到中断矢量地址0008H;把CPU的标志寄存器内容压入堆栈,保护各标志位状

13、态;清除IF和TF标志,屏蔽INTR中断和单步中断;保存断点,即把断点处的IP和CS内容压入堆栈(先压CS,再压入IP);从中断矢量表中取中断服务程序的入口地址,分别送至CS和IP中;按CS和IP的地址执行NMI中断服务程序;当执行到中断返回指令IRET,则恢复断点处的IP、CS值,恢复标志寄存器内容,于是CPU就返回到中断断点处继续执行原来的程序。 8.3.3 外部中断用途:用于处理系统的重大故障,如掉电事故8.3.3 外部中断2. 可屏蔽中断特点:对INTR请求的响应受中断标志位IF的控制中断矢量号为不固定,中断优先级及屏蔽状态有中断控制器8259A控制中断响应需要两个总线周期中断请求中断

14、响应INTRINTA发送两个负脉冲信号,第一个通知外设,它发生的中断请求已被响应,第二个通知中断源送出中断矢量号8.3.3 外部中断8259A8.3.3 外部中断CPU响应外部中断、并进入中断子程序的过程中,要依次做几件事:(1)从数据总线上读取中断矢量号,将其存入内部暂存器(2)将标志寄存器FR的值进栈(3)把FR的中断允许标志IF和单步标志TF清零(4)将断点保护到堆栈中 断点:是指响应中断时,主程序中当前指令下面的一条指令的地址,包括CS和IP的值(5)依据获得的中断矢量号,到内存中断矢量表中找到中断矢量,再依据该中断矢量转入相应的中断服务程序8.3.4 中断矢量表的初始化8.3 808

15、6/8088中断系统 中断矢量表并不常驻内存原因PC系列各机型启动过程中,首先由ROM BIOS自测试代码对ROM BIOS控制的中断矢量进行初始化装入8086/8088系统:装入01FH共32个中断矢量80286以上CPU系统:装入077H共120个中断矢量若用户开发的应用程序采用INT N形式调用,则要将中断服务程序入口地址提前存入中断矢量表中所选定的单元中方法:用串指令 用DOS系统功能调用 直接装入法 8.3.4 中断矢量表的初始化1. 用串指令串指令STOSW将AX寄存器中的内容写入附加段的DI所指向的目标偏移地址单元中,只要将ES设定为0,DI中设定为n4,使用STOSW指令即可完

16、成中断服务程序首地址的装入。 .CLI;关中断MOV AX ,0 MOV ES , AX ;置附加段基地址为0MOW DI , n4 ;置附加段偏移地址到DIMOV AX ,OFFSET INT_VCE ;置中断程序的首地址的偏移 ;量到AXCLDSTOSWMOV AX ,SEG INT_VCE ;置中断程序首地址的段基 ;地址到AXSTOSWSTI ;开中断.8.3.4 中断矢量表的初始化利用软件中断指令“INT 21H”以及专门为更新中断服务程序地址的25H号功能来设置中断地址有两个非常显著的优点:DOS会采取措施用最安全可行的方法来存放中断矢量。使用时,范围更广泛。 8.3.4 中断矢量

17、表的初始化2. 用DOS系统功能调用 使用25H功能时要求:AL中存放中断矢量号;DS中存放中断服务程序所在段的基地址;DX 中存放中断服务程序的首地址与其所在段的首地址之间的偏移量(偏移地址)。例如,将中断矢量号为60H的中断地址置入。PUSH DSMOV DX,SEG INT60H ;段地址送DSMOV DS, DXMOV DX,OFFSET INT60H ;偏移地址送DXMOV AL,60H ;中断矢量号送ALMOV AH,25HINT 21HPOP DS 8.3.4 中断矢量表的初始化 若的外设的中断矢量号为6BH,则此中断矢量号对应的中断矢量表地址为001ACH开始的4个存储单元。设

18、中断服务程序所在段的基地址是1000H,偏移地址为2000H,可用传送指令将已知的中断服务程序首地址置入中断矢量表中。 8.3.4 中断矢量表的初始化3. 直接装入法 MOV AX,0MOV DS,AX ;设置数据段的段基地址为0MOV AX,2000HMOV WORD PTR01ACH,AX ;对偏移地址为01ACH单元 ;送双字MOV AX,1000H MOV WORD PTR01ACH+28.4 可编程中断控制器8259A功能: 在有多个中断源系统中,协助CPU实现对外部中断的管理,对它们进行优先级排队后向CPU发出中断请求信号特点:单片8259A能管理8级中断。若采用级联工作方式,可以

19、用9片8259A构成64级主从式中断系统具有中断判优逻辑功能,且对每一级中断都可以屏蔽或允许中断响应后,能将预置的中断类型码自动提供给CPU8259A通过编程可以工作在多种不同的方式,从而能方便的满足多种类型微机中断系统的需要8.4.1 8259A内部结构8.4 可编程中断控制器8259A8.4.1 8259A内部结构数据总线缓冲器:与DB挂接(低8位),传送控制字状态信息,中断向量。有了缓冲器,可直接挂接在总线上,没有缓冲器的设备,不能直接挂接在总线上读/写控制逻辑:接收CPU 的读/写控制命令和片选控制信息 RD: 由IN指令产生,实现读8259A(内部寄存器) WR:由OUT指令产生,实

20、现写8259A(命令字) A0:地址码,选择内部控制寄存器 A0=0:选择内部偶地址 A0=1:选择内部奇地址 CS:片选信号,凡是挂总线上的芯片都需分配一个来自于系统译码电路的选通信号级联缓冲器/比较器:用于多8259A系统,也称缓冲方式SP/EN:双功能信号,用于级联控制缓冲方式时,EN=0,表示允许8259A通过缓冲存储器输出 EN=1,表示CPU写8259A非缓冲方式时,SP表示主从关系,SP=1,表示主片,SP=0表示从片中断请求触发器(IRR): 8位寄存器,用来存放由外部输入的中断申请信号IR0IR7 。当某一个IRi端呈现高电平时,该寄存器的相应位置1,显然,最多有8个中断请求

21、信号同时进入IR0IR7端,则IRR将被置全“1”。至于被置“1”的请求能否进入IRR的下一级判优电路还取决于中断屏蔽寄存器IMR中相应位的状态 8.4.1 8259A内部结构8.4.1 8259A内部结构中断服务寄存器(ISR): 8位寄存器,用来存放或记录正在服务中的所有中断请求(如在多重嵌套时)。当某一级中断请求被响应,则ISR中相应位被置“1”,CPU执行它的中断服务程序期间,一直保持到该级中断处理过程结束为止。在多重中断时,ISR中可能有多位同时被置“1”,ISR可同时记录多个中断请求 中断屏蔽寄存器(IMR): 8位寄存器,用来存放对各级中断请求的屏蔽信息。由CPU设置,以决定某个

22、中断源是否被屏蔽,当该寄存器中某一位置“1”时,表示禁止该中断请求进入系统。通过IMR寄存器可实现对各级中断的有选择的屏蔽8.4.1 8259A内部结构中断优先级排队电路(PR):用来判别已进入IRR中的各中断请求的优先级别。当有多个中断请求同时产生并经IMR允许进入系统后,先由PR电路判定当前哪一个中断请求具有最高优先级,然后由系统首先响应这一级中断,并转去执行相应的中断服务程序。当出现多重中断时,由PR判定是否允许所出现的新的请求去打断正在处理的中断服务而被优先处理。一般的处理原则是允许高级中断打断低中断,反之不行 控制逻辑:依据中断请求寄存器IRR的位置情况和优先级排队电路PR的判定结果

23、,向8259A内部其他部件发出控制信号,并向CPU发出中断请求信号INT和接收来自CPU的中断响应信号INTA,控制8259A进入中断服务状态8.4.2 8259A的引脚功能8.4 可编程中断控制器8259A8.4.3 8259A的工作原理8.4 可编程中断控制器8259A1. 8259A中断控制过程 8.4.3 8259A的工作原理(1)8259A接收外部中断,IRR有8位,对IR0IR7,IRR接收来自某一引脚的中断请求后,对应位置1,锁存请求(2)逻辑电路根据IMR中的对应位是否屏蔽决定是否让其进入优先级排队电路。IMR中对应位为0,则允许进入,若对应位为1,则封锁(3)中断优先级排队电

24、路把新进入的中断请求和当前正在进行的以及排队等待的进行重新排队,决定最高优先级(4)ISR寄存器存放的是当前进行的中断服务的标志,如果新来的优先级足够高,则8259A会通过逻辑电路使输出端INT向CPU发中断请求。此时若IF=1,则CPU在执行完当前指令后,就可以响应中断8.4.3 8259A的工作原理对8086CPU而言,响应中断申请后,向8259A回送两个负脉冲INTA第一个INTA到达时,8259A做3件事: IRR锁存功能失效,不接受任何申请 使ISR相应位置位,提供判优依据 使IRR清零第二个INTA到达时,8259A做3件事: 恢复IRR功能 将中断类型号送上数据总线的D7D0,传

25、给CPU 如果方式控制字(ICW4),自动中断结束位为1,那么在第二个脉冲结束时,8259A会将第一个INTA脉冲到来时设置的ISR清02. 中断请求触发方式 8.4.3 8259A的工作原理注意:电平触发方式中,中断请求的电平信号持续时间不能太长,否则出现重复中断现象;也不能太短,否则出现中断请求丢失现象边沿触发方式中,不会出现重复中断现象或中断请求丢失现象电平触发方式边沿触发方式高电平有效上升沿有效8.4.3 8259A的工作原理3. 中断矢量号的设置中断类型码肯定是连续的,它们在中断类型表中的位置取决于D7D3 位的状态D7D6D5D4D3D2D1D0与用户选择类型码有关,选择系统没有占

26、用的0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR31 0 0 IR41 0 1 IR51 1 0 IR61 1 1 IR7例8-2:D7D3=01000 则中断类型码将40H47H,该控制字由指令送到8259A,当CPU响应中断时,由第二个INTA信号将它取走,送给CPU,取得中断服务程序入口地址8.4.3 8259A的工作原理4. 中断结束方式(1)普通EOI方式 当任何一级的中断服务结束时,CPU执行一段中断结束程序,给8259A回送一个EOI结束命令,将ISR中当前最高级别的中断标志清0注:该方式只有当前结束的中断过程是所有申请中断标志中级别最高时,才使用这种方

27、式。如果在中断服务程序中,曾经修改过中断级别,则决不能采用这种方式普通EOI方式特殊EOI方式自动EOI方式8.4.3 8259A的工作原理(2)特殊EOI方式当中断服务程序结束时,CPU给8259A回送EOI命令的同时,将当前结束的中断级别也会送给8259A。8259A可以将ISR中指定位清0。该方式可以在任何情况下使用 (3)自动EOI方式特点:中断服务程序中不用程序结束,只要执行IRET指 令即可,CPU响应中断时就将对应的ISR清“0”。 缺点:任何一级中断在执行中断服务程序期间,在8259中没有任何标记,如果出现了新的中断不管级别高低,只要IF=1,就能响应,造成“重复嵌套”现象的发

28、生 8.4.3 8259A的工作原理5. 8259A的优先级管理方式中断优先级确定后,一般的处理原则: 高级中断打断低级中断而被优先处理,禁止低级打断高级或同级中断相互打断中断屏蔽方式完全嵌套方式自动循环方式特殊完全嵌套方式(自学)8.4.3 8259A的工作原理(1)完全嵌套方式系统复位后自动进入的一种默认的基本方式,8259A的8个中断源在该方式下自动将IR0设置为最高级,IR7级别最低。要求在中断服务程序结束之前,执行一段程序,将要结束的中断请求的ISR相应位清“0”,以便响应下一级的中断请求。CPU响应中断时,要占用两个总线周期(2个INTA信号)并且进行断点(CS:IP,4字节)和现

29、场(FR, 2字节以及其它资源)保护,占用大量的栈空间在中断嵌套的过程中,CPU每响应一次中断进入中断服务程序后,执行一条STI指令,将IF置“1”,否则高级中断将无法进入系统8.4.3 8259A的工作原理任何一级中断处理完毕,CPU应向8259A回送EOI结束命令,以便8259A将ISR寄存器中的相应位清“0”,标志级中断结束普通EOI方式特殊EOI方式自动EOI方式(2)自动循环方式特点:改变中断请求优先级别基本思想:任何一级中断处理完,它的优先级别就被改为最低级,而将最高级赋给原来比他们低一级的中断请求8.4.3 8259A的工作原理 普通EOI循环方式 当任何一级中断被处理完后,CP

30、U给8259A回送普通EOI命令,8259A接收到这一命令后,将ISR寄存器中优先级最高的位清“0”,并赋给它最低优先级,而将最高级赋给它的下一级普通EOI循环方式自动EOI循环方式特殊EOI循环方式 自动EOI循环方式 任何一级中断响应后,在中断响应总线周期中,由第二个中断响应信号INTA的后沿自动将ISR寄存器中相应位清“0”,并立即改变各级中断的优先级别。改变方案与普通EOI循环方式相同(重复嵌套!)8.4.3 8259A的工作原理 特殊EOI循环方式 利用置位优先权指令对任何一个中断源(IRi)设置为最低级别,那么IRi+1应该是最高级别,其它各级按循环方式类推注意:使用置位优先权指令

31、后,正在处理的中断不一定在尚未处理完的中断中具有最高优先级,在该方式下只能是特殊EOI方式(3)中断屏蔽方式 CPU可以利用CLI指令,将IF清“0”,禁止一切可屏蔽中断,不能有选择的屏蔽,8259A可以有选择的屏蔽,可以响应任何级别的中断,也可以屏蔽任何级别的中断普通屏蔽方式特殊屏蔽方式8.4.3 8259A的工作原理 普通屏蔽方式将IMR中的1位或某几位置“1”,就可屏蔽中断请求CPU执行主程序时,禁止响应某级或某几级,IMR中相应位置“1”CPU在处理某级中断时,禁止高级别的某级或某几级,IMR中相应位置“1” 特殊屏蔽方式 当CPU正在处理某级中断时,要求对本级中断进行屏蔽,而允许优先

32、级比他高或低的中断进入系统,可利用控制寄存器的SMM位置位,使8259A进入这种特殊的屏蔽方式(4) 特殊完全嵌套方式 级联方式下有效,自学8.4.3 8259A的工作原理6. 8259A中断过程步骤 当一条或几条中断请求线(IRQ0IRQ7)变成高电平,则使IRR相应位置“1” 可用IMR对IRR进行屏蔽。通过优先级分析电路即PR,把当前未屏蔽的最高优先级的中断请求从INT输出,送至CPU的INTR端 若CPU是处于开中断状态,则在执行完当前指令后,便进入中断响应周期,一个中断响应周期共占用两个总线周期,在此期间,CPU发出两个中断响应信号。8259A在收到CPU的第1个中断应答信号后,将I

33、SR中的中断优先级最高的那一位置“1”,而将IRR的相应位复位成“0” 8259A在收到第2个信号后,将把对应的中断向量(中断类型号n)送到数据线,CPU读入该中断向量经乘4换算后便可转入相应的中断服务子程序 中断响应结束后,若在自动结束中断(AEOI)方式下,8259A在第2个脉冲结束时,会将ISR中相应位为“1”的位自动复位成“0”。若是非自动结束中断方式(EOI),则该位的“1”状态将一直保持到中断过程结束,由CPU发EOI命令才能复位成0 8.4.4 8259A的控制字及工作方式 8.4 可编程中断控制器8259A每片包含两个内部端口地址,一个偶地址端口(A0=0),一个奇地址端口(A

34、0=1),其它高位地址码由用户定义,用来做8259A的片选信号(CS)8259A中ISR、IRR及IMR的内容可以通过写控制命令字来加以改变。有两种类型的控制命令字:初始化命令字ICW:(ICW1ICW4),它们必须在初始化时写入。并且,一旦写入,一般在系统运行过程中就不再改变工作方式命令字或操作命令字OCW:(OCW1OCW3)它们必须在初始化命令后方能写入。它们用来对中断处理过程作动态控制。在一个系统运行过程中,操作命令字可以被多次设置8.4.4 8259A的控制字及工作方式1. 初始化命令字 8.4.4 8259A的控制字及工作方式(1)ICW1芯片初始化命令字 标记:A0=0,D4=1

35、标记ICW1,因为OCW2和OCW3也要求A0=0例8-2 8259A工作在80 x86CPU系统中,工作方式为级联、边沿触发,需设ICW4。MOV AL,00010101B;OUT 20H,AL ;A00,20H为8259A在微机 ;中的I/O端口地址8.4.4 8259A的控制字及工作方式(2)ICW2设置中断类型码初始化命令字,紧跟在ICW1之后,定义中断类型码的高5位,低3位由IRi确定 。 标记:A0=1D7D6D5D4D3T7T6T5D2D1D0T4T3A10A9A8A01与用户选择类型码有关,选择系统没有占用的0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR

36、31 0 0 IR41 0 1 IR51 1 0 IR61 1 1 IR7注:中断类型码一定是连续的!8.4.4 8259A的控制字及工作方式(3)ICW3 级联方式初始化字,紧跟在ICW2之后, 标记:A0=1 自学(4)ICW4 对于8086/8088系统是必须设置的预置命令字 方式控制初始化命令字,写ICW4的标记为A0=18.4.4 8259A的控制字及工作方式当8259A经预置ICWi后,已进入初始状态,便可接受来自IRi端的中断请求,然后自动进入操作命令字状态,准备接受由CPU写入8259A的操作命令字OCWi8259A有3个操作命令字,即OCW1OCW3,操作命令字是在应用程序中

37、设置的对OCWi的操作,次序上没有严格的要求对端口地址有严格的规定,即OCW1必须写入奇地址端口,OCW2和OCW3必须写入偶地址端口2. 操作命令字 8.4.4 8259A的控制字及工作方式当8259A经预置ICWi后,已进入初始状态,便可接受来自IRi端的中断请求,然后自动进入操作命令字状态,准备接受由CPU写入8259A的操作命令字OCWi8259A有3个操作命令字,即OCW1OCW3,操作命令字是在应用程序中设置的对OCWi的操作,次序上没有严格的要求对端口地址有严格的规定,即OCW1必须写入奇地址端口,OCW2和OCW3必须写入偶地址端口8.4.4 8259A的控制字及工作方式(1)OCW1中断屏蔽操作命令字,标

温馨提示

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

评论

0/150

提交评论