第六章输入输出和中断技术2_第1页
第六章输入输出和中断技术2_第2页
第六章输入输出和中断技术2_第3页
第六章输入输出和中断技术2_第4页
第六章输入输出和中断技术2_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、6.5 8259A可编程中断控制器可编程中断控制器n8259A的功能的功能n8259A的内部结构和引脚的内部结构和引脚n8259A的工作过程(含时序)的工作过程(含时序)n8259A的工作方式的工作方式n8259A的编程(命令字)的编程(命令字)n8259A的应用的应用8259A的功能中断申请中断申请管理接口管理接口INT中断申请中断申请接口接口1网络网络接口接口2硬盘硬盘接口接口3软盘软盘接口接口4打印机打印机8088CPUINTRIF1. 向向CPU的引脚的引脚INTR发中断申请信号发中断申请信号 当有多个外设同时发出中断请求时,能按照一定的优当有多个外设同时发出中断请求时,能按照一定的优

2、先级顺序,向先级顺序,向CPU发出中断申请,使发出中断申请,使CPU能优先响能优先响应优先级最高的外部设备的中断申请。应优先级最高的外部设备的中断申请。2. 送中断类型号送中断类型号 在在CPU中断响应周期,针对不同外设的中断请求,中断响应周期,针对不同外设的中断请求, 向向CPU传送不同的中断类型号,使传送不同的中断类型号,使CPU执行相应的执行相应的中断子程中断子程。中断申请管理接口的主要功能中断申请管理接口的主要功能: :在在IBM PC机由机由8259A可编程中断控制器可编程中断控制器(PIC)来完成。来完成。8259A的功能的功能n8259A可编程中断控制器可用于管理可编程中断控制器

3、可用于管理Intel 8080/8085、8086/8088、80286/80386的可的可屏蔽中断屏蔽中断n8259A的的基本功能基本功能n一片一片8259A可以管理可以管理8级中断,可扩展至级中断,可扩展至64级级n每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许n在中断响应周期,可提供相应的中断向量号在中断响应周期,可提供相应的中断向量号n8259A设计有多种工作方式,可通过编程选择设计有多种工作方式,可通过编程选择8259A的内部结构的内部结构D7D0INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制

4、控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑8259A的内部结构的内部结构n1.中断请求寄存器中断请求寄存器IRR 保存从保存从IR0IR7来的中断请求信号,某位来的中断请求信号,某位=1表示对表示对应的应的IRi有中断请求有中断请求 n2.中断服务寄存器中断服务寄存器ISR 保存所有正在服务的中断源,某位保存所有正在服务的中断源,某位=1表示对应的表示对应的IRi中断正在被服务中断正在被服务 n3.中断屏蔽寄存器中断屏蔽寄存器IMR 存放中断屏蔽字,某位存放中断屏蔽字,某

5、位=1表示对应的表示对应的IRi输入被屏蔽输入被屏蔽 n4.中断优先权判别电路中断优先权判别电路 确定是否向确定是否向CPU发出中断请求,中断响应时确定发出中断请求,中断响应时确定ISR的哪位应置位及把相应中断的类型码放到数据的哪位应置位及把相应中断的类型码放到数据总线上总线上 8259A的内部结构的内部结构n5. 读读/写控制电路写控制电路 用于控制对用于控制对8259A的读、写操作。的读、写操作。n6. 数据总线缓冲器数据总线缓冲器 双向双向8位位3态缓冲器,由它构成态缓冲器,由它构成8259A与与CPU之间的数据接口。之间的数据接口。n7. 级联缓冲级联缓冲/比较器比较器 多片多片825

6、9A可级联使用,最多可以组成可级联使用,最多可以组成64级中断优先级控制,级中断优先级控制,此时一片此时一片8259A做主片,另外做主片,另外8片做从片,主从片的片做从片,主从片的CAS0CAS2并接在一起,作为级联总线并接在一起,作为级联总线n8. 控制逻辑控制逻辑 向向CPU发发INT信号,接收信号,接收CPU发来的发来的INTA信号,控制信号,控制8259A进入中断服务状态。进入中断服务状态。8259A的引脚的引脚 双列直插式芯片,双列直插式芯片,28个引脚个引脚 方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW18.2HzA0CS8259A总线总线A0

