收藏 分享(赏)

第7讲微型计算机中断系统-2.ppt

上传人:知足长乐 文档编号:1225672 上传时间:2018-06-19 格式:PPT 页数:53 大小:3.49MB
下载 相关 举报
第7讲微型计算机中断系统-2.ppt_第1页
第1页 / 共53页
第7讲微型计算机中断系统-2.ppt_第2页
第2页 / 共53页
第7讲微型计算机中断系统-2.ppt_第3页
第3页 / 共53页
第7讲微型计算机中断系统-2.ppt_第4页
第4页 / 共53页
第7讲微型计算机中断系统-2.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、7.3.4 8259的编程方法,可编程中断控制器8259A的工作状态和操作方式由CPU通过命令字进行控制的。 8259A有两类命令字: 初始化命令字ICW(4个) 操作命令字OCW(3个) 7个CPU控制寄存器分成两组: 一组用做存ICW 另一组存OCW,7.3.4 8259的编程方法,两组7个寄存器占用2个I/O端口地址(在PC机中8259A的端口地址为20H和21H):,7.3.4 8259的编程方法,ICW1、OCW2、OCW3由A0、D4和D3三位状态寻址:,ICW2、ICW3、ICW4在ICW1后,按顺序写入。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,当计算机

2、刚启动时,用初始化程序设定ICW,即由CPU按次序发送24个不同格式的ICW,用来建立起8259A操作的初始工作状态,此后的整个工作过程中该状态保持不变。 操作命令字(OCW)用于动态控制中断处理,是在需要改变或控制8259A操作时随时发送的。 注意:当发出ICW或OCW时,CPU中断申请引脚INTR应关闭(使用CLI指令)。,7.3.4 8259的编程方法,对8259A的编程分为两类: 初始化编程 操作过程编程 8259A的软件编程必须按照先初始化编程,然后进行操作方式编程的顺序。,7.3.4 8259的编程方法,初始化编程初始化编程的主要任务:(1)复位芯片。(2)设定中断请求信号有效的形

3、式。(3)设定是单片,还是级联。(4)设定中断类型号。(5)设定优先排队规则。(6)设定中断处理结束时的结束规则。,7.3.4 8259的编程方法,ICW1 ICW1称为:芯片控制初始化命令字,用于启动8259A中的初始化顺序。 该字写入8位的芯片控制寄存器。 写ICW1的标记为:A00,D41。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,ICW1D7D5 :在8086/8088系统中不用(000)。 D4:设置为1,指示ICW1的标志位。 D3(LTIM):设定中断请求信号触发的方式。 1:电平触发方式; 0:边沿触发方式。D2(ADI):在8086/8088系统中不起

4、作用(0)。D1(SNGL):1:单片方式,0:级联方式。D0 (IC4):1:设置ICW4,0:不设置ICW4。,7.3.4 8259的编程方法,ICW1 ICW1可完成初始化任务的前三项: (1)复位芯片。 (2)设定中断请求信号有效的形式。 (3)设定是单片,还是级联。 注意:在写入ICW1后,除完成ICW1规定的功能外,同时复位芯片,隐含有清IMR、默认中断优先级为IR0IR1IR7等的功能。,7.3.4 8259的编程方法,举例: PC/XT机设置的ICW1=13H,端口地址为20H。 MOV AL,13H OUT 20H,AL ;单片,上升沿有效,写ICW4 13H = 00010

5、011,7.3.4 8259的编程方法,ICW2 ICW2:中断类型码命令字。 该字写入8位的中断类型寄存器。 写ICW2的标记为:A0=1。 D7D3(T7T3):中断向量类型码。中断类型码的低3位由中断请求的引脚IR0IR7决定(000111)。 D2D0 :在8086/8088系统中不用(000)。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,IBM PC/XT机中由8259A管理的8级外部中断IR0IR7的中断类型码为08H0FH。 举例: 设置的ICW2=08H,端口地址为21H。 MOV AL,08H OUT 21H,AL IR3对应的中断类型码为0BH。,7.

