第七章中断与中断控制习题选解.doc
文本预览下载声明
7.7 8259A只有两个端口地址,但可读/写寄存器数远远多于两个,如何保证正确读/写?
解:8259A中使用了如下几种方法来实现同一地址寻址多个内部寄存器:
(1)利用命令字OCW:事先指定读IRR或ISR;
(2)利用命令字中位4和位3的状态来决定写ICW1,OCW:还是写OCW3 ;
(3)根据顺序来决定同一接口地址下的命令字(ICWZ,ICW3 ,ICW4,OCW1) 。
7.11某80X86微机的中断系统有5个外部中断源,接在8259A的端,中断类型码为5BH,5CH,5DH,5EH和5FH , 8259A的端口地址为B0H,B1H。允许它们以全嵌套工作方式工作,中断请求采用电平触发方式。试编写8259A的初始化程序。
解:先确定要写哪些控制字,以及每个控制字对应位的取值,再编程。此题,要写的控制字及位取值如下:
(1) = x x xllxll,即:中断请求为电平触发、单片8259A、写ICW4 。
(2) =01011x x x,即:此片8259A中断类型码高5位为:01011
(3) ICW3无需写。
( 4 ) ICW4 = 00000 x 01,即:一般嵌套、非缓冲、正常EOI ,8086 /8088模式。
其中x表示取值为0或1均可。假定控制字中的x固定为0,初始化程序如下:
MOV DX,0B0H ;指向端口0
MOV AL,1BH ;中断请求为边沿触发、单片8259A、写ICW4
OUT DX , AL ;写ICWI
INC DX ;指向端口1
MOV AL, 58H ;中断类型码高5位为01011
OUT DX , AL ;写ICW2
MOV AL,01H ;一般嵌套、非缓冲、正常EOI , 8086 /8088模式
OUT DX , AL ;写ICW4
7.12某80X86系统中设置三片8259A级联使用,一片为主,两片为从,从片分别接人主片的和。若已知当前主8259A和从8259A的上各接有一个外部中断源,其中断向量号分别为75H,85H,95H。假设它们的中断入口地址均在同一段中,段基址为4310H,偏移地址分别为1230H,2340H,3450H;所有中断都采用边沿触发方式、全嵌套方式、正常EOI结束方式。
(1)试画出该系统的硬件连线图;
(2)试编写全部初始化程序。
解:(1)此题硬件连线要考虑各8259A与CPU的连接,还要考虑三片8259A间的级联连
接。8259A与CPU连接的方法是:
①端口选择线与一般与MPU低位地址线直接相连,也可与其他相连。
②数据线与MPU数据线直接相连。
③片选线与余下MPU高位地址线经译码后产生的片选信号相连。
④分别与控制总线组合形成的、和中断响应信号相连。
⑤主片的INT与MPU的INTR直接相连。
8259A级联连接方法是:
①从片的INT与主片的某个直接相连。
②主片的与各从片的直接相连。
③则取决于是采用缓冲还是非缓冲方式。
本题采用非缓冲方式,主片接+5V,从片接地。由此画出硬件连线图,如图7.3所示。
(2)初始化程序应包括两部分内容,即主、从片的初始化和填写相关中断向量表。对主片编程时要注意。在多片级联方式下,系统要工作在完全嵌套方式,主片必须设置为特殊全嵌套方式,以便同级中断能打断同级中断。因为在多片级联方式下,从片的8个中断源是共用主片的一个中断级,而实际上从片的8个中断源也有优先级区别。假定当前正在服务的中断级是从片的某个中断级,若当CPU正在为该中断源服务时,该从片又向主片提出中断请求,此时对主片而言是同一级中断请求,但对从片来说却是出现了一个高优先级中断请求,应该优先处理,
假定主片、从片1、从片2地址分别为:PORT00. PORT01 , PORT10, PORT1l , PORT20,
PORT21 ,程序段如下:
:初始化8259A主片
MOV AL,11H ;写ICW1边沿触发、多片级联、写ICW4
OUT PORT00, AL
MOV AL,70H ;
显示全部