《第9章-可编程中断控制器.ppt》由会员分享,可在线阅读,更多相关《第9章-可编程中断控制器.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259ANUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2 28259A的中断管理3 38259A的编程4 48259A的应用举例5 52NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2 28259A的中断管理3 38259A的编程4 48259A的应用举例5 539.1 8259A9.1 8259A的主要功能的主要功能8259A的主要功能 一片8259A可以管理8
2、级中断,且可以多片级联,最多可以用9片构成64级的主从式中断管理。对任何一级中断都可以单独屏蔽。可以通过编程,使8259A工作在不同方式下,使用灵活。能根据编程提供中断源的中断类型码。49.1 8259A9.1 8259A的主要功能的主要功能8259A的引脚及功能 中断请求中断响应数据线中断请求输入59.1 8259A9.1 8259A的主要功能的主要功能8259A的引脚及功能 级联信号从设备编程/缓冲器允许引脚内部寄存器选择。A0=0:ICW1,OCW2OCW3A0=1:ICW2ICW4,OCW1片选信号读、写信号69.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结
3、构 8位的寄存器,用来接收来自IR0IR7上的中断请求信号,当收到请求信号时就在IRR的相应位置位。外设产生中断请求的方式有两种:一种是边沿触发方式,另一种是电平触发方式。用户可根据需要通过编程来设置。79.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 8位的寄存器,用来存放中断屏蔽字,它是由用户通过编程(操作命令字OCW1)来设置的。IMRi与IRi一一对应,当IMR中第i位置位时,就屏蔽了来自IRi的中断请求,使锁存于IRRi位的中断请求不能送达优先权裁决电路参加排队,也就是说,禁止了IRi的中断请求获得服务的机会。这样用户就可以根据需要设置IMR的值,从而改
4、变系统原有的中断优先级。89.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 标记了CPU正在为哪些中断源服务,这又分为两种情况:其一,若CPU不处于中断服务状态,有未被屏蔽的中断请求,CPU满足中断响应条件,将响应这些请求中级别最高的中断。如经中断优先权裁决电路裁决IRi的中断请求被响应,当8259A收到第一个中断响应信号时将使ISRi置“1”,而IRRi清“0”。ISRi置1表明CPU正在为IRi端的中断请求服务;而IRRi由1变0则表示IRi端的中断请求已被响应。其二,若CPU正在为中断源服务,比如正在为IR6端的中断请求服务中,如果IR0又申请中断且没被屏蔽
5、,按8259A的默认优先级IR0高于IR6,因而CPU会暂停IR6的中断处理而响应IR0的中断请求,这样ISR0也被置1,此时IRS0、IRS6均为1,这表明IR0、IR6的中断服务均未结束。从该意义上而言,ISR的每一位都是“中断服务的标志位”。99.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 它是用来管理和识别各个中断源的优先级的,也分为两种情况。其一,根据优先级的规定,判别同时送达优先权电路的中断源(IRRi=1且IMRi=0的位)那一个级别最高。其二,根据当前服务寄存器的状态和新进入中断优先权裁决电路的中断请求,判别新的中断请求的级别是否更高,以决定是否
6、进入中断嵌套。10ISR寄存器寄存器中断屏蔽寄存器中断屏蔽寄存器IMR中中断断请请求求优优先先级级编编码码器器中中断断请请求求寄寄存存器器IRR比比较较器器B0B1B2ABA0A1A2ISR编码编码ISR7 ISR6 ISR5 ISR4 ISR3 ISR2 ISR1 ISR0INTD0 D7IR0IR1IR2IR3IR4IR5IR6IR7中断优先权裁决电路119.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 有一组初始化命令字寄存器(ICW1ICW4共4个)和一组操作命令字寄存器(OCW1OCW3共3个),这7个寄存器均由用户根据需要通过编程来设置。控制逻辑可以按
7、照编程所设置的工作方式来管理8259A的全部工作。在IRR中有未被屏蔽的中断请求位时,它可以输出高电平的INT信号向CPU申请中断。在中断响应期间,它使得ISR的相应位置位,并控制向CPU发送相应的中断类型码。在中断服务结束时,它按照编程指定的方式进行结束处理。129.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 8位的双向三态缓冲器,用作8259A与系统数据总线的接口。用来传输初始化命令字、操作命令字、状态字和中断类型码。139.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 它接收来自CPU的读写命令,完成规定的操作。具体动作由片选
8、信号CS,地址输入信号A0,以及读(RD)和写(WR)信号共同控制。149.1 8259A9.1 8259A的主要功能的主要功能 8259A的内部结构 在级联方式的主从结构中用来存放和比较系统中各8259A的从设备标志(ID)。其中CAS0CAS2是8259A相互间连接用的专用总线,用来构成8259A的主从式级联控制结构。SP/EN在缓冲方式下产生总线启动信号,以控制总线缓冲器的接收和发送.15NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2 28259A的中断管理3 38259A的编程4 48259A的应用举例
9、5 5169.2 8259A9.2 8259A的工作过程的工作过程 单片8259A的工作过程 中断源通过IR0IR7向8259A发中断请求,使得IRR 的相应位置位。若此时IMR中的相应位为0,即该中断请求没有被屏蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向CPU发中断请求。CPU接收到中断请求信号后,如果满足条件,则进入中断响应,通过引脚发出两个连续负脉冲。179.2 8259A9.2 8259A的工作过程的工作过程 单片8259A的工作过程 8259A收到第一个INTA时,做如下动作 使IRR的锁存功能失效,到第二个INTA时再有效。使ISR的相应位置位,表示已
10、为该中断请求服务。使IRR相应位清0,表明对应的中断请求被响应。189.2 8259A9.2 8259A的工作过程的工作过程 单片8259A的工作过程 8259A收到第二个INTA时,做如下动作 把中断类型码送往数据总线。如果8259A工作在中断自动结束方式,此时将清除ISR的相应位 如果8259A工作在中断非自动结束方式,此时不清除ISR的任何位,只有在中断服务结束时发出中断结束命令才会使ISR中的相应位清除。199.2 8259A9.2 8259A的工作过程的工作过程 多片级联的工作过程 在级联使用时,至少要两片8259A(一片主片,一片从片,所以也叫主从式连接),可管理15级外部中断。最
11、多允许9片8259A级联(其中一片为主片,8片从片),可管理64级中断 209.2 8259A9.2 8259A的工作过程的工作过程 多片级联的工作过程 主IR0 IR2 从A的IR0 IR7 主IR4 IR7 从B的IR0 IR721 多片级联的工作过程 9.2 8259A9.2 8259A的工作过程的工作过程级联时,从片上中断源的请求与响应过程:从片上的中断源通过IR0IR7向从8259A发中断请求 ,使得IRR 的相应位置位。若此时IMR中的相应位为0,即该中断请求没有被屏 蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向主8259A发中断请求。22 多片级联的工
12、作过程 9.2 8259A9.2 8259A的工作过程的工作过程 主8259A收到请求后若满足条件则通过INT向CPU 发中断请求 CPU接收到中断请求信号后,如果满足条件,则进 入中断响应,通过INTA引脚发出两个连续负脉冲,该INTA信号送给所有的8259A。23 多片级联的工作过程 9.2 8259A9.2 8259A的工作过程的工作过程 在各8259A收到第一个INTA时,使各自的IRR的锁存功能失效(目的是防止此时再来中断导致中断响应的错误),到第二个INTA时再有效。主片收到第一个INTA后使对应的ISR位置,并通过CAS0CAS2输出当前被响应的中断源所属从片的设备代码ID。每个
13、从片均收到这一设备代码并和自身的代码进行比较。24 多片级联的工作过程 9.2 8259A9.2 8259A的工作过程的工作过程 与主片送出的代码一致的从片则清除被响应的中断源的IRR位,置位被响应的中断源的ISR位,并做好把自身被响应的中断源的类型码送到数据总线的准备。在第二个INTA脉冲有效期间,由被选中的从8259A将中断类型码送上数据总线。CPU在中断响应周期的第二周期读取类型码,并生成中断向量表的地址,然后从向量表中读出中断向量转入相应的中断服务程序。25NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2
14、 28259A的中断管理3 38259A的编程4 48259A的应用举例5 5269.3 8259A9.3 8259A的中断管理的中断管理 中断优先级管理 中断结束管理 中断嵌套管理 中断屏蔽管理 279.3 8259A9.3 8259A的中断管理的中断管理 中断优先级管理 中断结束管理 中断嵌套管理 中断屏蔽管理 28中断优先级管理中断优先级管理固定优先级方式8259A复位后自动处于固定优先级方式,8个中断源的优先级别是固定的,依次为IR0 IR1 IR2 IR3 IR4 IR5IR6IR7。循环优先级方式设置为此方式后瞬时优先级为IR0 IR1 IR2 IR3 IR4IR5IR6IR7,一
15、旦某中断源的请求被响应后它就变成最低优先级,它的下一级上升为最高优先级。29中断优先级管理中断优先级管理特殊循环优先级方式在设置8259A为循环优先级的同时,还指明循环起始时的最低优先级。查询排序优先级方式一般用于中断级数多于64级的场合。由程序读取8259A的查询字来判断该8259A的中断源是否有请求。309.3 8259A9.3 8259A的中断管理的中断管理 中断优先级管理 中断结束管理 中断嵌套管理 中断屏蔽管理 31中断结束管理中断结束管理自动结束方式一般结束方式由CPU向8259A的偶地址写入一个一般的EOI命令来实现,一旦写入该命令字,ISR中为1的位中的最高优先权的ISR位就被
16、清除,从而结束了本级中断服务。在中断响应的第二周期中的INTA的后沿就自动清除ISR中的最高优先级位。这种结束方式不能用于中断嵌套管理。32中断结束管理中断结束管理特殊结束方式通过向8259A的偶地址写入一个特殊的EOI命令来实现,这个命令字特殊就特殊在清除指定要的ISR位,而不是象一般的EOI命令直接清除ISR中的最高优先权的ISR为1的位。339.3 8259A9.3 8259A的中断管理的中断管理 中断优先级管理 中断结束管理 中断嵌套管理 中断屏蔽管理 34中断嵌套管理中断嵌套管理完全嵌套方式8259A复位后自动处于这种方式,8259A按默认优先级管理中断,即优先级为IR0IR1IR7
17、;在该方式下,高级中断可以中断低级中断,低级或同级中断不能被响应。当一个服务结束时必须通过中断结束命令(用一般的EOI命令即可)清除该中断源所对应的在服务寄存器的ISR位。35 例 设某系统只用了1片8259A,初始化时设置为完全嵌套,一般结束方式,并设当前所有的ISR和IMR均为零。假设系统在执行主程序时,首先在IR2和IR4引脚上同时出现中断请求。然后IR1引脚上又有中断请求。36主程序初始化STIIR2,IR4有请求ISR2=1IR2中断处理程序 IR1有请求,开中断后才能被响应 STIIR1中断处理程序(嵌套)STI ISR1=1中断结束命令ISR1被清除 IRET返回IR2中断处理程
18、序中断结束命令ISR2被清除ISR4=1IR4中断处理程序 STI中断结束命令 IRET返回IR2中断处理程序 IRETISR2被清除返回主程序为什么低优先级的IR4可以打断高优先级的IR2的执行?37结论 进入中断处理程序后,只有执行STI指令,才能允许其他可屏蔽中断处理程序进行嵌套。进入中断处理程序后,如果STI指令使IF为1,但未用OCW2清除对应的ISR位,这种情况下,会允许比本中断优先级高的中断进入,形成符合优先级规则的嵌套。如果在STI指令之后,接着用OCW2命令清除了相应的ISR位,但中断处理过程并没有结束,这种情况下,中断嵌套就未必按优先级规则进行了。38 在主程序中如允许响应
19、可屏蔽中断,必须执行开中断指令使IF为1。每当进入一个中断处理程序时,系统会自动关中断,所以只有中断处理程序中再次开放中断,才有可能被较高级的可屏蔽中断嵌套。注意 每个中断处理程序结束时,必须执行中断结束命令,清除对应的ISR位,才能返回断点。否则,将阻止同级和低级中断被响应。39中断嵌套管理中断嵌套管理特殊全嵌套方式用于级联方式下主片的管理。例 某计算机系统由2片8259A构成主从式中断管理系统,主片IR4端接有1个从片,若从片上有1个中断源(IR6)的中断正在被CPU处理,则主片的ISR4=1,从片的ISR6=1。在处理从片的IR6中断时,该从片上又有高级别的中断源IR0请求服务。40方案
20、A:全嵌套方式级联情况下的中断管理。00000000从片(全嵌套方式)IRR00000010ISRIR0IR1IR2IR3IR4IR5IR6IR7优先级排队电路INT IR40000000主片(全嵌套方式)IRR00001000ISR优先级排队电路INT去CPU的INTR0从片的IR6被服务的情况4100000000从片(全嵌套方式)IRR00000010ISRIR0IR1IR2IR3IR4IR5IR6IR7优先级排队电路INT IR40000000主片(全嵌套方式)IRR00001000ISR优先级排队电路INT去CPU的INTR0从片的IR6被服务时又有IR0请求的情况1对于主片而言,该请
21、求属于同级中断,按全嵌套管理模式该请求将被屏蔽。42中断嵌套管理中断嵌套管理特殊全嵌套方式当来自某个从设备的中断请求进入服务时,主设备的优先权控制逻辑不封锁这个从设备,从而使来自该从设备的较高优先级的中断请求能被主设备识别,并向CPU发出中断请求。43方案B:特殊全嵌套方式级联情况下的中断管理。00000000从片(全嵌套方式)IRR00000010ISRIR0IR1IR2IR3IR4IR5IR6IR7优先级排队电路INT IR40000000主片(全嵌套方式)IRR00001000ISR优先级排队电路INT去CPU的INTR0从片的IR6被服务时又有IR0请求的情况1暂停从片IR6的服务14
22、4中断嵌套管理中断嵌套管理特殊全嵌套方式主片的中断结束必须先用软件检查被服务的中断是否是该从设备的唯一中断请求。为此,先向从设备发一个一般中断结束命令,清除已完成服务的ISR的相应位。然后读出从片的ISR内容,若全为零,则向主设备发出一个一般的EOI命令。反之,则不向主设备发出EOI命令。459.3 8259A9.3 8259A的中断管理的中断管理 中断优先级管理 中断结束管理 中断嵌套管理 中断屏蔽管理 46中断屏蔽管理中断屏蔽管理一般屏蔽方式只屏蔽本机中断,使得被屏蔽的中断源无权参加优先级排队。其余中断源仍然按原有中断管理模式进行。特殊屏蔽方式一般是在为某个中断源服务时进行,而不像一般屏蔽
23、方式是在响应之前。不仅屏蔽本级中断源的再次被响应,而且还自动清除被屏蔽中断源的ISR位。47NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2 28259A的中断管理3 38259A的编程4 48259A的应用举例5 5489.4 8259A 9.4 8259A 的编程的编程初始化命令字 ICW1ICW2ICW3ICW4499.4 8259A 9.4 8259A 的编程的编程初始化命令字 ICW1ICW2ICW3ICW40A0A7A6A5D7D6D51D4LTIMD3ADID2SINGLD1IC4D0中断向量地址的
24、A7A5,仅用于8080/8085系统,其他系统无意义。中断请求触发方式选择:1:电平触发0:边沿触发调用地址间隔(8080/8085用):1:4个字节0:8个字节1:单一82590:8259级联1:需用ICW40:不用ICW4509.4 8259A 9.4 8259A 的编程的编程初始化命令字 ICW1ICW2ICW3ICW4用于设定中断类型码0A0A15A14A13A12A11A10A9A8D7D6D5D4D3D2D1D0T7T6T5T4T38080/8085系统为中断向量地址的A15A8.8086/8088系统中为中断类型码的高5位519.4 8259A 9.4 8259A 的编程的编程
25、初始化命令字 ICW1ICW2ICW3ICW4有多片8259A级联时,才需要设置ICW31A0IR7IR6IR5IR4IR3IR2IR1IR0D7D6D5D4D3D2D1D01:该引脚有从片,0:该引脚无从片主片ID2ID1ID0D7D6D5D4D3D2D1D0从片从设备的ID编码529.4 8259A 9.4 8259A 的编程的编程初始化命令字 ICW1ICW2ICW3ICW41A00 0 0D7D6D5SFNMD4BUFD3M/SID2AEOID1PMD01:特殊完全嵌套方式0:完全嵌套方式0X:非缓冲方式10:缓冲方式,从片11:缓冲方式,主片1:自动结束方式0:非自动结束1:8086
26、/8088系统0:8080/8085系统539.4 8259A 9.4 8259A 的编程的编程初始化程序流程 ICW1(A0=0)ICW2(A0=0)级联方式?Y为主片?ICW3(A0=1)指出从片连接情况YNICW3(A0=1)指出本从片连接主片哪个引脚要写ICW4吗?YICW4(A0=1)NN549.4 8259A 9.4 8259A 的编程的编程 例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,
27、试完成初始化程序。0A0A7A6A5D7D6D51D4LTIMD3ADID2SINGLD1IC4D0ICW120H0001001ICW41(13H)559.4 8259A 9.4 8259A 的编程的编程 例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。ICW20A0A15A14A13A12A11A10A9A8D7D6D5D4D3D2D1D0T7T6T5T4T320H10110000(
28、B0H)569.4 8259A 9.4 8259A 的编程的编程 例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。ICW41A00 0 0D7D6D5SFNMD4BUFD3M/SID2AEOID1PMD021H00 000001(01H)579.4 8259A 9.4 8259A 的编程的编程 例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌
29、套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。MOV AL,13H ;ICW1OUT 20H,ALMOV AL,0B0H;ICW2OUT 21H,ALMOV AL,01H;ICW4OUT 21H,AL 589.4 8259A 9.4 8259A 的编程的编程 操作命令字 OCW1OCW2OCW3599.4 8259A 9.4 8259A 的编程的编程 操作命令字 OCW1OCW2OCW31A0M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0IR7IR6IR5
30、IR4IR3IR2IR1IR0Mi=1:IRi的中断请求被屏蔽Mi=0:IRi的中断请求开放609.4 8259A 9.4 8259A 的编程的编程 操作命令字 OCW1OCW2OCW30A00 0D4D3RD7SLD61:L2L0有意义0:L2L0无意义L2L1L0D2D1D01:循环优先级0:固定优先级EOID51:有中断结束功能0:无中断结束功能619.4 8259A 9.4 8259A 的编程的编程 操作命令字 OCW1OCW2OCW30A00 0D4D3RD7SLD6L2L1L0D2D1D0EOID5SL=1时有意义:R=1、EOI=0时指出循环优先级起始最低优先级,即为特殊循环优先
31、级。R=0、EOI=1时指出要清除的ISR位,即为特殊中断结束方式。R=EOI=1时是上述两功能的组合,即指出要清除的ISR位,同时指定它为最低优先级。62R SL EOIL2L0功能名称功能名称应用应用0 0 0无用无用设置固定优先级设置固定优先级用于固定优先级和用于固定优先级和循环优先级间的循环优先级间的切换切换1 0 0无用无用设置循环优先级设置循环优先级0 0 1无用无用一般的一般的EOI命令命令(一般的中断结束)(一般的中断结束)固定优先级下的中固定优先级下的中断结束命令字断结束命令字0 1 1给出要清除的给出要清除的ISR位位的编码的编码特殊的特殊的EOI命令命令(特殊中断结束方式
32、特殊中断结束方式)1 0 1无用无用循环优先级循环优先级一般的一般的EOI命令命令循环优先级下的中循环优先级下的中断结束命令字断结束命令字1 1 0给出循环优先级的最给出循环优先级的最低起始级的中断低起始级的中断编码编码设置特殊循环优先级设置特殊循环优先级用于设置特殊循环用于设置特殊循环优先级优先级1 1 1给出要清除的给出要清除的ISR位,位,同时又指定它为同时又指定它为循环优先级的最循环优先级的最低起始级低起始级特殊的特殊的EOI命令命令特殊的循环优先级特殊的循环优先级特殊循环优先级下特殊循环优先级下的中断结束命令的中断结束命令字字639.4 8259A 9.4 8259A 的编程的编程
33、操作命令字 OCW1OCW2OCW30A00 1D4D30D7ESMMD6SMMD5特殊屏蔽方式允许位:1:允许;0:禁止特殊屏蔽方式位:1:进入特殊屏蔽0:恢复一般屏蔽(D6=1时有效)11:进入特殊屏蔽10:退出特殊屏蔽0X:无意义649.4 8259A 9.4 8259A 的编程的编程 操作命令字 OCW1OCW2OCW30A00 1D4D30D7ESMMD6PD2RRD1RIS D0SMMD5查询方式位:1:查询命令;0:无查询功能读IRR,ISR寄存器允许位:1:允许;0:禁止RR=1有效RIS=0:读IRRRIS=1:读ISR1XX:设置为查询方式(从偶地址口读回)00X:无意义0
34、10:读IRR允许(从偶地址口读回)011:读ISR允许(从偶地址口读回)65NUIST第第9 9章章 可编程中断控制器可编程中断控制器8259A8259A8259A的主要功能结构1 18259A的工作过程2 28259A的中断管理3 38259A的编程4 48259A的应用举例5 5669.5 8259.5 8259A9A的应用的应用8259A的应用编程主要包括初始化命令字写入、操作命令字写入、状态字读取三部分。操作类型A0功 能特征标志及写入顺序及说明写命令字0010数据总线 ICW1命令字中的D4=10010数据总线OCW2命令字中的D4D3=000010数据总线OCW3命令字中的D4D
35、3=010110数据总线OCW10110数据总线ICW2、ICW3、ICW4图9-12 初始化流程679.5 8259.5 8259A9A的应用的应用8259A的应用编程主要包括初始化命令字写入、操作命令字写入、状态字读取三部分。操作类型A0功 能特征标志及写入顺序及说明读状态字0001IRR数据总线OCW3中的RR=1、RIS=0、P=00001ISR数据总线OCW3中的RR=1、RIS=1、P=00001查询字数据总线 OCW3中的P=10101IMR数据总线任何时候无操作1*689.5 8259.5 8259A9A的应用的应用命令字的确定 从8259A主8259A去CPU的INTR实时时
36、钟INT 0AH保留保留保留80287中断硬盘保留IRQ0IRQ1IRQ2 INTIRQ3IRQ4IRQ5IRQ6IRQ7CAS0CAS2IRQ0IRQ1IRQ2IRQ3 INTIRQ4IRQ5IRQ6IRQ7电子钟时间基准键盘串行口2串行口1并行口2软盘并行口1CAS0CAS2699.5 8259.5 8259A9A的应用的应用命令字的确定 从8259A主8259A去CPU的INTR实时时钟INT 0AH保留保留保留80287中断硬盘保留IRQ0IRQ1IRQ2 INTIRQ3IRQ4IRQ5IRQ6IRQ7CAS0CAS2IRQ0IRQ1IRQ2IRQ3 INTIRQ4IRQ5IRQ6IR
37、Q7电子钟时间基准键盘串行口2串行口1并行口2软盘并行口1CAS0CAS2写入主片8259A的ICWICW1=11H;定义主片8259A为上升沿触发方式,级联使用,要写入ICW3和ICW4。ICW2=08H;定义主片8259A中断类型码初值从08H开始,对应于IRQ0的中断类型码。ICW3=04H;定义主片8259A的引脚IR2上接有从片8259A。ICW4=01H;定义主片8259A工作在非缓冲器方式,非自动中断结束方式,正常完全嵌套方式和8259A芯片用于X86微机中。709.5 8259.5 8259A9A的应用的应用命令字的确定 从8259A主8259A去CPU的INTR实时时钟INT
38、 0AH保留保留保留80287中断硬盘保留IRQ0IRQ1IRQ2 INTIRQ3IRQ4IRQ5IRQ6IRQ7CAS0CAS2IRQ0IRQ1IRQ2IRQ3 INTIRQ4IRQ5IRQ6IRQ7电子钟时间基准键盘串行口2串行口1并行口2软盘并行口1CAS0CAS2写入从片8259A的ICWICW1=11H;与主片完全相同。ICW2=70H;定义从片8259A中断类型码的初始值为70H,对应于中断8(从片IRQ0)的中断类型码。ICW3=02H;定义为从片8259A的标志码,02H表示从片接在主片的IR2上。ICW4=01H;定义与主片完全相同。719.5 8259.5 8259A9A的
39、应用的应用 初始化编程 例 PC实模式下的中断初始化,系统分配给8259A的端口地址是:主片为20H和21H,从片为A0H和A1H MOV AL,11H;ICW1送AL,上沿触发,级联使用;需要写入ICW3,ICW4。OUT 20H,AL;ICW1送主片ICW1口地址。OUT 0A0H,AL;ICW1送从片ICW1口地址。MOV AL,08H;ICW2送AL,设置主片中断向量初值08H。OUT 21H,AL;ICW2送主片ICW2口地址。MOV AL,70H;ICW2送AL,设置从片中断向量初值70H。OUT 0A1H,AL;ICW2送从片ICW2口地址。729.5 8259.5 8259A9
40、A的应用的应用 初始化编程 例 PC实模式下的中断初始化,系统分配给8259A的端口地址是:主片为20H和21H,从片为A0H和A1H MOV AL,04H ;ICW3送AL,定义主片IR2上接有从片。OUT 21H,AL ;ICW3送主片ICW3口地址MOV AL,02H ;ICW3送AL,定义从片标志码OUT 0A1H,AL;ICW3送从片ICW3口地址MOV AL,01H ;ICW4送AL,定义8259A的工作方式(主片从片一样)OUT 21H,AL ;ICW4送主片ICW4口地址OUT 0A1H,AL;ICW4送从片ICW4口地址 739.5 8259.5 8259A9A的应用的应用
41、初始化编程 例自动气象站中有定时器/计数器8253、A/D转换器ADC0809、键盘中三个中断源,分别接8259A的IR0、IR1、IR2三个中断请求输入端。设8259A的中断类型码为50H57H,采用电平触发,非自动EOI结束,非特殊完全嵌套方式工作,固定优先级。8259A的片选端接译码器74LS138的Y0,端口地址为280H283H,编程用280H和281H。749.5 8259.5 8259A9A的应用的应用假设自动气象站中8253的通道0定时中断服务程序名为C0_INT0,A/D转换器ADC0809的中断服务程序名为ADC_INT1,键盘中断的服务程序名为KEY_INT2。8253通
42、道0中断向量写入(中断源类型码为50H)MOV AX,OFFSET C0_INT0;中断向量的段内偏移量送AXMOV DX,AXMOV AX,SEG C0_INT0 ;中断向量的段基址送AXMOV DS,AXMOV AH,25H ;设置INT 21H的子功能号MOV AL,50H ;中断类型码送ALINT 21H ;中断向量写入向量表 759.5 8259.5 8259A9A的应用的应用ADC0809中断向量写入(中断源类型码为51H)MOV AX,OFFSET ADC_INT1;中断服务程序的入口段內地址送AXMOV DX,AXMOV AX,SEG ADC_INT1 ;中断向量的段基址送AX
43、MOV DS,AXMOV AH,25H ;设置INT 21H的子功能号MOV AL,51H ;中断类型码送ALINT 21H ;中断向量写入向量表769.5 8259.5 8259A9A的应用的应用键盘中断向量写入(中断源类型码为52H)MOV AX,OFFSET KEY_INT2;中断服务程序的入口段內地址送AXMOV DX,AXMOV AX,SEG KEY_INT2 ;中断向量的段基址送AXMOV DS,AXMOV AH,25H ;设置INT 21H的子功能号MOV AL,52H ;中断类型码送ALINT 21H ;中断向量写入向量表779.5 8259.5 8259A9A的应用的应用8259A的初始化程序MOV DX,280H ;8259A端口偶地址送DXMOV AL,00011011B ;写入ICW1:电平触发方式,单级使用OUT DX,AL MOV DX,281H ;8259A端口奇地址MOV AL,01010000B ;ICW2,50H对应于IRQ0的中断类型码OUT DX,ALMOV AL,00001101B ;ICW4:非特殊完全嵌套方式、非自动EOI方式 OUT DX,AL XOR AL,AL OUT DX,AL ;写OCW1 STI78
限制150内