8259A芯片使用方法_第1页
8259A芯片使用方法_第2页
8259A芯片使用方法_第3页
8259A芯片使用方法_第4页
8259A芯片使用方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、一、8259A的引线及部结构1、弓I脚信号8259A引脚信号如下图所示:GS12BVVVR727AOR0326丽0?425IR7Oe524IRSDfie23IR5722IR403e211的Ss2DIR20119IR1WtiIBIRDCASO1217IHTCAS113IBEPJENGNO1415CAS38259A引脚图D7DO :双向、三态数据线,与系统数据总线相连。对8259A编程时,命令字由此写入;在第二个中断响应总线周期中,中断类型码由此传给CPU。RD :读信号,输入,与系统控制总线 1OR 相连。Rd =0时,CPU对8259A进行 读操作。WR :写信号,输入,与系统控制总线IOW

2、相连。当 WR =0时,CPU对8259A进行写操作。A0 :片寄存器寻址信号,输入,用于对片寄存器端口寻址。每片8259A有两个寄存器端口,A0=0时,选中偶地址端口, A0=1时,选中奇地址端口。在与 8088系统相连时, 可将该引脚与地址总线的 A0连接;与8086系统连接时,可将该引脚与地址总线的 A1 连接。CS :片选信号,输入。CS =0时,8259A被选中。在与8088系统相连时,系统地 址信号A15A1经译码器译码后为 8259A产生片选信号。SP /EN :双功能双向信号。当 8259A工作在缓冲模式时,它作为输出,用于控制 缓冲器的传送方向。 当数据从CPU送往8259A

3、时,SP /EN 输出为高电平;当数据 从8259A送往CPU时,SP /EN 输出为低电平。当 8259A工作在非缓冲模式时, 它作为输入,用于指定 8259A是主片还是从片(级联方式)。SP /EN =1的8259A 为主片,SP /EN =0的8259A为从片。INT :中断请求信号,输出,与CPU的中断请求信号线INT相连。在级联方式下,从片的INT与主片的IR7IR0中的某一根连接在一起。INTA :中断响应信号,输入,与 CPU的中断响应信号线INTA 相连。CAS2CAS0 :级联控制线,主片的 CAS2CAS0与从片的 CAS2CAS0对应相连。对于主片,CAS2CAS0为输出

4、信号;对于从片,CAS2CAS0为输入信号。当从片发起的中断请求被响应时,主片通过CAS2CAS0送出相应的编码给从片,告诉从片该中断请求被允许。IR7IR0 :中断请求输入信号,由外设输入。上升沿(边沿触发方式)或高电平(电平+ 5V电源输入信号。 电源地触发方式)表示有中断请求到达。VCC :GND :2、部结构的部结构如下图所示:IN1.A内聯4氓hrxr i T WKMn MR8259A的部结构图MASflisfrRIKKinw#I3XIMJ L價冲址HE8259A8位寄存器。数据线 D7DO与CPU系统数据总线连数据总线缓冲器 数据总线缓冲器为三态、双向、接,构成CPU与8259A之

5、间信息传送的通道。读/写控制逻辑读/写控制逻辑用来接收来自系统总线的读/写控制信号和端口地址寻址信号,用于控制8259A部寄存器的读/写操作。级联缓冲/比较器/比较器提供多8259A既可以工作于单片方式,也可以工作于多片级联方式。级联缓冲 片8259A的管理和选择功能,其中一片为主片,其余为从片。中断控制逻辑中断控制逻辑按照编程设定的工作方式管理中断,负责向片各部件发送控制信号,向CPU发送中断请求信号INT和接收CPU回送的中断响应信号INTA ,控制8259A进入中断管理状态。中断请求寄存器(interrupt request register, IRR)IRR是一个8位(D0D7 )寄存

6、器,它接受并锁存来自IR0IR7的中断请求信号,也口 号上出现中断请求信号时,对应的Di置1。因为同一时刻可能有多个中断请求到达,可能有多个位置1。第一个中断响应信号就是说它记录着当前的中断请求。D0D7与中断请求信号IR0IR7对应,当IRi (i = 07)因此IRRINTA 到达后(CPU在对8259A的中断请求INT进行响应时,会连续返回两个中断响应信号INTA ,产生两个中断响应总线周期),如果8259A决定使IRi得到响应,则会将对应的 第一个中断响应脉冲INTA 到达后,Di清除。IRR锁存功能失效,不接受IR0IR7上的中断请求信号;直到第二个中断响应脉冲INTA 结束后,IR