7、数数 据据 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 定时器定时器8259A的工作过程的工作过程8259A的时序的时序CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期响应周期8259A工作波形工作波形INT第一个周期第一个周期T1 T2 T3 T4ALECLK 第二个周期第二个周期T1 T2 T3 T4第一个前保持为高电平第一个前保持为高电平 INTALOCK8259A的

8、工作方式的工作方式中断触发方式中断触发方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自动循环方式自动循环方式特殊循环方式特殊循环方式优先权固定方式优先权固定方式优先权循环方式优先权循环方式设置优先权方式设置优先权方式普通中断结束方式普通中断结束方式特殊中断结束方式特殊中断结束方式自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式结束中断处理方式结束中断处理方式屏蔽中断源方式屏蔽中断源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式边沿触发方式边沿触发方式电平触发方式电平触发方式优先级控制方式优先级控制方式n两类优先级控制方式:两类优先级控制方式:固定优先级固

9、定优先级和和循循环优先级环优先级n固定优先级方式(普通全嵌套方式和特殊全固定优先级方式(普通全嵌套方式和特殊全嵌套方式)嵌套方式) 所有中断请求所有中断请求IRi的中断优先级固定不变的中断优先级固定不变 优先级排列顺序可编程改变优先级排列顺序可编程改变 加电后加电后8259A的默认方式,默认优先级顺序从的默认方式,默认优先级顺序从高到低为高到低为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变n固定优先级下的中断嵌套

10、固定优先级下的中断嵌套在中断处理过程中允许被更高优先级的事件所中在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。断称为中断嵌套。8259A有两种中断嵌套方式:有两种中断嵌套方式:普通全嵌套方式(默认方式)普通全嵌套方式(默认方式) 一中断正被处理时,只有一中断正被处理时,只有更高优先级更高优先级的事件可以打的事件可以打断当前的中断处理过程而被服务。断当前的中断处理过程而被服务。特殊全嵌套方式特殊全嵌套方式 一中断正被处理时,允许一中断正被处理时,允许同级或更高优先级同级或更高优先级的事件的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注: 特殊全嵌套仅

11、用于多个特殊全嵌套仅用于多个8259A级连时的级连时的8259A,而不能用于从属而不能用于从属8259A或单或单8259A系统。系统。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因主片不封锁从片的因主片不封锁从片的INT,故级别高的,故级别高的IR0-IR2中断可以得到响应。中断可以得到响应。( (但但IR3-IR7仍被本从仍被本从片封锁片封锁) )C.假定假定IR3发生中发生中断断,并获得服务并获得服

12、务一般嵌套方式:一般嵌套方式:IR4的中断被服务的中断被服务时,这些中断将时,这些中断将被封锁。被封锁。B.特殊嵌套方式:特殊嵌套方式:IR4的中断被服的中断被服务 时 , 只 封 锁务 时 , 只 封 锁IR5-IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPUn循环优先级方式(自动循环方式和特殊循环方循环优先级方式(自动循环方式和特殊循环方式)式) 中断源轮流处于最高优先级,即自动中断优先级循中断源轮流处于最高优先级,即自动中断优先级循环环 某中断请求某中断请求IR

13、i被处理后,其优先级别自动降为最被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级低,原来比它低一级的中断上升为最高级 初始优先级顺序可用编程改变(特殊循环方式)初始优先级顺序可用编程改变(特殊循环方式)IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi结束中断处理方式结束中断处理方式n当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应中的相应位位

