六章输入输出和中断技术2ppt课件

上传人:鲁** 文档编号:568604796 上传时间:2024-07-25 格式:PPT 页数:66 大小:654.02KB
返回 下载 相关 举报
六章输入输出和中断技术2ppt课件_第1页
第1页 / 共66页
六章输入输出和中断技术2ppt课件_第2页
第2页 / 共66页
六章输入输出和中断技术2ppt课件_第3页
第3页 / 共66页
六章输入输出和中断技术2ppt课件_第4页
第4页 / 共66页
六章输入输出和中断技术2ppt课件_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《六章输入输出和中断技术2ppt课件》由会员分享,可在线阅读,更多相关《六章输入输出和中断技术2ppt课件(66页珍藏版)》请在金锄头文库上搜索。

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可编程中断控制器可用于管理可编程中断控制器可用于管理Intel

3、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存放中断屏蔽字,某位存放中断屏蔽字,某位=1表示对应的表示对应的IRi

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

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

7、IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 定时器定时器8259A的时序的时序CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期响应周期8259A工作波形工作波形INT第一个周期第一个周期T1 T2 T3 T4ALECLK 第二个周期第二个周期T1 T2 T3 T4第一个前保持为高电平第一个前保持为高电平 INTALOCK8259A的工作方式的工作方式中断触发方式中断触发方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式

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

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

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

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

12、B.特特殊殊嵌嵌套套方方式式:IR4的的中中断断被被服服务务 时时 , 只只 封封 锁锁IR5-IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPUn循环优先级方式(自动循环方式和特殊循环方循环优先级方式(自动循环方式和特殊循环方式)式)中断源轮流处于最高优先级,即自动中断优先级循中断源轮流处于最高优先级,即自动中断优先级循环环某中断请求某中断请求IRi被处理后,其优先级别自动降为最低,被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级原来比它低一级的中断

13、上升为最高级 初始优先级顺序可用编程改变(特殊循环方式)初始优先级顺序可用编程改变(特殊循环方式)IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi结束中断处理方式结束中断处理方式n当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应中的相应位位ISRi=1。当服务结束后,则必须清零。当服务结束后,则必须清零该该ISRi位。使位。使ISRi=0是通过向是通过向825

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

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

16、了允许或禁止允许或禁止某位某位IRi所对应的所对应的中断中断:IMi=1禁止,禁止,IMi=0允许。允许。n特殊屏蔽方式:特殊屏蔽方式:n提供了允许较低优先级的中断能够得到响应的提供了允许较低优先级的中断能够得到响应的特殊手段。特殊手段。n原理原理:假定当前正在处理:假定当前正在处理IR6,先,先进入特殊屏进入特殊屏蔽方式,然后蔽方式,然后设置设置IM6=1。这时,除。这时,除IR6外的所外的所有中断请求均能得到响应。有中断请求均能得到响应。n特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令结束中断。命令结束中断。n特殊屏蔽例:特殊屏蔽例:;IR4中断处理程序中断处理程序CLIMOVAL,

17、68H;OCW3:01101000OUT0C0H,AL;设置特殊屏蔽方式;设置特殊屏蔽方式INAL,0C2HORAL,10H;屏蔽;屏蔽IR4OUT0C2H,ALSTI;IR7请求,响应,返回请求,响应,返回CLI;为设命令字;为设命令字INAL,0C2H;读出屏蔽字;读出屏蔽字ANDAL,0EFH;清除;清除IMR4OUT0C2H,ALMOVAL,48H;OCW3:01001000OUT0C0H,AL;取消特殊屏蔽;取消特殊屏蔽STI;继续;继续IR4中断服务中断服务MOVAL,20H;OCW2:00100000(EOI)OUT0C0,ALIRET中断触发方式中断触发方式n边沿触发边沿触发n

18、IRi出现上升沿表示有中断请出现上升沿表示有中断请求求n电平触发电平触发nIRi出现高电平表示有中断请出现高电平表示有中断请求求n在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平中断的级连中断的级连n一个系统中,一个系统中,8259A可以级连,有一个主可以级连,有一个主8259A,若干个(最多若干个(最多8个)从个)从8259An级连时,主级连时,主8259A的三条级连线的三条级连线CAS0CAS2作作为输出线,连至每个从为输出线,连至每个从8259A的的CAS0CAS2n每个从每个从8259A的中断请求信号的中断请求信号INT,连至主,连至主8259A的一个中断请求