7、R锁存功能才得以恢复。中断服务寄存器(interrupt service register, ISR)ISR是一个8 位( IS0IS7)寄存器,用于记录 CPU当前正在服务的中断。IS0IS7与中断请求信号IR0IR7对应。第一个中断响应脉冲INTA 达到后,如果 8259A决定使IRi得到响应,则会将对应的ISi (i = 07)置1,表示IRi正在被服务。ISi的复位则由8259A中断结束方式决定。若8259A被设置为自动结束方式,ISi会在第二个中断响应脉冲INTA的后沿被自动复位为 0;若8259A被设置为非自动结束方式,则Di应由其对应的中断服务程序发送来的中断结束命令(EOI)复

8、位。ISi置1可阻止与其同级或更低优先级的中断请求被响应,但不能阻止比其优先级高的中断请求被响应,即允许中断嵌套。因此,ISR中可能不止一位被置 1。中断屏蔽寄存器(interrupt mask register, IMR )IMR是一个8位(IM0IM7 )寄存器,用来存放IR0IR7的中断屏蔽标志。IM0IM7 与中断请求信号IR0IR7对应,用于屏蔽IRi。当IMi=1时,对应的IRi中断请求被禁止; IMi=0时,对应IRi中断被开放。优先权判决器(priority register , PR)优先权判决器将IRR中记录的当前中断请求与 ISR中记录的CPU正在服务的中断按中断 优先级

9、排队并进行比较,如果IRR中优先级最高者的优先级高于ISR中优先级最高者,则由中断控制逻辑向 CPU发出中断请求信号INT,使CPU暂停当前的中断服务,转而响应IRR中优先级最高者,即进行中断嵌套;否则8259A不向CPU发起中断请求INT , CPU继续当前的工作。二、8259A的工作过程1、 接受来自IR0IR7的中断请求,使IRR的对应位置1。2、 PR对IRR中记录的且未被屏蔽的中断和IRS中记录的中断进行优先权判决,并决定是否向CPU发起中断请求INT。如果IRR中优先级最高者的优先级高于ISR中优先级最高者,则向CPU发出中断请求信号INT,否则不发出。3、 CPU收到INT,如果

10、IF=1,则待当前执行的指令结束后连续返回给8295A两个中断响 应信号INTA 。4、 8295A收到第一个中断响应信号INTA 后(1) 使IRR的锁存功能失效,不再接受中断请求,直到第二个中断响应信号INTA 结束后恢复。(2) 对IRR中记录的优先级最高的中断请求进行响应:使其对应的ISR位置1,并使其对应的IRR位复位。5、 8295A收到第二个中断响应信号INTA 后(1)将被响应中断的中断类型码送CPU。CPU用中断类型码乘以 4就得到了该中断的中断向量的地址,然后从该地址中取出中断向量,转而执行该中断的中断服务程序,即对该中断进行服务。如果8295A工作在自动结束方式,在第二个

11、中断响应脉冲INTA 的后沿,会使被响应中断对应的ISR位复位。如果8295A工作在非自动结束方式,则中断服务程序在结束 之前,应通过中断结束命令(EOI)使中断对应的ISR位复位。三、8259A的工作方式8259A的中断管理功能很强,单片可以管理8级外部中断,在多片级联方式下最多可以管理64级外部中断,并且具有中断优先权判优、中断嵌套、中断屏蔽和中断结束等多种中 断管理方式。1、中断优先方式一般情况下,8259A总是响应优先级最高的中断请求,而且使 CPU暂停对低优先级中断的服务,转而服务高优先级的中断,即中断嵌套。8259A的中断优先方式分为两种:固定优先级方式在固定优先级方式中,IR0I

12、R7的中断优先级是固定不变的,除非通过编程重新设置 优先级别。8259A在加电后就工作在固定优先级方式,刚加电时,IROIR7默认的优先级顺序是:IRO, IR1 , IR2,IR7,其中,IR0的优先级最高,IR7的优先级最低。自动循环优先级方式在自动循环优先级方式中, IROIRO 优先级是可以改变的。其变化规律是:当某个中 断请求的服务结束后,它的优先级自动降为最低,原来比它低一级的中断则变为最高级, IROIR7 的优先级按右循环方式改变。例如,若初始优先级从高到底依次为IRO, IR1,IR2 ,,IR7,此时如果IR4和IR6有中断请求,则先服务 IR4。在IR4被服务之后,它自