6、3.4 8259的编程方法,ICW3 ICW3:主片/从片的初始化命令字。它只用于级联方式。 该字写入8位的主/从标志寄存器。 写ICW3的标记为:A01。 (1)对于主8259A(输入端SP#1) (2)对于从8259A(输入端SP#0),7.3.4 8259的编程方法,ICW3 (1)对于主8259A(输入端SP#1) D7D0(S7S0):当某位为1时,表示该位对应的IRi端接一从片8259A。 例如:当ICW3F0H时,则表示在IR7 、IR6、IR5、IR4引脚上接有8259A从片,而IR3、IR2、IR1、IR0引脚上未接从片。 注意:清0的位,其对应的IRi上可直接连接外设来的中

7、断请求信号端。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,ICW3(2)对于从8259A(输入端SP#0)控制字格式如图所示,7.3.4 8259的编程方法,在IBM PC/XT机中,仅用1片8259A,能提供8级中断请求。在IBM PC/AT机中用2片8259A组成级联方式,最多可以提供15级中断请求。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,ICW4 ICW4:方式控制初始化命令字。 该字写入8位的方式控制寄存器。 写ICW4控制字标记为:A0=1。 是否需要ICW4由应用决定,只有在需要特殊全嵌套方式、缓冲方式、中断自动结束方式时,才设置IC

8、W4,否则,可不设置ICW4。同时,是否需要ICW4,应在ICW1中指出。当不设置ICW4时,缺省为:非特殊全嵌套方式、非缓冲方式、非中断自动结束方式。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,ICW4 D7D5 :8088模式下为000B。D4(SFNM):中断嵌套位。 0:一般全嵌套方式。 1:特殊全嵌套方式。 一般全嵌套方式:在处理中断的过程中,只有当更高级的中断请求到来时,才能进行嵌套。 特殊全嵌套方式:在处理某一级中断时,允许响应或嵌套同级的中断请求。通常用于多个8259A级联的系统。,7.3.4 8259的编程方法,ICW4 D3(BUF):规定8259A是

9、否工作于缓冲方式。 0:非缓冲方式 1:缓冲方式。D2(M/S#):在缓冲方式下用来表示本片是主片还是从片。 0:从片 1:主片 当BUF0时则M/S#不起作用。,7.3.4 8259的编程方法,ICW4 D1(AEOI):规定8259A中断的结束方式。 0:正常中断结束。要求CPU发命令去复位ISRi。IBM PC采用该方式。 1:自动结束中断方式。在CPU响应中断请求过程中的第2个INTA脉冲上升沿,自动复位ISR中的相应位。D0(PM):规定8259A工作于哪种CPU系列。 1:工作于8086/8088系统中 0:工作于8080/8085系统中,7.3.4 8259的编程方法,注意 初始

10、化从写入ICW1开始,然后顺序写入ICW2、ICW3、ICW4。虽然ICW2、ICW3、ICW4地址相同,但顺序是固定的,因而不会发生错误。 ICW1、ICW2是必须写入的。是否写入ICW3、ICW4,分别由ICW1的SNGL和IC4位的状态决定。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,操作过程编程 初始化完成后,8259A进入响应中断的工作状态,准备接收中断请求信号。在8259A工作其间,可以通过操作命令字OCW使其以不同的方式操作。 操作过程编程主要完成以下任务: 对中断请求的屏蔽、优先级循环控制、中断结束方式、对内部控制寄存器的查询等。 8259A有三个操作命令

11、字: OCW1、OCW2、OCW3。,7.3.4 8259的编程方法,OCW1 写OCW1的标记为:A0=1。 OCW1用来写入IMR寄存器。 当某一位Mi=1时,则对应于该位的中断请求就受到屏蔽; 当某一位Mi=0时,则对应于该位的中断请求得到允许进入系统。例如:OCW1 =15H,则IR4、IR2和IR0引脚上的中断请求被屏蔽,其他引脚上的中断请求则允许进入系统。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,OCW2 OCW2用来设置中断优先级循环方式和中断结束方式的操作命令字。 写OCW2的标记为:A0=0、D3=D4=0。 OCW2具有两方面的功能: 可以用来设置8

12、259A采用优先级循环方式; 它可以组成中断结束命令。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,OCW2 R位:决定系统的中断优先级是否按自动循环方式设置。 1:采用优先级自动循环方式; 0:采用优先级非自动循环方式。 优先级自动循环方式用于多个中断源其优先级相等的场合 。 SL位:决定OCW2中的L2、L1、L0是否有效,如为1则3位都有效,否则为无效。,7.3.4 8259的编程方法,OCW2 EOI位:中断结束命令。当EOI为1时,使当前ISR中的对应位ISRi复位。 L2、L1、L0有两个功能: SL为1时,L2、L1、L0有效。 一是当OCW2为特殊的中断结束

13、命令时,L2、L1、L0将指出要清除当前ISR中的哪一位; 二是当OCW2为特殊的优先级循环方式命令时,L2、 L1、L0将指出循环开始时哪个中断的优先级最低。,7.3.4 8259的编程方法,指定最低级别,指定结束/最低级别,7.3.4 8259的编程方法,OCW3 OCW3是多功能操作命令字。 写OCW3的标记为:A0=0、D4=0、D3=1。,7.3.4 8259的编程方法,OCW3 OCW3命令字有3项功能: 设置和撤消特殊屏蔽方式; 设置中断查询方式; 设置对8259A内部寄存器的读出命令。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,OCW3 D7位:无关位,可

14、设为任意值,一般设为0。 D6位:ESMM位,即允许特殊屏蔽方式位。该位为1时SMM位才有意义。 D5位:SMM即特殊屏蔽方式位。 1:设置特殊屏蔽方式; 0:清除特殊屏蔽方式。 D4、D3位:是特征位,01B。,7.3.4 8259的编程方法,OCW3 D2位:P位。 1:该OCW3用做查询命令 0:非查询方式。 D1、D0位:RR位和RIS位。 这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。 D1D0=10时,表明紧接着要读出IRR的值; D1D0=11时,表明紧接着要读出ISR的值。,7.3.4 8259的编程方法,特殊屏蔽方式的设置与清除 ESMM

15、、SMM=11时:选择特殊屏蔽方式 ESMM、SMM=10时:清除特殊屏蔽方式 选择特殊屏蔽方式:OCW3为01101000B(68H) 清除特殊屏蔽方式:OCW3为01001000B(48H),7.3.4 8259的编程方法,查询的设置与清除 P=1时:选择查询方式 P=0时:选择非查询方式 选择查询方式:OCW3为00001100B(0CH) 选择非查询方式:OCW3为00001000B(08H),7.3.4 8259的编程方法,读8259A的状态(IMR、IRR、ISR) 1、读IMR: IN AL,21H (A0=1的端口) 2、读IRR: MOV AL,00001011B OUT 2

16、0H,AL IN AL,20H 3、读ISR: MOV AL,00001010B OUT 20H,AL IN AL,20H,7.3.4 8259的编程方法 结束,7.3.5 8259A应用举例,在IBM PC/XT机中,只用1片8259A中断控制器,用来提供8级中断请求,其中IR0优先级最高,IR7优先级最低。 它们分别用于日历时钟中断、键盘中断、保留、网络通信、异步通信中断、硬盘中断、软盘中断及打印机中断。 8259A片选地址为20H、21H。,7.3.5 8259A应用举例,7.3.5 8259A应用举例,IBM PC/XT中8259A 的使用步骤: 1、初始化 2、送中断向量入口地址 3

17、、中断子程序结束 4、中断嵌套,7.3.5 8259A应用举例,1、初始化MOV AL, 13H ;写ICW1,单片,边沿触发,要ICW4OUT 20H,ALMOV AL,8 ;写ICW2,中断类型号从8开始 OUT 21H,ALMOV AL,0DH ;写ICW4,缓冲工作方式,;8088/8086配置OUT 21H,ALMOV AL,0 ;写OCW1,允许IR0IR7全部8级;中断请求OUT 21H,AL,7.3.5 8259A应用举例,2、送中断向量入口地址 例如,异步通信中断(COM1)IR4。 中断向量类型码为8+4=12(0CH)。 中断入口地址的偏移量(IP值)与段基址(CS)在入

18、口地址表中的存放地址为: 124=48(30H),49(31H),50(32H),51(33H)。 其中30H、31H存放指令指针IP;32H,33H存放指令段码CS。,7.3.5 8259A应用举例,3、中断子程序结束 由于采用一般中断结束方式,因此,在中断子程序结束前必须发EOI命令和IRET命令。 MOV AL,20H;写OCW2命令,使ISR相应位;复位(即发EOI命令) OUT 20H,AL IRET;开放中断允许,并从中断返回 ,7.3.5 8259A应用举例,4、中断嵌套 为了使中断嵌套,即在中断响应过程中,允许比本中断优先级高的中断进入,只要在进入中断处理程序后,执行开中断指令STI即可达到此目的。,7.3.5 8259A应用举例,7.3.5 8259A应用举例 7.3 可编程中断控制器8259 结束,表5-5 IBM PC/AT机中断源和中断类型号,7.3.5 8259A应用举例,7.3.5 8259A应用举例 7.3 可编程中断控制器8259 结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑环境 > 环境科学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报