14、ISRi=1。当服务结束后,则必须清零。当服务结束后,则必须清零该该ISRi位。使位。使ISRi=0是通过向是通过向8259A发出中断结束命令(发出中断结束命令(EOI命令)实现的。命令)实现的。n三种三种EOI命令命令n自动自动EOI(AEOI)(自动(自动EOI方式)方式)n非指定非指定EOI(NSEOI)(普通(普通EOI方方式)式)n指定指定EOI(SEOI)(特殊(特殊EOI方式方式) nAEOI:在第在第2个个INTA#结束时,由结束时,由8259A使使ISRi自动复位;自动复位; 因不保留当前正在服务的中断的状态,故因不保留当前正在服务的中断的状态,故AEOI不不能用于中断嵌套方

15、式能用于中断嵌套方式nNSEOI:由由CPU发出正常发出正常EOI命令,该命令,该EOI命令使命令使ISRi=1的位中优先级最高的那一位复的位中优先级最高的那一位复位。位。 用于普通全嵌套方式用于普通全嵌套方式nSEOI:由:由CPU发出一条发出一条SEOI命令,该命令,该EOI命令中指出了所要复位的命令中指出了所要复位的ISR的位号。的位号。 用于非全嵌套方式用于非全嵌套方式中断服务程序向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场Nn特殊全嵌套方式特殊全嵌套方式下的下的EOI处理处理n只有当从只有当从PIC的的中断全部处理完中断全部处理完后,才能向主

16、后,才能向主PIC发发EOI命令命令屏蔽中断源的方式屏蔽中断源的方式n普通屏蔽方式:普通屏蔽方式:nIMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所对应的所对应的中断中断:IMi=1 禁止,禁止, IMi=0 允许。允许。n特殊屏蔽方式:特殊屏蔽方式:n提供了允许较低优先级的中断能够得到响应的提供了允许较低优先级的中断能够得到响应的特殊手段。特殊手段。n原理原理:假定当前正在处理:假定当前正在处理IR6,先,先进入特殊屏进入特殊屏蔽方式,然后蔽方式,然后设置设置IM6=1。这时,除。这时,除IR6外的所外的所有中断请求均能得到响应。有中断请求均能得到响应。n特殊屏蔽方式中只能

17、用特殊屏蔽方式中只能用SEOI命令结束中断。命令结束中断。n特殊屏蔽例:特殊屏蔽例: ;IR4中断处理程序中断处理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;设置特殊屏蔽方式;设置特殊屏蔽方式IN AL,0C2H OR AL,10H ;屏蔽;屏蔽IR4OUT 0C2H,AL STI ;IR7请求,响应,返回请求,响应,返回CLI ;为设命令字;为设命令字IN AL,0C2H ;读出屏蔽字;读出屏蔽字AND AL,0EFH ;清除;清除IMR4OUT 0C2H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C

18、0H,AL ;取消特殊屏蔽;取消特殊屏蔽STI ;继续;继续IR4中断服务中断服务MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0,ALIRET 中断触发方式中断触发方式n边沿触发边沿触发nIRi出现上升沿表示有中断请出现上升沿表示有中断请求求 n电平触发电平触发nIRi出现高电平表示有中断请出现高电平表示有中断请求求n在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平 中断的级连中断的级连n一个系统中,一个系统中,8259A可以级连,有一个主可以级连,有一个主8259A,若干个(最多若干个(最多8个)从个)从8259An级连时

19、,主级连时,主8259A的三条级连线的三条级连线CAS0CAS2作作为输出线,连至每个从为输出线,连至每个从8259A的的CAS0CAS2n每个从每个从8259A的中断请求信号的中断请求信号INT,连至主,连至主8259A的一个中断请求输入端的一个中断请求输入端IRn主主8259A的的INT线连至线连至CPU的中断请求输入端的中断请求输入端nSP*/EN*在非缓冲方式下,规定该在非缓冲方式下,规定该8259A是主片是主片(SP*1)还是从片()还是从片(SP*0)CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/EN CAS0INTA

20、CAS1 CAS2INT IR0 IR1SP/EN IR7CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/ENINTAINTR+5V8259级连工作示意图级连工作示意图CPU8259A8259A8259A8259级联工作示意图级联工作示意图8259A的编程n8259A的控制命令分为n初始化命令字初始化命令字ICW ICW1ICW4 向向8259A写入写入ICW的过程称为的过程称为初始化编程初始化编程n操作命令字操作命令字OCW OCW1OCW3 向向8259A写入写入OCW的过程称为的过程称为操作方式编操作方式编程程 8259A的编程

21、的编程SP/ENCA0CA1CA2IORIOW总线总线D0D7数数 据据 线线D0D7INTAINTRA0片片选选译译码码A5A9CSA0RD INTAWRINT 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片连接关系主从片连接关系 ICW4 方式控制方式控制0111A01 0 0 1 0 1 0 0OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级设置、发优先级设置、发EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查询方式设置查询方式设置处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存

22、器寄存器PR优先级优先级裁决器裁决器VCCGND1 10 00 0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 n4个初始化命令寄存器 ICW1、ICW2 ICW3、ICW4 n3个操作命令寄存器 OCW1(IMR) OCW2、OCW3n当前中断服务寄存器 ISRn中断申请寄存器 IRR 8259A内部有内部有9个个 可读写的寄存器可读写的寄存器8259A的编程结构的编程结构 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制

23、部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中断控制器中断控制器8259A内部寄存器的寻址方法CS# RD# WR#A0D4D3读写操作010000写写OCW2写写OCW3写写ICW1写写ICW2,ICW3,ICW4,OCW1(顺序写入顺序写入)00101x1xx00101xx读出读出IRR、ISR读出读出IMRn需要需要CS#、A0、RD#、WR#

24、和和D4、D3的配的配合合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表: 8259A的初始化顺序 n8259的初始化流程如图n注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY8259A的控制命令字n初始化8259A必须从ICW1开始n写写ICW1意味着重新初始化意味着重新初始化8259An写入写入ICW1后,后,8259A的状态如下的状态如下: 清除清除ISR和和IMR(全全0); 将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最高,最高,IR7最最低;低; 设定为一般屏蔽方式;设定为一般屏蔽方式; 采用非自动中断结束

25、方式;采用非自动中断结束方式; 状态读出逻辑预置为读状态读出逻辑预置为读IRR。 准备顺序接收其他准备顺序接收其他ICWICW1初始化字1LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0) 1只能为只能为1,作为标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式,电平触发方式LTIM0,边沿触发方式,边沿触发方式 规定单片或级连方式:规定单片或级连方式:SNGL1,单片方式,单片方式SNGL0,级连方式,级连方式是否写入是否写入ICW4IC41,要写入,要写入ICW4IC40,不写入,不写入ICW4,即,即