13、动降为最低级, IR5 变为最高级,这时中断优先级顺序变为:IR5,IR6,IR7,IRO,IR1 ,IR2 , IR3 , IR4。这种优先级管理方式,可以使8个中断请求都可享受同等优先服务的权利。自动循环优先级方式分为普通自动循环方式和特殊自动循环方式两种: 普通自动循环方式的特点是: IR7IRO 的初始优先级顺序由系统指定, 即优先级从 IRO 到 IR7 依次降低。以后随着中断的产生,它们的优先级顺序将按右循环方式自动改变。而特殊自动循环方式的特点是: 通过编程人为地将某个中断请求降为最低级, 而其它中 断请求的优先级也随之改变, 以后随着中断的产生, 它们的优先级顺序将按右循环方式

14、自动 改变。例如,通过编程将 IR4 降为最低级后, IR7IRO 的优先级顺序则变为: IR5,IR6, IR7,IRO ,IR1 ,IR2,IR3 ,IR4。2、中断嵌套方式无论是固定优先级方式而是自动循环优先级方式, 它们都允许中断嵌套, 即允许更高优 先级的中断打断 CPU当前的中断服务过程,使 CPU转而为更高优先级的中断进行服务。 8259A 允许两种嵌套方式:普通全嵌套方式普通全嵌套方式是 8259A 最常用的工作方式,简称为全嵌套方式,它是 8259A 初始化 后默认的工作方式。其特点是:在 CPU 进行中断服务时(即执行中断服务程序过程中), 若有新的中断请求到来, 8259

15、A 只允许比当前服务的中断请求的优先级 “高”的中断请求进 入(也就是为比当前服务的中断请求的优先级“高”的中断请求向CPU发出INT信号),而不允许“同级”或“低级”的中断请求进入。特殊全嵌套方式特殊全嵌套方式是 8259A 在多片级联方式下使用的一种嵌套方式。其特点是:在 CPU 进行中断服务时, 8259A 除了允许更高优先级的中断请求进入外, 还允许同级中断请求进入, 从而实现了对同级中断请求的特殊嵌套。在级联方式下, 主片通常设置为特殊全嵌套方式, 从片设置为普通全嵌套方式。 这样设 置的好处在于: 当从片的某个中断请求得到响应并进入中断服务期间后,来自该从片的 “更高级” 的中断请

16、求仍能被主片响应。 这是因为从片的所有中断请求都是通过同一个 IRi 引入 主片, 对于主片来说, 来自从片的所有中断请求都属于同级, 而特殊全嵌套方式允许同级的 中断请求进入,因此主片能响应来自从片的“更高级”的中断请求。3、中断屏蔽方式中断屏蔽方式是对 8259A 的中断请求 IROIR7 进行屏蔽的一种中断管理方式, 有普通 屏蔽方式和特殊屏蔽方式两种。普通屏蔽方式普通屏蔽方式是通过 8259A的中断屏蔽寄存器(IMR )来实现对中断请求IRi的屏蔽。 通过编程写入操作命令字0CW1,将IMR中的IMi位置1,以达到对相应的IRi (i = 07)中断请求的屏蔽。一旦 IRi 被屏蔽,它

17、就不可能被 8259A 响应。特殊屏蔽方式在某些应用场合, 我们希望正在被 CPU 服务的中断能够被更低优先级的中断请求打断。 为达到这个目的,自然会想到使 IMR 中的相应位置 1,使本级中断受到屏蔽,从而为更低 优先级的中断请求进入提供可能,但是这样做有一个问题:每当一个中断请求被响应时, 8259A会使该中断对应的ISR位置1,只要CPU没有对该中断发出中断结束命令( EOI), 8259A 就会禁止所有比它优先级低的中断请求进入。如果 8259A 工作在特殊屏蔽方式,使 IMR的某位置1,就会同时使ISR的对应位自动复位。 这样就可以使更低优先级的中断请求 进入,当然未被屏蔽的更高优先