19、输入端的一个中断请求输入端IRn主主8259A的的INT线连至线连至CPU的中断请求输入端的中断请求输入端nSP*/EN*在非缓冲方式下,规定该在非缓冲方式下,规定该8259A是主片是主片(SP*1)还是从片()还是从片(SP*0)8259A的编程n8259A的控制命令分为n初始化命令字初始化命令字ICWICW1ICW4向向8259A写入写入ICW的过程称为的过程称为初始化编程初始化编程n操作命令字操作命令字OCW OCW1OCW3向向8259A写入写入OCW的过程称为的过程称为操作方式编操作方式编程程 8259A的编程的编程SP/ENCA0CA1CA2IORIOW总线总线D0D7数数 据据

20、线线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当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器VCCGND1 10 00 0A0IR

21、0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器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 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存

22、器寄存器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#和和D4、D3的配的配合合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表

23、: 8259A的初始化顺序 n8259的初始化流程如图n注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY8259A的控制命令字n初始化8259A必须从ICW1开始n写写ICW1意味着重新初始化意味着重新初始化8259An写入写入ICW1后,后,8259A的状态如下的状态如下:清除清除ISR和和IMR(全全0);将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最高,最高,IR7最最低;低;设定为一般屏蔽方式;设定为一般屏蔽方式;采用非自动中断结束方式;采用非自动中断结束方式;状态读出逻辑预置为读状态读出逻辑预置为读IRR。准备顺序接收

24、其他准备顺序接收其他ICWICW1初始化字1LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0) 1只能为只能为1,作为标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式电平触发方式LTIM0,边沿触发方式边沿触发方式 规定单片或级连方式:规定单片或级连方式:SNGL1,单片方式单片方式SNGL0,级连方式级连方式是否写入是否写入ICW4IC41,要写入要写入ICW4IC40,不写入不写入ICW4,即,即ICW4规定的位全为规定的位全为0A0 = 0ICW2中断向量码A0 = 1T7T6T5T4T3D7D6D

25、5D4D3D2D1D0设置中断向量号设置中断向量号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编编码码说说明明从从片片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚A0 = 1ICW3级连控制

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

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

28、结束中断方式。8259A的端口地址为的端口地址为20H和和21H。该片该片8259A的初始化设置的程序段如下:的初始化设置的程序段如下:MOVAL,13H;ICW1=00010011OUT20H,ALMOVAL,8;ICW2=00001000OUT21H,ALMOVAL,0DH;ICW4=00001101OUT21H,AL 例例2、试对一个主从式、试对一个主从式8259A进行初始化命令字的设置。从片进行初始化命令字的设置。从片的的INT与主片的与主片的IR2相连。从片的中断类型码为相连。从片的中断类型码为70H77H,端口地址为端口地址为A0H和和A1H;主片的中断类型码为;主片的中断类型码为

29、08H0FH,端口地址为端口地址为20H和和21H。中断请求信号采用边沿触发,采用全。中断请求信号采用边沿触发,采用全嵌套、缓冲、非自动结束中断方式。嵌套、缓冲、非自动结束中断方式。主主8259A:moval,11h;ICW1=00010001out20h,almoval,08h;ICW2=00001000out21h,almoval,04h;ICW3=00000100out21h,almoval,0dh;ICW4=00001101out21h,al 从从8259A:moval,11h;ICW1=00010001out0a0h,almoval,70h;ICW2=01110000out0a1h,

30、almoval,02h;ICW3=00000010out0a1h,almoval,09h;ICW4=00001001out0a1h,al8259A的操作命令字OCW nOCW用于设置8259的工作状态n在初始化后写入nOCW的写入顺序可任意n写入地址要求:nOCW1必须写入奇地址端口必须写入奇地址端口(A0=1)nOCW2,OCW3必须写入偶地址端口必须写入偶地址端口(A0=0) OCW1中断屏蔽字 nMi=1 中断请求线IRi被屏蔽(不允许中断) =0 允许该IRi中断 nOCW1将写入IMR寄存器。nA0=1时读OCW1可读出设置的IMR内容。 A0 D7D6 D5 D4 D3 D2 D1

31、 D0 1M7 M6 M5 M4 M3M2M1M0OCW2中断结束和优先级循环 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 1 NSEOI 命令,按L2-L0编码循环优先级(L2-L0设为最低优先级) 1 0 0 自动EOI时,设置优先级自动循环 0 0 0 自动EOI时,取消优先级自动循环

