《ch8中断控制器的编程结构工作方式及编程》由会员分享,可在线阅读,更多相关《ch8中断控制器的编程结构工作方式及编程(66页珍藏版)》请在金锄头文库上搜索。
1、微机原理及应用微机原理及应用1第第8章章 中断控制器中断控制器8259A o 8259A概述概述 o 8259A的外部信号、编程结构和工作原理的外部信号、编程结构和工作原理o 8259A的工作方式的工作方式o 8259A的初始化命令字和初始化流程的初始化命令字和初始化流程o 8259A 和操作命令字和操作命令字o 8259A应用举例应用举例o 多片多片8259A组成的主从式中断系统组成的主从式中断系统2重点重点o8259A的编程结构和工作原理的编程结构和工作原理 o8259A的初始化命令字、操作命令字的初始化命令字、操作命令字o8259A的初始化流程和初始化编程的初始化流程和初始化编程 o82
2、59A的应用的应用38.0 8259A概述概述o中断控制器的功能中断控制器的功能1. 管理管理CPU外部的中断请求。外部的中断请求。2. 在多个中断源的系统中,接收外部的中断请求,在多个中断源的系统中,接收外部的中断请求,并进行判断,将优先级最高的中断请求送并进行判断,将优先级最高的中断请求送CPU的的INTR端。端。o8259A的工作特点的工作特点 1. 一片一片8259A可管理可管理8级中断。级中断。 用用9片片8259A芯片级连,构成芯片级连,构成64级中断系统。级中断系统。 2. 可编程可编程 。3. 只需一组只需一组5V电源电源 。41. 8259A外部信号及其含义外部信号及其含义名
3、称名称输入输出输入输出功能功能CS输入输入片选信号片选信号WR输入输入写命令信号写命令信号RD输入输入读命令信号读命令信号A0输入输入A0地址线地址线D7-D0输入输入/输出输出双向数据总线双向数据总线INT输出输出8259A中断申请中断申请INTA输入输入中断响应中断响应IR0-IR7输入输入外设的中断请求外设的中断请求SP/EN输入输入/输出输出信号主从定义信号主从定义/缓冲方缓冲方向向CAS0-CAS3输入输入/输出输出级联总线级联总线8.1 8259A 的外部信号、的外部信号、编程程结构和工作原理构和工作原理习惯上,把习惯上,把A0 =0所对应的端口称为所对应的端口称为“偶端口偶端口”
4、, A0=1所对应的端口称为所对应的端口称为“奇端口奇端口”。52. 8259A的编程结构和工作原理的编程结构和工作原理ISRPRIRR中断处理部件中断处理部件比较比较IRR失效失效相应位置相应位置1相应位清相应位清0* * * * * * * *1相应位清相应位清00中断控制部件中断控制部件6o上半部为处理部件上半部为处理部件n中断请求寄存器中断请求寄存器IRRn中断服务寄存器中断服务寄存器ISRn中断屏蔽寄存器中断屏蔽寄存器IMRn优先权分析器优先权分析器PRo下半部有下半部有7个个8位可编程寄存器分为两组:位可编程寄存器分为两组:n第一组第一组4个:初始化命令字个:初始化命令字ICW1I
5、CW4n第二组第二组3个:操作命令字个:操作命令字OCW1OCW32. 8259A的编程结构和工作原理的编程结构和工作原理78259A的片内寻址问题的片内寻址问题o8259A芯片有芯片有两个编程端口两个编程端口;一个为偶;一个为偶(也称低位也称低位)地地址端口;一个为奇址端口;一个为奇(也称高位也称高位)地址端口地址端口o只有只有A0一个地址线输入引脚,用一位地址信号进行一个地址线输入引脚,用一位地址信号进行片内寻址片内寻址o对于对于8086CPU ,由于由于 8259A的的D0D7与与CPU低低8位数位数据总线连接,通常将据总线连接,通常将CPU的的A1接到接到8259的的A0端;端;用用连
6、续的连续的2个偶数地址寻址个偶数地址寻址8259A端口的奇端口的奇/偶地址偶地址88259A的工作过程的工作过程外部中断请求外部中断请求IRR接收,对应位置接收,对应位置1,锁存。,锁存。IMR对应位对应位0IMR对应位对应位1,屏蔽。,屏蔽。PR裁决裁决与与ISR中对应位比较中对应位比较优先级高优先级高优先级低优先级低INT1IF0IF1CPU往往INTA发两发两个负脉冲个负脉冲第一个第一个负脉冲负脉冲第二个第二个负脉冲负脉冲1)IRR锁存失效,不接收中断锁存失效,不接收中断 请求信号;请求信号;2)ISR对应位置对应位置1;3)IRR相应位清相应位清0。1)8259A发中断类型码;发中断类
7、型码;2)中断自动结束方式下,)中断自动结束方式下, ISR对应位清对应位清0。8259A的的工工作作过过程程9o 若允许中断嵌套,则由若允许中断嵌套,则由8259A的优先权判别器的优先权判别器PR判判断断IRR中新的中断请求优先权是否高于正在响应的中断。中新的中断请求优先权是否高于正在响应的中断。o 若为若为“是是”-则再次送出(则再次送出(INT1),向),向CPU发发INTR请求信号,从而实现中断嵌套;此时请求信号,从而实现中断嵌套;此时ISR中将有两中将有两个(或以上)的中断服务状态置个(或以上)的中断服务状态置 1。o 当某个中断服务结束时,当某个中断服务结束时,CPU送出中断结束命
8、令,即送出中断结束命令,即将将8259A中中ISR的相应位复位,从而结束一个中断的服的相应位复位,从而结束一个中断的服务。务。8259A的工作过程的工作过程108.2 8259A的工作方式的工作方式p 设置优先级的方式p 屏蔽中断源的方式p 结束中断处理的方式p 连接系统总线的方式o 确定中断类型码的方式8259A可以通过各个可以通过各个 IRi 引脚连接引脚连接8个不同的中断个不同的中断源;每个中断源都需要指源;每个中断源都需要指定有一个中断类型码定有一个中断类型码如何确定如何确定?CPU 响应中断并执行理中断服务响应中断并执行理中断服务程序后,中断服务寄存器程序后,中断服务寄存器 ISR的
9、的相应的位将置相应的位将置1;ISR的对应位复的对应位复位,则表示一次中断响应的结束位,则表示一次中断响应的结束如何使如何使ISR的对应位复位的对应位复位?CPU将在多个中断请求中,将在多个中断请求中,响应优先级最高的中断响应优先级最高的中断如何确定中断的优先级如何确定中断的优先级?并不是所有的中断都可以向并不是所有的中断都可以向CPU发送请求信号的;发送请求信号的;8259A能够屏蔽那些不允许发送的能够屏蔽那些不允许发送的中断请求中断请求如何屏蔽如何屏蔽?8259A 与数据总线之间可以与数据总线之间可以直接连接,也可以通过数据直接连接,也可以通过数据缓冲器连接缓冲器连接如何实现不同的连接方式
10、如何实现不同的连接方式?111. 中断优先权设置方式中断优先权设置方式(1)普通全嵌套方式(固定优先级方式)普通全嵌套方式(固定优先级方式)默认方式,默认方式,IR0最高,最高,IR7最低最低(2)特殊全嵌套方式)特殊全嵌套方式 基本同普通全嵌套方式,基本同普通全嵌套方式, 但可以进行同级嵌套。但可以进行同级嵌套。(3)自动循环方式)自动循环方式 初始优先级顺序初始优先级顺序IR0最高,最高,IR7最低。最低。 当其中一个中断源受到服务,当其中一个中断源受到服务, 则它为最低优先权。则它为最低优先权。 同时置比它低一级中断源为最高级,同时置比它低一级中断源为最高级, 其它自动循环排列。其它自动
11、循环排列。(4)指定循环方式)指定循环方式 当一中断源指定为最低优先权,当一中断源指定为最低优先权, 则比它低一级中断源为最高级,其它顺序排列。则比它低一级中断源为最高级,其它顺序排列。 如:指定如:指定IR3为最低,则优先级顺序为为最低,则优先级顺序为IR4, IR5,IR6,IR7,IR0,IR1, IR2 , IR3 。122. 屏蔽中断源的方式屏蔽中断源的方式p 一般屏蔽方式性质:性质:通过编程置操作命令字OCW1的相应位为1,则使对应中断源被屏蔽。为0,则使对应中断源不被屏蔽。用输出命令将OCW1写入IMR中实现。特点:特点:使某些中断源可以申请服务,某些被屏蔽不能申请中断服务。p
12、特殊屏蔽方式性质:性质:通过编程置操作命令字OCW3的D6D5=11,进入工作方式。通过编程置操作命令字OCW3的D6D5=10,退出工作方式。特点:特点:使某些优先权低的中断源可以申请服务,某些优先权低的中断源被屏蔽不能申请中断服务。133. 结束中断处理方式结束中断处理方式什么是什么是8259A的中断结束?的中断结束?8259A利用中断服务寄存器利用中断服务寄存器ISR判断:判断:n 某位为某位为1,表示正在进行中断服务;,表示正在进行中断服务;n 该位为该位为0,就是该中断结束服务。,就是该中断结束服务。 下下面面说说明明如如何何使使ISR某某位位为为0,不不反反映映CPU的工作状态。的
13、工作状态。14p 中断自动结束方式中断自动结束方式特点:特点:系统一旦进入中断响应,系统一旦进入中断响应,8259A在第二个在第二个中断响应脉冲到来后,自动将中断响应脉冲到来后,自动将ISR中的对应位清中的对应位清“0”。适用场合:适用场合:系统中只有一个系统中只有一个8259A,且多个中断且多个中断不会嵌套的情况。不会嵌套的情况。 3. 结束中断处理方式结束中断处理方式153. 结束中断处理方式结束中断处理方式p 非指定中断结束方式非指定中断结束方式特点:特点:发非指定中断结束命令时,指令内不指定清发非指定中断结束命令时,指令内不指定清除除ISR中的哪一位,由中的哪一位,由8259A自动将最
14、高优先级自动将最高优先级对应的对应的ISR中非零位复位,结束当前正在处理的中中非零位复位,结束当前正在处理的中断。断。适用场合:适用场合:全全嵌套的情况。嵌套的情况。 163. 结束中断处理方式结束中断处理方式p 指定中断结束方式指定中断结束方式特点:特点:在指令内指明要清除在指令内指明要清除ISR中的某一位。中的某一位。适用场合:适用场合:非全嵌套的情况。非全嵌套的情况。 说明:说明: 在在级级联联方方式式下下,不不用用中中断断自自动动结结束束方方式式,而而用用非非指指定定中中断断结结束束方方式式或或者者指指定定中中断断结结束束方方式式。一一个个中中断断处处理理程程序序在在结结束束时时,必必
15、须须发发两两次次中中断断结结束束命命令令,一次是对主片发的,另一次是对从片发的。一次是对主片发的,另一次是对从片发的。174. 连接系统总线方式连接系统总线方式p 缓冲方式性性质质:通通过过编编程程置置初初始始化化命命令令字字ICW4的的D3=1,进进入入工工作作方式。方式。8259A的的SP/EN :输出低电平作为启动信号。输出低电平作为启动信号。特特点点:应应用用于于多多片片级级联联的的大大系系统统中中,通通过过总总线线驱驱动动器器和和数数据总线相连。据总线相连。p 非缓冲方式性性质质:编编程程置置初初始始化化命命令令字字ICW1的的D3=0,进进入入工工作作方方式。式。特特点点:申申请请
16、端端一一直直保保持持高高电电平平,不不会会误误判判。8259A直直接接和数据总线相连。和数据总线相连。185. 引入中断请求的方式引入中断请求的方式p 边沿触发方式性质:性质:IR7IR0的中断申请端出现的中断申请端出现低电平向高电平跳变低电平向高电平跳变时,触发时,触发中断服务。中断服务。特点:特点:申请端一直保持高电平,不会误判。申请端一直保持高电平,不会误判。p 电平触发方式性质:性质:IR7IR0的中断申请端出现高电平,触发中断服务。的中断申请端出现高电平,触发中断服务。特点:特点:响应后,必须撤除申请,否则发生二次中断申请。响应后,必须撤除申请,否则发生二次中断申请。p 中断查询方式
17、特点:特点:中断源向中断源向8259A发中断请求,但发中断请求,但8259A却不通过却不通过INT向向CPU发中断请求。发中断请求。CPU内部的内部的IF=0,所以,所以CPU对对INT的中断请的中断请求呈禁止状态。求呈禁止状态。CPU 用软件查询的方法确定中断源,实现中断服用软件查询的方法确定中断源,实现中断服务。务。198.3 8259A的初始化命令字和初始化流程的初始化命令字和初始化流程o 初始化命令字初始化命令字 n 初初始始化化命命令令字字通通常常是是系系统统开开机机时时,由由初初始始化化程程序序填写的,而且在整个系统工作过程中保持不变。填写的,而且在整个系统工作过程中保持不变。n
18、初初始始化化命命令令字字有有四四个个:ICW1、ICW2、ICW3、ICW4n 写入顺序为:写入顺序为:ICW1、ICW2、ICW3、 ICW4n ICW1写入写入8259偶地址,其余写入奇地址偶地址,其余写入奇地址其中:是否写入其中:是否写入ICW3和和ICW4,由由ICW1决定决定。201. ICW1芯片控制初始化命令字芯片控制初始化命令字必须设置写入偶地址端口0XXXD4=1LTIM0SNGLIC4A0D7D6D5D4D3D2D1D080x8680x86下固定设为下固定设为0 00 0:上升沿触发:上升沿触发1 1:高电平触发:高电平触发0 0:是:是OCW2OCW2或或OCW3OCW3
19、1 1:是:是ICW1ICW1未定义位0:0:级联方式级联方式1:1:单片方式单片方式0:0:不写入不写入ICW4ICW41:1:写入写入ICW4ICW421ICW1命令字设置例命令字设置例o指令执行后,对指令执行后,对8259A设置了基本工作状态设置了基本工作状态nMOV AL,11HnOUT 20H,ALn说出其具体意义:说出其具体意义:00010001ICW1标识上升沿触发级联方式写入ICW4222. ICW2中断类型码基数初始化命令字中断类型码基数初始化命令字o中断类型码基数是指IR0对应的中断类型码o按照规定:IR0的低3位是000;高5位为该8259中8个中断源类型码中的共有数码;
20、而其他中断源的低3位的值与IRi的(二进制)编号相对应o通过ICW2确定了IR0的中断类型码,同时也就自然地确定了其他7个IRi对应的中断类型码232. ICW2中断类型码基数初始化命令字中断类型码基数初始化命令字写入奇地写入奇地址端口址端口设置高设置高5位数值位数值低低3位均位均取为取为024ICW2中断类型码基数初始化命令字举例中断类型码基数初始化命令字举例o一片8259A上的8个中断源的8个中断类型码连续o如:设置ICW240H,则8259A的IR0IR7,对应的8个中断类型码为:40H,41H,42H,43H,44H,45H,46H,47Ho如果某8259A上IR4的中断类型码是0BC
21、H;则该8259A的IR0IR7 ,对应的8个中断类型码为: 0B8H到0BFH253. ICW3标志主片标志主片/从片初始化命令字从片初始化命令字oICW3是在级联方式下,才需要设置的初始化命令字o当ICWl的D1 位为0时,8259A在级联方式下工作,必须设置ICW3o主片和从片需要分别设置ICW326分别写入主从片中分别写入主从片中的奇地址端口的奇地址端口3. ICW3标志主片标志主片/从片初始化命令字从片初始化命令字27例:主片的 ICW3,表示IR5,IR3、IRl和IR0上连有从8259A 例:从片的 ICW3,则此从片的INT连至主片的IR4上3. ICW3标志主片标志主片/从片
22、初始化命令字从片初始化命令字288259A的级联的级联o为了提高中断源的接入能力,常将多片8259A级联使用;一个主片,多个从片oCAS0CAS2:级联方式下的主从片之间的联系信号;主片和所有从片的这3 条线互连n如果8259A 为主片,则 3 个引脚均为输出线n如果8259A为从片,则为输入线,主片以其“编码”作为标识码联系从片o当某从片8259A 提出中断请求并被响应时,主片将通过CAS0CAS2送出相应的标识码给从片,通知该从片刚送到主片上的中断请求已被响应29CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/EN CAS0INT
23、A CAS1 CAS2INT IR0 IR1SP/EN IR7CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/ENINTAINTR+5V8259级联工作示意图级联工作示意图304. ICW4方式控制初始化命令字方式控制初始化命令字o一个多功能的初始化命令字;仅当一个多功能的初始化命令字;仅当ICWl的的D0位为位为1,才需要设置,才需要设置ICW4o设置的工作方式包括:设置的工作方式包括:n数据传送方式数据传送方式-缓冲与非缓冲及缓冲方式下缓冲与非缓冲及缓冲方式下的主片的主片/从片标志从片标志n级联下的中断嵌套管理方式级联下的中断嵌套
24、管理方式n中断结束方式中断结束方式314. ICW4方式控制初始化命令字方式控制初始化命令字32地址总线地址总线A0CSA0CSA0CS非非缓缓冲冲连连接接方方式式图图示示由由SP/EN确定主片或从片确定主片或从片主片的主片的SP=1,从片的从片的SP=033缓冲连接方式图示缓冲连接方式图示SP/EN 将作为将作为8286的允许或开启信号的允许或开启信号主片或从片的选择确定改由主片或从片的选择确定改由ICW4决定决定8286主主8259ASP/EN8286从从8259A-1SP/ENDB34设置设置ICW1设置设置ICW2是否为级联方式是否为级联方式? ?是否主片是否主片? ?Y设置主片设置主
25、片ICW3Y需设需设ICW4? ?Y设置设置ICW4N设置从片设置从片ICW3NN是否级联是否级联请求信号格式请求信号格式是否用是否用ICW4设置中断类型号设置中断类型号是否为是否为16位系统位系统是否特殊全嵌套方式是否特殊全嵌套方式是否缓冲方式是否缓冲方式是否中断自动结束方式是否中断自动结束方式8.3.2 8259A的的初初始始化化流流程程35例例: 在在含含单单片片8259A的的8086系系统统中中,8259A的的工工作作方方式式是是:边边沿沿触触发发,普普通通全全嵌嵌套套方方式式,非非缓缓冲冲方方式式,非非中中断断自自动动结结束束方方式式,中中断断类类型型码码18H1FH。端端口口地地址
26、址80H,82H。编编写写8259A的初始化程序。的初始化程序。解解: 1. 确定初始化命令字确定初始化命令字1LTIMSNGLIC410111)ICW1D7D6D5D4D3D2D1D0000112)ICW23)ICW4000SFNM BUF M/S AEOI uPM00000001362. 初始化程序初始化程序MOVAL,13H ; 1011BOUT80H, AL; 设置置ICW1MOVAL,18H ; 00011000B 00011111BOUT82H, AL; 设置置ICW2MOVAL, 01H ; 00000001BOUT82H, AL; 设置置ICW437p 8259A工作期间,可以
27、随时接受操作命令字OCWp OCW共有3个:OCW1OCW3p 写入时没有顺序要求,需要哪个OCW就写入那个OCWp OCW1必须写入奇地址端口,OCW2、OCW3必须写入偶地址端口8.4 8259A的操作命令字的操作命令字381. OCW1中断屏蔽操作命令字中断屏蔽操作命令字屏蔽命令字写入中断屏蔽寄存器IMRMi对应IRi,为1将禁止IRi中断;为0则允许IRi中断392. OCW2优先级管理方式命令字优先级管理方式命令字40OCW2命令字的完整意义命令字的完整意义RSLEOI功能功能001普通普通EOI结束结束011特殊特殊EOI结束,由结束,由L2L0指定结束指定结束IRi101普通普通
28、EOI循环循环100设置自动循环设置自动循环000取消自动循环,转入固定优先权取消自动循环,转入固定优先权111特殊特殊EOI循环,由循环,由L2L0指定结束指定结束IRi位并置最低优先位并置最低优先级级110设置特殊循环,由设置特殊循环,由L2L0设定最低优先级设定最低优先级010无操作无操作413. OCW3特殊屏蔽与查询方式命令字特殊屏蔽与查询方式命令字o管理特殊屏蔽方式(如开启与解除);进而实现中断的特殊屏蔽o将8259A的工作状态设置为查询方式(P=1);进而读取IRR、ISR、IMR寄存器的当前状态数据428259A的初始化例的初始化例设设8259A的端口地址为的端口地址为B0H、
29、B1H。下面是该。下面是该8259A的初始化程序段例:的初始化程序段例: MOV AL,1BH OUT B0H,AL MOV AL,42H(或(或40H) OUT B1H,AL MOV AL,03H OUT B1H,AL该该8259A芯片的工作状态为:芯片的工作状态为: 单片单片8259A 中断请求电平触发中断请求电平触发 中断类型码从中断类型码从40H开始开始 一般全嵌套方式一般全嵌套方式 非缓冲方式非缓冲方式 自动中断结束方式自动中断结束方式438259A的初始化例的初始化例o例:例:2片片8259级联,从片的级联,从片的INT接主片的接主片的IR2n端口地址:主片端口地址:主片20H、2
30、1H,从片,从片A0H、A1Hn主片和从片均采用边沿触发主片和从片均采用边沿触发n主片采用特殊全嵌套方式,从片是一般全嵌套方式主片采用特殊全嵌套方式,从片是一般全嵌套方式n采用非缓冲方式,主片采用非缓冲方式,主片SP接接+5V,从片从片SP接地接地n主片的中断类型号为主片的中断类型号为08H0FH,从片的中断类型号,从片的中断类型号为为70H77Hn写出主写出主8259A和从和从8259A的初始化程序段的初始化程序段44初始化程序段如下:初始化程序段如下:ICW1A EQU 20H ;定义主片端口地址符号;定义主片端口地址符号ICW2A EQU ICW1A+1ICW3A EQU ICW2AIC
31、W4A EQU ICW2AICW1B EQU 0A0H;定义从片端口地址符号;定义从片端口地址符号ICW2B EQU ICW1B+1ICW3B EQU ICW2BICW4B EQU ICW2B ;- 主片主片8259A-MOV AL, 11H;ICW1,边沿触发,多片,需,边沿触发,多片,需ICW4OUTICW1A, ALMOV AL, 08H;ICW2,中断类型码,中断类型码OUTICW2A, ALMOV AL, 04H;ICW3,IR2接从片接从片OUTICW3A, ALMOV AL, 14H;ICW4,非缓冲,特殊全嵌套,非缓冲,特殊全嵌套 ;非自动结束中断非自动结束中断OUTICW4A
32、, AL;- 从片从片8259A-MOV AL, 11H;ICW1,边沿触发,多片,需,边沿触发,多片,需ICW4OUTICW1B, ALMOV AL, 70H;ICW2,中断类型码,中断类型码OUTICW2B, ALMOV AL, 02H;ICW3,INT接主片的接主片的IR2OUTICW3B, ALMOV AL, 02H;ICW4,非缓冲,普通全嵌套,非缓冲,普通全嵌套 ;自动结束自动结束OUTICW4B, AL458259A的查询工作方式的查询工作方式o当IF=0时,8259将被禁止向CPU请求中断o此时,8259可工作在非中断方式,而采用“中断查询”方式处理中断请求468259A的中断
33、查询工作方式与的中断查询工作方式与OCW3oP:查询命令位。P=1 时,向8259A 发送查询命令;P=0 时,不处于查询方式oOCW3设置查询方式以后,CPU随后对同一个地址(A0=0)执行读操作,读取该片8259A 的一个“中断查询状态字”o其中IR=1 表示该8259A 芯片IR0IR7中发生了有效的中断请求,W2W0 表明了请求服务的最高优先权编码。IR=0 则表示无请求oCPU 可以反复对8259A查询,但每次查询前都应先送一次D21的OCW3478259A的中断查询工作方式例的中断查询工作方式例设在数据段中做如下定义:设在数据段中做如下定义:TABDWIRQ0, IRQ1, IRQ
34、2, DWIRQ6, IRQ7 ; 8个中断服务程序入口偏个中断服务程序入口偏移地址移地址则查询程序段为:则查询程序段为: LEA BX, TABNEXT:MOV AL, 0CH; OCW3: 00001100B OUT84H, AL INAL, 84H TEST AL, 80H JZ NEXT ANDAL, 07H SHLAX, 1 ADDBX, AX JMPBX 488259寄存器数据查询寄存器数据查询o对于对于8259A 内部的各个寄存器,除在编程时内部的各个寄存器,除在编程时CPU 可用输出指令对其逐一地写入外,还可用输入指令可用输出指令对其逐一地写入外,还可用输入指令将部分寄存器的内
35、容读出将部分寄存器的内容读出o读取读取IRR、ISR、IMR寄存器的当前状态数据所对寄存器的当前状态数据所对应的引脚信号真值表应的引脚信号真值表49读取寄存器数据的例读取寄存器数据的例o若要读若要读IRR 的内容,应先向低地址写入的内容,应先向低地址写入OCW3,再进行读取,再进行读取nMOVAL, 0EH; OCW3: 00001110BnOUT84H, AL; 84H为低地址端口为低地址端口nINAL, 84Ho若要读若要读ISR 的内容,同样要先写入的内容,同样要先写入OCW3,再进行读取,再进行读取nMOVAL, 0BH; OCW3: 00001111BnOUT84H, ALnINAL
36、, 84Ho若要读若要读IMR 的内容,可直接从高地址读入的内容,可直接从高地址读入nINAL, 86H; 86H为高地址端口为高地址端口(本例中为本例中为A1接接A0)508.5 8259A应用举例应用举例o中断全嵌中断全嵌套方式的套方式的例子例子 设设系系统统只只含含一一片片8259A,IR3中中断断处处理理过过程程中中又又有有IR2请请求求中断。如图:中断。如图:51系统全嵌套方式工作的条件条件系统全嵌套方式工作的条件条件o 主程序必须执行开中断指令主程序必须执行开中断指令 ,使,使IF为为1,才,才有可能响应中断。有可能响应中断。o 每当进入一个中断处理程序时,系统会自动每当进入一个中
37、断处理程序时,系统会自动关中断,所以,只有中断处理程序中再次开中关中断,所以,只有中断处理程序中再次开中断,才有可能被较高级的中断所嵌套。断,才有可能被较高级的中断所嵌套。o 每个中断处理程序结束时,必须执行中断结每个中断处理程序结束时,必须执行中断结束命令,清除对应的束命令,清除对应的ISn位,才能返回断点。位,才能返回断点。 528.5 8259A应用应用-关于如何使用中断结束命令的例子关于如何使用中断结束命令的例子0100000001 0011 0053两个重要的结论两个重要的结论o 进进入入中中断断处处理理程程序序后后,只只有有执执行行 STI STI 指指令令,才才能能允允许许中中断
38、断嵌套。嵌套。o 否否则则,则则此此中中断断处处理理程程序序执执行行过过程程中中就就不不会会有有中中断断嵌嵌套套,直直到到中中断断处处理理程程序序执执行行 IRET IRET 之之后后,系系统统才才会会开开放放中中断断。因因为为 IRET IRET 指指令令的的一一个个功功能能就就是是恢恢复复进进入入中中断断前前的的标标志志寄寄存存器器的的内内容,而当时标志寄存器中容,而当时标志寄存器中 IF IF 的值肯定为的值肯定为1 1。o 进进入入中中断断处处理理程程序序后后,如如果果一一开开始始就就用用 STI STI 指指令令使使 IF IF 为为 1 1,从从而而开开放放了了中中断断,但但未未用
39、用 OCW2 OCW2 清清除除对对应应的的 ISn ISn 位位,这这种种情情况况下下,会会允允许许比比本本中中断断优优先先级级高高的的中中断断进进入入,形形成成符符合合优优先先级规则的嵌套。级规则的嵌套。o 如如果果在在 STI STI 指指令令之之后后,接接着着用用 OCW2 OCW2 命命令令清清除除了了 ISn ISn 位位 ,但但中中断断处处理理过过程程并并没没有有结结束束,这这种种情情况况下下,中中断断嵌嵌套套就就未未必必按优先级规则进行了。按优先级规则进行了。548.5 8259A应用举例应用举例o特殊屏蔽特殊屏蔽方式的例方式的例子子 CLIMOVAL, 68HOUT80H,
40、ALINAL, 81HORAL, 10HOUT81H, ALSTICLIINAL, 81HANDAL, 0EFHOUT81H, ALMOVAL, 48HOUT80H, ALSTIMOVAL, 20HOUT80H, ALIRET558.6 多片多片8259A组成的主从式中断系统组成的主从式中断系统56o 主从式中断系统中,主片和从片都需要进行初始化;o 主片初始化与前面所讲的单片情况下的初始化过程差不多,只是有下列几点差别:n ICW1中的SNGL位必须设置为0,而在单片情况下, 则为1n 必须设置初始化命令字ICW3,对主片设置ICW3时,如果某个IR引脚上连有从片,则ICW3的对应位就设置为
41、1,如未连从片,则设置为0。n ICW4中的SFNM位如果设为1,则将主片设置为特殊全嵌套工作方式。o 对从片8259A 进行初始化要注意以下两点: n 从片的ICW1中,SNGL 位也要设置为0n 从片也必须设置ICW3,不过,从片的ICW3的意义有别于主片572. 应用举例 例: 在IBM PC/XT的62芯总线的IRQ2端输入一中断请求信号,该信号可由8253产生,也可由分频电路产生。要求每中断一次,CPU响应后CRT上显示一串字符“THIS IS A 82C59A INTERRUPT!”,并且中断10次后返回DOS。 已知:IBM PC/XT内82C59A的端口地址是20H和21H,并
42、已初始化成边沿触发、普通屏蔽(初始化屏蔽字为FEH )、非特殊全嵌套、一般中断结束、固定优先级、以及非缓冲方式。求解:试编写汇编语言程序实现题目要求。解:由IBM PC/XT中82C59A所管理的8个中断源(中断类型号为08H0FH)可知,IRQ2的中断类型号就是0AH。源程序清单如下: 58 INTA00EQU 20H; 82C59A的偶地址端口INTA01EQU 21H ; 82C59A的奇地址端口DATA SEGMENTMESSDB THIS IS A 8259A INTERRUPT!, 0DH, 0AH, $DATA ENDSCODESEGMENTASSUMECS:CODE, DS:D
43、ATASTART:MOV AX, CS; 先让DS指向代码段 MOV DS, AX MOV DX, OFFSET INT-PROC; 设置0AH号中断向量 MOV AX, 250AH INT21H59CLI;关中断MOV DX, INTA01;读出IMR内容INAL, DXAND AL, 0FBH;允许IRQ2中断OUTDX, ALMOV BX, 10;设置中断次数为10STI;开中断LL:JMPLL;循环等待中断INT-PROCPROCMOV AX, DATA;中断服务程序MOV DS, AX;将DS指向数据段MOV DX, OFFSET MESS;显示发生中断的信息MOV AH, 9INT
44、21H60MOV DX,INTA00;发中断结束命令EOIMOV AL,20HOUT DX,ALSUB BX,1;计数值减1JNZ NEXT;不为0,转去执行中断返回MOV DX,INTA01;为0,则读出屏蔽字IN AL,DXOR AL,4;禁止IRQ2中断OUT DX,ALSTI;开中断POP AX;恢复堆栈指针SPPOP AXPOP AXMOV AH,4CH;返回DOS 61 INT21HNEXT:IRET;中断返回INT-PROCENDP;中断程序结束CODEENDS;代码段结束ENDSTART;源程序结束621. 熟熟悉悉8086的的中中断断类类型型、中中断断响响应应过过程程、中中断
45、断向量表。向量表。2. 理理解解8259A的的内内部部结结构构、寄寄存存器器作作用用、中中断断过过程。程。3. 掌掌握握8259A的的普普通通全全嵌嵌套套优优先先权权、普普通通中中断断结结束、边沿触发方式。束、边沿触发方式。第第8 8章章 教学要求(续)教学要求(续)63第第8 8章章 教学要求(续)教学要求(续)4. 了了解解的的8259A的的ICW和和OCW,注注意意命命令令字字和状态字的区别方法和状态字的区别方法5. 了解了解8259A在在IBM PC系列机上的应用情况系列机上的应用情况6. 掌握中断服务程序的编写掌握中断服务程序的编写64作作 业业1 1. . 简述简述82598259
46、A A的初始化流程。的初始化流程。2. 2. IBM-PCIBM-PC微微型型计计算算机机内内,82598259A A的的工工作作方方式式是是:单单片片工工作作,电电平平触触发发,普普通通全全嵌嵌套套,非非缓缓冲冲方方式式,非非中中断断自自动动结结束束方方式式。中中断断类类型型28H28H2FH2FH。端端口口地址地址2020H H,22H22H。编写编写82598259A A的的初始化程序。初始化程序。65作作 业业3. 3. 在在8086非非缓缓冲冲系系统统中中扩扩展展一一片片中中断断控控制制器器8259A。8259A采采用用普普通通全全嵌嵌套套方方式式工工作作,不不用用中中断断自自动动结结束束方方式式,中中断断请请求求电电平平触触发发,中中断断类类型型码码为为20H27H,只只开开放放中中断断IR0。(设设IR0中中断断服服务务程程序序的的入入口口地地址址为为2000H:3000H,8259的地址为的地址为40H和和42H。)。)(1)中中断断类类型型码码为为20H的的中中断断向向量量放放在在哪哪个个段段的的哪哪几个单元,各单元对应的值应是多少?几个单元,各单元对应的值应是多少? (2)写出写出8259A的初始化程序。的初始化程序。 (3)编写将中断向量填入中断向量表的程序段。)编写将中断向量填入中断向量表的程序段。66