18、级的中断请求也可以进入。可以通过编程写入操作命令字 0CW3来设置或取消特殊屏蔽方式。4、中断结束方式当一个中断请求IRi得到响应时,8259A会将其对应的ISR位置1,CPU服务完该中断 后,应及时清除其对应 ISR位,否则就意味着 CPU仍在为该中断服务,致使比它优先级低 的中断请求无法进入。8259A提供了以下三种中断结束方式:自动结束方式如采用自动结束方式,则刚被响应的中断请求对应的ISR位会在第二个中断响应脉冲!NT的后沿被复位。这种中断服务结束方式是由硬件自动完成的。需要注意的是:尽管 中断请求对应的isr位被清除,但其中断服务程序并不一定真正结束,若在中断服务程序 的执行过程中有

19、另外一个比其优先级低的请求信号到来,因8259A并没有保存任何标志来表示当前中断服务尚未结束,致使低优先级中断请求进入,打断当前中断服务程序的执行。 因此这种方式只适合用在没有中断嵌套的场合。普通结束方式如采用普通结束方式,则中断服务程序在结束之前应向8259A写入一个包含了普通 EOI命令的操作命令字 0CW2,该命令不指定需复位的ISR位。收到该命令后,8259A会清除ISR中已置1的优先级最高的那一位。在普通全嵌套方式下,因为CPU正在服务的中断只会被优先级更高的中断请求打断,因此当前结束的中断必定是所有正在服务的中断中优先级最高的,它对应着ISR中已置1的优先级最高的那一位,因此普通结

20、束方式适用于普通全 嵌套方式下的中断结束。特殊结束方式特殊结束方式要求中断服务程序在结束之前向8259A写入一个包含了特殊 EOI命令的操作命令字0CW2,该命令要指定需复位的ISR位。由于在特殊 EOI命令中明确指出了复 位ISR中的哪一位,因此,它可以用于普通全嵌套方式下的中断结束,更适用于优先级嵌 套结构有可能遭到破坏时(CPU正在服务的高优先级中断被低优先级/同级的中断请求打断)的中断结束。在此,对级联系统中的从片的中断结束处理做一些说明。在主片设置为特殊全嵌套方式,从片设置为全嵌套方式的情况下,从片可能出现中断嵌套。来自从片的任意中断的中断服务程序在结束之前,都应先向从片发出一个普通

21、EOI命令,使其本身对应的ISR位复位,然后读出ISR的容,如果为0,则向主片发出一个特殊 EOI命令,清除主片中与引入从片的 IRi对应的ISR位;如果从片ISR的容不为0,则说明从片中仍有中断服务尚未完成,此时,则不需要向主片发出特殊EOI命令。5、中断触发方式中断请求输入端IR0IR7可采用的中断触发方式有电平触发和边沿触发两种,由初始 化命令字ICW1中的LTIM位来设定。当LTIM设置为1时,为电平触发方式。8259A检测到IRi (i = 07)端有高电平时产 生中断。如采用这种触发方式, 中断请求信号在被响应后应及时撤除, 否则可能引起不该有 的第二次中断。当LTIM设置为0时,

22、为边沿触发方式。8259A检测到IRi端有由低到高的跳变信号时 产生中断。无论采用哪种中断触发方式,中断请求信号都应维持足够的宽度,即在第一个中断响应信号INTA 到达之前,都必须保持高电平。6、级联工作方式当中断源超过8个时,就无法用一片 8259A来管理,这时可采用 8259A的级联工作方 式。指定一片8259A为主控芯片(主片),它的INT输出端接到CPU的INT输入端,而其 余的8259A芯片均作为从属芯片(从片),其INT输出端分别接到主片的不同IR输入端。由于8259A有8个IR输入端,故一个主片可连接8个从片,最多允许有 64个IR中断请求输入。由一片主片和两片从片构成的级联中断

23、系统如下图所示,其中省略了用于产生片选信号的译码器。8259A多片级联方式的硬件连接图在级联系统中,主片和从片都有独立的地址,而且需分别进行初始化编程来设置各自的初始工作方式。若中断请求来自于从片,该请求将通过从片的INT输出端传给主片,一旦该请求被主片响应,主片会通过 CASO CAS02来通知相应的从片,而从片即可把该中断请求对应的中 断类型码放到数据总线上,使该中断请求得到CPU的服务。7、总线连接方式8259A数据线与系统数据总线的连接有缓冲和非缓冲两种方式。缓冲方式如果8259A通过总线驱动器和系统数据总线连接,8259A应选择缓冲方式。当设置为缓冲方式后,SP /EN 即为输出引脚