32、(固定优先级) 1 1 0 特殊循环优先级,L2-L0设为最低优先级A0 D7D6 D5 D4 D3 D2 D1 D0 0R SL EOI 0 0L2L1L0OCW3屏蔽方式和读出控制字 nESMM: 允许使能特殊屏蔽方式nSMM: 特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位1 0 特殊屏蔽方式复位0 x 非特殊屏蔽方式nP(Polling): =1 查询方式 =0 非查询方式A0 D7D6 D5 D4 D3 D2 D1 D0 00ESMM SMM 01PRRRISnRR: 读寄存器nRIS: ISR/IRR选择RR RIS1 1 读ISR1 0 读IRR0 x 无效OCW3(续)n

33、查询方式允许8259A不工作于中断方式,而是以查询方式工作。nCPU先写一个先写一个D2=1的的OCW3,再对同一地址读入,即可,再对同一地址读入,即可得到如下状态字节:得到如下状态字节: I x x x x R2 R1 R0 I=1表示有中断请求,优先级最高的中断请求号为表示有中断请求,优先级最高的中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生此查询步骤可反复执行,以响应多个同时发生 的中断。的中断。 n读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。8295A的应用18259A在IBMPC/XT上的应用28295A在IBM PC/AT上的

34、应用1.8259A在在IBMPC系列机上的应系列机上的应用用在在IBMPC/XT中,采用中,采用1片片8259A来管理可屏蔽来管理可屏蔽中断中断ROMBIOS中规定使用中规定使用20H(A0=0)和)和21H(A0=1)I/O端口端口初始化规定的工作方式:边沿触发、缓冲方式、普通初始化规定的工作方式:边沿触发、缓冲方式、普通EOI方式、全嵌套方式方式、全嵌套方式可屏蔽中断类型号为可屏蔽中断类型号为08H-0FHIBM PC/XT的的8259A连接示意图连接示意图方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW18.2HzA0CS8259A总线总线A0数数 据据

35、 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 IBM PC/XT机的外中断的中断源和中断类型码中断类型码中断源中断向量地址08H09H0AH0BH0CH0DH0EH0FH电子钟时间基准键盘保留串行口2串行口1硬盘软盘打印机20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FHROM-BIOS对对8259A的的初始化程序初始化程序:MOVA1,0

36、0010011H;写入;写入ICW1,设定边沿触发,设定边沿触发,OUT20H,A1;单片方式;单片方式MOVA1,00001000H;写入;写入ICW2,设定,设定IRQ0的中断的中断OUT21H,A1;向量号为;向量号为08HMOVA1,00001101H;写入;写入ICW4,设定普通全嵌套,设定普通全嵌套OUT21H,A1;方式,普通;方式,普通EOI,选用,选用8086/8088CPU设置中断屏蔽寄存器设置中断屏蔽寄存器:INAL,21H;读;读IMRAND AL,011111100H;只允许;只允许IR0和和IR1OUT 21H,AL;写入;写入OCW1中断结束时的处理中断结束时的处

37、理:MOVAL,00100000H;OCW2=20HOUT20H,A1IRET读读IRR(ISR):MOVAL,00001010H ;写;写OCW3,读,读IRROUT 20H,ALNOP;延时;延时INAL,20H;读;读IRR2.8259A在在IBMAT系列机上的应用系列机上的应用在在IBMPC/AT中,采用中,采用2片片8259A来管理可屏蔽来管理可屏蔽中断中断主片端口地址为主片端口地址为20H和和21H,从片端口地址为,从片端口地址为A0H和和A1H初始化规定的工作方式:边沿触发、非缓冲方式、普初始化规定的工作方式:边沿触发、非缓冲方式、普通通EOI方式、全嵌套方式方式、全嵌套方式主片