26、ICW4规定的位全为规定的位全为0A0 = 0ICW2中断向量码A0 = 1T7T6T5T4T3D7D6D5D4D3D2D1D0设置中断向量号设置中断向量号nT7T3为中断向量号的高为中断向量号的高5位位n低低3位由位由8259A自动确定:自动确定:nIR0为为000、IR1为为001、IR7为为111ICW3级连控制字 S7 /0S6 /0S5 /0S4 /0S3 /0S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字级连命令字n主片主片8259A:Si1对应对应IRi接有从片;接有从片;否则否则IRi没有连接从片没有连接从片n从片从片8259A:ID0ID2编码

27、说明从片编码说明从片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚A0 = 1ICW3级连控制字(续)nICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。n中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。ICW4中断结束方式字 000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)数据

28、线的缓冲方式:数据线的缓冲方式:n缓冲方式(缓冲方式(BUF1)n非缓冲方式(非缓冲方式(BUF0) 主片主片/从片选择:从片选择:n主片(主片(M/S=1)n从片(从片(M/S=0)中断结束方式:中断结束方式:n自动中断结束(自动中断结束(AEOI1)n非自动中断结束(非自动中断结束(AEOI0)微处理器类型:微处理器类型:n16位位80 x86( PM1)n8位位8080/8085( PM0)A0 = 1例例1、试按照如下要求对、试按照如下要求对8259A设置初始化命令字:系统中设置初始化命令字:系统中仅用一片仅用一片8259A,中断请求信号采用边沿触发方式;中断类,中断请求信号采用边沿触

29、发方式;中断类型码为型码为08H0FH;用全嵌套、缓冲、非自动结束中断方式。;用全嵌套、缓冲、非自动结束中断方式。8259A的端口地址为的端口地址为20H和和21H。该片该片8259A的初始化设置的程序段如下:的初始化设置的程序段如下:MOV AL, 13H ;ICW1=00010011OUT 20H, ALMOV AL, 8;ICW2=00001000OUT 21H, ALMOV AL, 0DH;ICW4=00001101OUT 21H, AL 例例2、试对一个主从式、试对一个主从式8259A进行初始化命令字的设置。从片进行初始化命令字的设置。从片的的INT与主片的与主片的IR2相连。从片的

30、中断类型码为相连。从片的中断类型码为70H77H,端口地址为端口地址为A0H和和A1H;主片的中断类型码为;主片的中断类型码为08H0FH,端口地址为端口地址为20H和和21H。中断请求信号采用边沿触发,采用。中断请求信号采用边沿触发,采用全嵌套、缓冲、非自动结束中断方式。全嵌套、缓冲、非自动结束中断方式。主主8259A:mov al,11h;ICW1=00010001out 20h,almov al,08h;ICW2=00001000out 21h,almov al,04h;ICW3=00000100out 21h,almov al,0dh;ICW4=00001101out 21h,al 从

31、从8259A:mov al,11h;ICW1=00010001out 0a0h,almov al,70h;ICW2=01110000out 0a1h,almov al,02h;ICW3=00000010out 0a1h,almov al, 09h;ICW4=00001001out 0a1h,al8259A的操作命令字OCW nOCW用于设置8259的工作状态n在初始化后写入nOCW的写入顺序可任意n写入地址要求:nOCW1必须写入奇地址端口必须写入奇地址端口(A0=1)nOCW2,OCW3必须写入偶地址端口必须写入偶地址端口(A0=0) OCW1中断屏蔽字 nMi=1 中断请求线IRi被屏蔽(

32、不允许中断) =0 允许该IRi中断 nOCW1将写入IMR寄存器。nA0=1时读OCW1可读出设置的IMR内容。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0OCW2中断结束和优先级循环 nL2L0: 优先级编码nR: 优先级是否循环(0:固定; 1:循环)nSL: 指定优先级nEOI: 结束中断命令 R SL EOI(P258,图6-39) 0 0 1 非指定EOI 命令(NSEOI),全嵌套方式 0 1 1 指定EOI 命令(SEOI),全嵌套方式,按L2-L0编码复位ISR 1 0 1 NSEOI 命令,优先级自动循环 1 1

33、1 NSEOI 命令,按L2-L0编码循环优先级(L2-L0设为最低优先级) 1 0 0 自动EOI时,设置优先级自动循环 0 0 0 自动EOI时,取消优先级自动循环(固定优先级) 1 1 0 特殊循环优先级,L2-L0设为最低优先级A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0OCW3屏蔽方式和读出控制字 nESMM: 允许使能特殊屏蔽方式nSMM: 特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位1 0 特殊屏蔽方式复位0 x 非特殊屏蔽方式nP(Polling): =1 查询方式 =0 非查询方式A0 D7D6 D5 D4 D3

34、D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISnRR: 读寄存器nRIS: ISR/IRR选择RR RIS1 1 读ISR1 0 读IRR0 x 无效OCW3(续)n查询方式允许8259A不工作于中断方式,而是以查询方式工作。nCPU先写一个先写一个D2=1的的OCW3,再对同一地址读入,即可,再对同一地址读入,即可得到如下状态字节:得到如下状态字节: I x x x x R2 R1 R0 I=1表示有中断请求,优先级最高的中断请求号为表示有中断请求,优先级最高的中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生此查询步骤可反复执行,以响应多个同时发生 的中

35、断。的中断。 n读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。8295A的应用18259A在IBMPC/XT上的应用28295A在IBM PC/AT上的应用1. 8259A在在IBM PC系列机上的应系列机上的应用用在在IBM PC/XT中,采用中,采用1片片8259A来管理可屏蔽来管理可屏蔽中断中断ROM BIOS中规定使用中规定使用20H(A0=0)和)和21H(A0=1)I/O端口端口初始化规定的工作方式:边沿触发、缓冲方式、普通初始化规定的工作方式:边沿触发、缓冲方式、普通EOI方式、全嵌套方式方式、全嵌套方式可屏蔽中断类型号为可屏蔽中断类型号为08

36、H-0FHIBM PC/XT的的8259A连接示意图连接示意图方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW18.2HzA0CS8259A总线总线A0数数 据据 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 IBM PC/XT机的外中断的中断源和中断类型码中断类型码中断源中断向量地址08H09H0AH0BH0CH0DH0EH0FH电子钟时间基准键盘保留

37、串行口2串行口1硬盘软盘打印机20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FHROM-BIOS对对8259A的的初始化程序初始化程序:MOV A1,00010011H ;写入;写入ICW1,设定边沿触发,设定边沿触发,OUT 20H,A1 ;单片方式;单片方式MOV A1,00001000H ;写入;写入ICW2,设定,设定IRQ0的中断的中断OUT 21H,A1;向量号为;向量号为08HMOV A1,00001101H ;写入;写入ICW4,设定普通全嵌套,设定普通全嵌套OUT 21H,A1 ;方式,普通;方式,普通EOI,选用,选用8086/

38、8088CPU设置中断屏蔽寄存器设置中断屏蔽寄存器:IN AL,21H;读;读IMRAND AL,011111100H;只允许;只允许IR0和和IR1OUT 21H,AL;写入;写入OCW1中断结束时的处理中断结束时的处理:MOV AL,00100000H ;OCW2=20HOUT 20H,A1 IRET读读IRR(ISR):MOV AL,00001010H ;写;写OCW3,读,读IRROUT 20H,ALNOP;延时;延时INAL,20H;读;读IRR2. 8259A在在IBM AT系列机上的应用系列机上的应用在在IBM PC/AT中,采用中,采用2片片8259A来管理可屏蔽来管理可屏蔽中

39、断中断主片端口地址为主片端口地址为20H和和21H,从片端口地址为,从片端口地址为A0H和和A1H初始化规定的工作方式:边沿触发、非缓冲方式、普初始化规定的工作方式:边沿触发、非缓冲方式、普通通EOI方式、全嵌套方式方式、全嵌套方式主片可屏蔽中断类型号为主片可屏蔽中断类型号为08H-0FH,从片为,从片为70H-77H初始化(初始化(P262)结束中断结束中断:;从片发;从片发EOI命令命令MOV AL,00100000HOUT 0A0H,AL;写从片;写从片EOI命令命令;读;读ISRMOV AL,00001011h;写;写OCW3,读,读ISROUT 0A0H,ALNOPIN AL,0A0

40、H;读;读ISRAND AL,AL;不为;不为0则不向主片发则不向主片发EOI命令命令JNZ L1;主片发;主片发EOI命令命令MOV AL,00100000HOUT 20H,AL;写主片;写主片EOI命令命令L1:IRET6.6 中断服务程序设计中断服务程序设计中断程序设计的一般过程中断程序设计的一般过程(p264):n1、设置中断向量表、设置中断向量表n2、设置中断控制器、设置中断控制器n3、设置、设置CPU的中断允许标志的中断允许标志IFn4、设计中断服务程序、设计中断服务程序例例1 1 利用连接在利用连接在8259A IR0上的时钟信号,上的时钟信号, 编写具有定时功能程序,编写具有定

41、时功能程序, 要求每隔要求每隔5秒在屏蔽上显示一个字符秒在屏蔽上显示一个字符 A。8088INTR主主 板板IF18.2Hz 方波方波8259AINT中断屏蔽寄存器中断屏蔽寄存器IR0当前当前中断中断服务服务寄存器寄存器08h18259A时钟中断程序时钟中断程序n时钟信号连接在时钟信号连接在IR0上,申请的中断类型号为上,申请的中断类型号为08H。n时钟信号是一个频率为时钟信号是一个频率为18.2HZ的方波信号的方波信号, 即每秒向即每秒向8259A发出发出18.2次的中断申请。次的中断申请。 如果如果CPU响应该中断申请,则以每秒响应该中断申请,则以每秒18.2次的频率次的频率执行执行08H

42、类型的中断子程。类型的中断子程。分析分析80888259AINTR IR018.2Hz方波信号方波信号INTn中断申请的任务是每中断申请的任务是每5秒显示一个字符秒显示一个字符A1秒执行秒执行18.2次,则次,则5秒执行秒执行18.25=91次,次,只在执行到第只在执行到第91次时显示次时显示A,其它不显示。,其它不显示。n在中断子程中用一个量来计数中断子程被执行的次数在中断子程中用一个量来计数中断子程被执行的次数,即即CPU响应响应IR0中断申请的次数。中断申请的次数。当达到当达到91次,则显示次,则显示A,并将计数值清,并将计数值清0,重新计数重新计数;其它情况只计数,不显示其它情况只计数

43、,不显示A。n中断子程的最后应发中断结束命令中断子程的最后应发中断结束命令EOI。主程序主程序中断子程中断子程CLI关中断关中断保存原保存原08H中断向量中断向量设置新设置新08H中断向量中断向量设置设置8259A的中断屏蔽字的中断屏蔽字,允许允许IR0中断中断 08H中断子程中断子程 执行次数初值执行次数初值0STI开中断开中断主程其它工作处理主程其它工作处理(可用双重循环延时代替可用双重循环延时代替)恢复原恢复原08H中断向量中断向量返回返回DOS开始开始CX发中断结束命令发中断结束命令EOI恢复现场恢复现场IRET中断返回中断返回保存现场保存现场开始开始中断子程被执行一次中断子程被执行一

44、次CX CX+1 NY调调02HDOS功能功能显示字符显示字符A CX 0 重新记数重新记数到到91次,即次,即5秒时间到秒时间到?code SEGMENT ASSUME CS:codestart: CLI ;关中断关中断MOV AL, 08H MOV AH, 35HINT 21H ;取系统取系统08H类型中断向量类型中断向量PUSH ES ;用堆栈保存用堆栈保存 PUSH BXPUSH DS MOV DX, OFFSET display ;设置设置08H 类型中断向量类型中断向量 MOV AX, SEG displayMOV DS, AXMOV AL, 08HMOV AH, 25HINT 2

45、1HPOP DS程序清单程序清单: :IN AL, 21H ;设置设置8259A中断屏蔽字中断屏蔽字, AND AL, 1111 1110B ;允许允许IR0中断中断 OUT 21H, ALMOV CX, 0 ;置中断子程计数器初值为置中断子程计数器初值为0STI ;CPU开中断开中断MOV SI, 8000H ;用双重循环延时,用双重循环延时,w2: MOV DI, 8000H ;模拟模拟CPU对其他任务的处理对其他任务的处理 w1: DEC DI ;DI,SI的值可修改的值可修改, ,控制主程执行时间控制主程执行时间JNZ w1DEC SIJNZ w2POP DX ;恢复系统恢复系统08H

46、类型中断向量类型中断向量 POP DSMOV AL, 08HMOV AH, 25HINT 21HMOV AH, 4CH ;返回返回DOSINT 21H display PROC ;自编的自编的08H类型中断子程类型中断子程 PUSH AX ; ;保护现场保护现场 INC CX ;执行中断子程一次,计数值加执行中断子程一次,计数值加1 CMP CX, 91 JNZ exit ;到到91次了吗?未到跳转至次了吗?未到跳转至exit MOV DL, A ;到,显示到,显示 A MOV AH, 02 INT 21H MOV CX, 0 ;清计数值为清计数值为0,重新计时,重新计时exit: MOV A

47、L, 20H ;发中断结束命令发中断结束命令EOI OUT 20H, AL POP AX ; ;恢复现场恢复现场 IRET ;中断返回中断返回display ENDPcode ENDS END start例例2 2 编写编写09H类型的键盘中断子程,完成每操作键盘类型的键盘中断子程,完成每操作键盘上任意键,屏幕上显示上任意键,屏幕上显示 HeLLo!键键盘盘接接口口键键盘盘键盘键盘中断申请中断申请8259AIR1INTAINT8088INTRINTA60H端口端口61H端口端口8255A应答信号应答信号扫描码扫描码辅辅助助电电路路主主 板板IR018.2Hz方方 波波2键盘中断程序l说明:说明: 键盘接口通过键盘接口通过8259A的的IR1发中断申请发中断申请, 类型号类型号09H 键盘接口对按下键和释放键都向键盘接口对按下键和释放键都向82

温馨提示

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

最新文档

评论

0/150

提交评论