24、。在 8259A向CPU传送中断类型码的时候,SP / EN 输出一个低电平,用此信号作为总线驱动器的启动信号。非缓冲方式如果8259A的数据线与系统数据总线直接相连,那么8259A工作在非缓冲方式。四、8259A的编程8259A是可编程中断控制器,在其工作之前,必须采用写入控制命令的方法来对其进行初始化;在其工作时,还可以采用相同的方式来改变其工作状态,这就是8259A的编程。控制命令分为初始化命令字ICW和操作命令字 OCW。ICW有4个,分别是ICW1ICW4 ;OCW有3个,分别是OCW1OCW3,它们被写入8259A后,分别保存在相应的寄存器中, 例如,ICW1保存在ICW1寄存器中

25、,OCW1保存在OCW1寄存器中。8259A的编程分为初 始化编程和操作方式编程。初始化编程在8259A工作之前,通过软件向其写入初始化命令字ICW1ICW4,设置其初始工作方式。操作方式编程在8259A工作的过程中,通过软件向其写入操作命令字OCW1OCW3,改变其工作方式。OCW可在8259A初始化后的任何时刻写入。1、8259A部寄存器的寻址方法8259A有多个部寄存器,单靠CS和A0无法满足寄存器寻址的需要,因此还要在RD 、WR 和数据线D3、D4的配合下,才能完成对多个部寄存器的访问。部寄存器的 访问方法如下图所示:CS WR RDS D)功 ftQ 1 tt X5ECWj0 0

26、11X X5ICW10 I X X常 ICW)0411X X5JCW(Q 01 tX x5 0CWi04 i ft0 4SOCWj0414m iOCWf01 d 9X X1KKG I 0 ftX XC I 01X Xit JMR0 10 1X X8259A的端口分配及读/写操作功能表2、8259A的初始化顺序8259A中的寄存器端口地址有两个,一个是奇地址(A0=1 ), 一个是偶地址(A0=0 )。通过上表可以看出,在往 8259A写入控制命令时,若 A0=1,则写入的对象包括 4个寄存器 ICW2、ICW3、ICW4和0CW1,这说明四个寄存器端口共用同一个I/O地址,为了区分写入的到底是

27、哪个寄存器,8259A规定了严格的写入顺序,即按照ICW2宀ICW3 ICW4宀0CW1的顺序写入。同样在初始化时,ICW1ICW4的写入也必须遵循ICW1TICW2TICW3 t ICW4这样的顺序。3、8259A的初始化命令字 ICW通过初始化编程,可将 ICW写入8259A,设置其初始工作方式。(1)ICW1写ICW1的条件为:A0=0 , D4=1,这时,写入的数据被当成是ICW1。写ICW1意味着对8259A进行初始化,同时 8259A还会完成以下工作:清除ISR和IMR。将中断优先级顺序设为初始状态:IR0 (最高)IR (最低)。采用普通屏蔽方式。采用非自动中断结束方式。ICW1

28、的格式如下图所示:氐 用11LTIMADISKGI.rah IJAICWj1=0:边沦粒发伽忙;人|艸| 一 k览片方式0:掘哌疔tI;辑用何隔为40=调HI倒隔为*图ICW的格式IC4 :指示在初始化时是否需要写入命令字ICW4。在80x86 CPU系统中需要定义ICW4 ,即设IC4 = 1。SNGL :指示8259A在系统中使用单片还是多片级联。SNGL = 1为单片,SNGL = 0为多片级联。ADI :设置调用时间间隔,在80486 CPU中无效。LTIM :定义IRi的中断请求触发方式。LTIM = 1为电平触发,LTIM = 0为边沿触发。D4: ICW1的标志位,恒为 1。D5

29、D7 :未用,通常设置为 0。 ICW2ICW2的写入条件为:A0=1,它只能在ICW1写入之后写入。ICW2用于设置中断类型 码,其格式如下图所示:Dtd6D,Pi514i;IDJD Dia m mi)E000SI KMBUFMSA!X)IHPh特矗完全铁偿t; KCRX6 A h门动糾東0:非祐殊完全恢(Kt D缓冲10:堰冲/从片H:缱帥I:片图ICW4的格式mP:设置 CPU 模式。mP= 1 为 80x86 模式,mP= 0 为 8080/8085 模式。AEOI :设置8259A的中断结束方式。AEOI = 1为自动结束方式,AEOI = 0为非自动结 束方式。M/ S :选择缓冲

30、级联方式下的主片与从片。M/ S = 1为主片,M/ S = 0为从片。BUF :设置缓冲方式。 BUF = 1为缓冲方式,BUF = 0为非缓冲方式。SFNM :设置特殊全嵌套方式。 SFNM = 1为特殊全嵌套方式,SFNM = 0为普通全嵌套 方式D7D5 :未定义,通常设置为 0。需要注意:当多片 8259A级联时,若在8259A的数据线与系统总线之间加入总线驱动器,SP /EN 则作为总线驱动器的控制信号使用,此时D3位BUF应设置为1。主片和从片的区分不能再依靠 SP / EN 引脚,而是由M/ S来选择,当M/ S = 0时为从片;当M/ S = 1时为主片。如果 BUF = 0

31、,贝U M/ S定义无意义。4、8259A的操作命令字 OCW在8259A工作时,可通过写入 OCW,改变其工作方式。 OCW1OCW3的写入没有固 定顺序。(1) OCW1A0=1。通过它可控制哪些中断请求被屏蔽。其格式下图所示:OWC1的写入条件为:当Mi=1时,对应的(2) 0CW20W2的写入条件为: 下图所示:图OCW1的格式IRi请求被禁止;当 Mi=0时,对应的IRi请求被允许。A0=0。0WC2用于设置中断优先方式和中断结束方式。其格式如D*tlD:| Kst.1:ot00| Lj| Li0nuEHIRIk:IRj叫IR -WI:Oik mh ni :nOo; HOi Oil)