38、可屏蔽中断类型号为主片可屏蔽中断类型号为08H-0FH,从片为,从片为70H-77H初始化(初始化(P262)结束中断结束中断:;从片发;从片发EOI命令命令MOV AL,00100000HOUT0A0H,AL;写从片;写从片EOI命令命令;读;读ISRMOV AL,00001011h;写;写OCW3,读,读ISROUT 0A0H,ALNOPINAL,0A0H;读;读ISRANDAL,AL;不为;不为0则不向主片发则不向主片发EOI命令命令JNZL1;主片发;主片发EOI命令命令MOVAL,00100000HOUT20H,AL;写主片;写主片EOI命令命令L1:IRET6.6中断服务程序设计中

39、断服务程序设计中断程序设计的一般过程中断程序设计的一般过程(p264):n1、设置中断向量表、设置中断向量表n2、设置中断控制器、设置中断控制器n3、设置、设置CPU的中断允许标志的中断允许标志IFn4、设计中断服务程序、设计中断服务程序例例1 1 利用连接在利用连接在8259A IR0上的时钟信号,上的时钟信号, 编写具有定时功能程序,编写具有定时功能程序, 要要求求每每隔隔5秒秒在在屏屏蔽蔽上上显显示示一一个个字字符符 A。8088INTR主主 板板IF18.2Hz 方波方波8259AINT中断屏蔽寄存器中断屏蔽寄存器IR0当前当前中断中断服务服务寄存器寄存器08h18259A时钟中断程序

40、时钟中断程序n时钟信号连接在时钟信号连接在IR0上,申请的中断类型号为上,申请的中断类型号为08H。n时钟信号是一个频率为时钟信号是一个频率为18.2HZ的方波信号的方波信号,即每秒向即每秒向8259A发出发出18.2次的中断申请。次的中断申请。如如果果CPU响响应应该该中中断断申申请请,则则以以每每秒秒18.2次次的的频频率率执行执行08H类型的中断子程。类型的中断子程。分析分析80888259AINTR IR018.2Hz方波信号方波信号INTn中断申请的任务是每中断申请的任务是每5秒显示一个字符秒显示一个字符A1秒执行秒执行18.2次,则次,则5秒执行秒执行18.25=91次,次,只在执

41、行到第只在执行到第91次时显示次时显示A,其它不显示。其它不显示。n在中断子程中用一个量来计数中断子程被执行的次数在中断子程中用一个量来计数中断子程被执行的次数,即即CPU响应响应IR0中断申请的次数。中断申请的次数。当当达达到到91次次,则则显显示示A,并并将将计计数数值值清清0,重新计数,重新计数;其它情况只计数,不显示其它情况只计数,不显示A。n中断子程的最后应发中断结束命令中断子程的最后应发中断结束命令EOI。主程序主程序中断子程中断子程CLI关中断关中断保存原保存原08H中断向量中断向量设置新设置新08H中断向量中断向量设置设置8259A的中断屏蔽字的中断屏蔽字,允许允许IR0中断中

42、断 08H中断子程中断子程 执行次数初值执行次数初值0STI开中断开中断主程其它工作处理主程其它工作处理(可用双重循环延时代替可用双重循环延时代替)恢复原恢复原08H中断向量中断向量返回返回DOS开始开始CX发中断结束命令发中断结束命令EOI恢复现场恢复现场IRET中断返回中断返回保存现场保存现场开始开始中断子程被执行一次中断子程被执行一次CX CX+1 NY调调02HDOS功能功能显示字符显示字符A CX 0 重新记数重新记数到到91次,即次,即5秒时间到秒时间到?code SEGMENT ASSUME CS:codestart: CLI ;关中断关中断MOV AL, 08H MOV AH,

43、 35HINT 21H ;取系统取系统08H类型中断向量类型中断向量PUSH ES ;用堆栈保存用堆栈保存 PUSH BXPUSH DS MOV DX, OFFSET display ;设置设置08H 类型中断向量类型中断向量 MOV AX, SEG displayMOV DS, AXMOV AL, 08HMOV AH, 25HINT 21HPOP DS程序清单程序清单: :IN AL, 21H ;设置设置8259A中断屏蔽字中断屏蔽字, AND AL, 1111 1110B ;允许允许IR0中断中断 OUT 21H, ALMOV CX, 0 ;置中断子程计数器初值为置中断子程计数器初值为0S

44、TI ;CPU开中断开中断MOV SI, 8000H ;用双重循环延时,用双重循环延时,w2: MOV DI, 8000H ;模拟模拟CPU对其他任务的处理对其他任务的处理 w1: DEC DI ;DI,SI的值可修改的值可修改, ,控制主程执行时间控制主程执行时间JNZ w1DEC SIJNZ w2POP DX ;恢复系统恢复系统08H类型中断向量类型中断向量 POP DSMOV AL, 08HMOV AH, 25HINT 21HMOV AH, 4CH ;返回返回DOSINT 21H display PROC ;自编的自编的08H类型中断子程类型中断子程 PUSH AX ; ;保护现场保护现

45、场 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 AL, 20H ;发中断结束命令发中断结束命令EOI OUT 20H, AL POP AX ; ;恢复现场恢复现场 IRET ;中断返回中断返回display ENDPcode ENDS END start例例2 2 编写编写09H类型的键盘中断子程,完成每操作

46、键盘类型的键盘中断子程,完成每操作键盘上任意键,屏幕上显示上任意键,屏幕上显示HeLLo!键键盘盘接接口口键键盘盘键盘键盘中断申请中断申请8259AIR1INTAINT8088INTRINTA60H端口端口61H端口端口8255A应答信号应答信号扫描码扫描码辅辅助助电电路路主主 板板IR018.2Hz方方 波波2键盘中断程序l说明:说明: 键盘接口通过键盘接口通过8259A的的IR1发中断申请发中断申请,类型号类型号09H键盘接口对按下键和释放键都向键盘接口对按下键和释放键都向8259A发出中断申请,发出中断申请,即即若若CPU满满足足响响应应条条件件,对对键键盘盘上上的的一一个个按按键键操操

47、作作,CPU将将执执行行两两次次09H类类型型的的中中断断子子程程:按按下下键键一一次次,释释放键一次放键一次CPU可从可从60H端口读取操作键的扫描码,端口读取操作键的扫描码,每个键对应有一个扫描码每个键对应有一个扫描码由扫描码的由扫描码的D6D0判断操作的是哪一个键,判断操作的是哪一个键,由扫描码的由扫描码的D7位判断是按下键,还释放键。位判断是按下键,还释放键。D7=1,释放键(断码);释放键(断码);D7=0,按下键(通码)按下键(通码)键盘中断子程中应发中断结束命令键盘中断子程中应发中断结束命令主程序主程序键盘中断子程键盘中断子程CLI关中断关中断保存原保存原09H中断向量中断向量设

48、置新设置新09H中断向量中断向量设置设置8259A的中断屏蔽字的中断屏蔽字,允许允许IR1中断中断STI开中断开中断主程其它工作处理主程其它工作处理(可用双重循环延时代替可用双重循环延时代替)恢复原恢复原09H中断向量中断向量返回返回DOS开始开始保存现场保存现场开始开始 从从60H端口读入扫描码端口读入扫描码N判断是否是按下键?判断是否是按下键?Y调调09H功能功能显示字符串显示字符串Hello!发中断结束命令发中断结束命令EOI恢复现场恢复现场IRET中断返回中断返回data SEGMENTstring DB Hello! ,0ah.0dh,$data ENDScode SEGMENT A

49、SSUME CS:code,DS:datastart: CLI ;关中断关中断,IF=0MOV AL, 09H MOV AH, 35HINT 21H ;取系统取系统09H类型中断向量类型中断向量PUSH ES ; ;用堆栈保存用堆栈保存 PUSH BXPUSH DS ;设置设置09H 类型中断向量类型中断向量 MOV DX, OFFSET displayMOV AX, SEG displayMOV DS, AXMOV AL, 09HMOV AH, 25HINT 21HPOP DS程序清单程序清单 IN AL, 21H ;设置设置8259A中断屏蔽字中断屏蔽字 AND AL, 11111101B

50、 ;允许允许IR1键盘键盘中断中断OUT 21H, AL STI ;开开中断中断, IF= 1 MOV SI, 8000H ;用双重循环延时用双重循环延时w2: MOV DI, 8000H ;模拟模拟CPU对其他任务的处理对其他任务的处理 w1: DEC DI ;DI,SI的值可修改,控制主程执行时间的值可修改,控制主程执行时间 JNZ w1DEC SIJNZ w2POP DX ;恢复系统恢复系统09H类型中断向量类型中断向量 POP DSMOV AL, 09HMOV AH, 25HINT 21HMOV AH, 4CH ;返回返回DOSINT 21Hdisplay PROC ;自编的自编的09

51、H类型中断子程类型中断子程 PUSH AX ;保存现场保存现场 IN AL, 60H ;读入字符扫描码读入字符扫描码 TEST AL, 80H ;判断是否是按下键操作?判断是否是按下键操作? JNZ exit MOV AX, data ;是,显示是,显示 Hello! MOV DS, AX LEA DX, string MOV AH, 09 INT 21Hexit: MOV AL, 20H ;发中断结束命令发中断结束命令EOI OUT 20H, AL POP AX ;恢复现场恢复现场 IRET ;中断返回中断返回display ENDPcode ENDS END start作业n6-4,6-5,6-18

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号