32、.冋逋I OI万式 mi方式 凶鹏环;屏讷EOI咔 eoi 方成 仪能忧呢缴I功卿*命令 洛碗优世附肓动馅幷命少尤捉作图OCW2的格式R= 0为固定优先级方式。R:设置中断优先方式。 R = 1为自动循环优先级方式;D4、D3为0CW2标志位,必须都设为 0。SL :设置特殊自动循环方式。当 SL=1时,若EOI=0且R=1 , L2L0对应的IRi的优先 级被设为最低; 若E0I=1,L2L0对应的ISR位被复位。SL=0时,L2L0的编码无效。L2L0 :对应着IR7IR0和IS7 IS0。当SL=1时,它有两个作用:若 EOI=0且R=1 , L2L0对应的IRi的优先级被设为最低;若

33、E0I=1 , L2L0对应的ISR位被复位。EOI:中断结束命令。当 EOI = 1时,若SL=1,则使L2L0对应的ISR位复位,这种 结束中断的方式称为特殊中断结束方式;若SL=0 ,则使ISR中置1的优先权最高位复门,D*DiD.i0?叫/:E SMMSMM0|卩RR IRIS(3) OCW3OCW3的写入条件为:A0=0 , D4=0, D3=0。其格式如下图所示:JQi it IRRI lh ftISR位,这种结束中断的方式称为普通中断结束方式。Ox:无效U卄心八戒lli-图OCW3的格式OCW3有三个功能:设置中断屏蔽方式ESMM与SMM组合可用来设置或取消特殊屏蔽方式。当ESM

34、M = 1 , SMM = 1时,设置特殊屏蔽;当 ESMM = 1 , SMM = 0时,取消特殊屏蔽。查询中断请求当CPU禁止中断(IF=0)或不希望8259A发起中断请求INT时,就可以采用8259A的 查询工作方式来查询 8259A的中断状态。为此,可先写一个 P=1的OCW3到8259A,然后 再从同一 I/O地址读入数据,就可得到下图所示的中断状态寄存器的容。1=1表示8259A的IR7IR0有中断请求产生,其中优先级最高的IRi的序号由R2R0给出;否则表示无中断产 生。DDi Dj D? D= D, .刍nrm的域海优光扱的图中断状态寄存器读8259A部寄存器先写一个RR=1、

35、RIS=0的OCW3到8259A,再从同一个端口地址读入数据,就可读入 IRR的容。先写一个RR=1、RIS=1的OCW3到8259A,再从同一个端口地址读入数据,就可读入 ISR的容。例如,设8259A的两个端口地址为 20H和21H , OCW3、ISR和IRR共用一个地址 20H。 读取ISR容的程序段为:MOV AL, 00001011B;设置好命令字 OCW3,使 RR=1、RIS=1OUT 20H, AL;将 OCW3 写入 8259A 的 20H 端口IN AL, 20H;从同一个端口读出 ISR容至AL中读取IRR容的程序段为:MOVAL, 00001010BOUT20H, A

36、LINAL, 20H;设置好命令字 OCW3,使RR=1、RIS=0;将OCW3写入8259A的20H端口;从同一个端口读出IRR容至AL中读取中断状态寄存器的程序段为:MOVAL, 00001111BOUT20H, ALINAL, 20H;设置好命令字 OCW3,使P=1;将OCW3写入8259A的20H端口AL中;从同一个端口读出中断状态寄存器的容至5、8259A的初始化编程8259A的初始化编程需要写入初始化命令字ICW1ICW4,对它的各种工作方式进行设置。但由于ICW1ICW4使用两个端口地址,即 ICW1用A0 = 0的端口,ICW2ICW4 使用A0 = 1的端口,因此初始化程序

37、应严格按照系统规定的顺序写入,即先写入ICW1,接着写 ICW2, ICW3, ICW4。8259A的初始化流程如下图所示。需注意的是,如果多个 8259A级联在一起工作,主片和从片应分别进行初始化。操作命令字OCW1OCW3的写入比较灵活,没有固定的顺序,可以在主程序中写入,也可以在中断服务子程序中写入;可以在初始化时写入,也可以在工作以后写入,视需要而定。下面通过例子来说明如何编写8259A的初始化程序。图ICW的写入顺顺序【例】某微机系统使用主、从两片 8259A管理中断,从片中断请求 设主片工作于特殊完全嵌套、非缓冲和非自动结束方式,中断类型号为 址为20H和21H。从片工作于完全嵌套

38、、非缓冲和非自动结束方式, 端口地址为80H和81H。试编写主片和从片的初始化程序。INT与主片的IR2连接。40H47H,端口地 中断类型号为70H77H ,根据题意,设置 ICW1, ICW2, ICW3 程序如下:主片 8259A 的初始化程序如下:MOVAL, 00010001BOUT20H, ALMOVAL, 01000000BOUT21H, ALMOVAL, 00000100BOUT21H, ALMOVAL, 00010001BOUT 21H, AL 从片 8259A 初始化程序如下:MOVAL, 00010001BOUT80H, ALMOVAL, 01110000BOUT81H,

39、 ALMOVAL, 00000010BOUT81H, ALMOVAL, 00000001BOUT 81H, AL6、 中断程序的设计和 ICW4 的格式,按上图的顺序写入。编写初始化; ICW1 :级联 , 边沿触发 , 需要写 ICW4 写 ICW1; ICW2 :中断类型号 40H写 ICW2; ICW3 :主片的 IR2 引脚接从片写 ICW3; ICW4 :特殊完全嵌套、非缓冲、自动结束 写 ICW4; ICW1 :级联 , 边沿触发 , 需要写 ICW4; 写 ICW1; ICW2 :中断类型号 70H写 ICW2; ICW3 :接主片的 IR2 引脚写 ICW3; ICW4 :完全嵌套、非缓冲、非自动结束; 写 ICW4中断程序的设计包括主程序和中断服务程序两部分。 主程序的设计主要包含以下步骤:(1) 关中断 在主程序对中断进行相关设置之前, 应关闭 CPU 的中断标志位, 防止 CPU 在该过程中 响应中断。(2)保存原中断向量 在把自己的中断服务程序入口地址 (中断向量) 设置到中断向量表之前, 应先保存该地 址中原来的容(原中断向量)。通过 INT 21H 的 35H 号功能调用可取出原中断向量,取出 的中断向量放在 ES:BX 中,其中 ES 包含的是入口地址中的段地址, BX 包含的是入口地址 中的

温馨提示

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

最新文档

评论

0/150

提交评论