微型计算机中断系统.ppt_第1页
微型计算机中断系统.ppt_第2页
微型计算机中断系统.ppt_第3页
微型计算机中断系统.ppt_第4页
微型计算机中断系统.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

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的编程方法,当计算机刚启动时,用初始化程序设定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)设定是单片,还是级联。 (4)设定中断类型号。 (5)设定优先排队规则。 (6)设定中断处理结束时的结束规则。,7.3.4 8259的编程方法,ICW1 ICW1称为:芯片控制初始化命令字,用于启动8259A中的初始化顺序。 该字写入8位的芯片控制寄存器。 写ICW1的标记为:A00,D41。,7.3.4 8259的编程方法,7.3.4 8259的编程方法,ICW1 D7D5 :在8086/8088系统中不用(000)。 D4:设置为1,指示ICW1的标志位。 D3(LTIM):设定中断请求信号触发的方式。 1:电平触发方式; 0:边沿触发方式。 D2(ADI):在8086/8088系统中不起作用(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 = 00010011,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.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.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由应用决定,只有在需要特殊全嵌套方式、缓冲方式、中断自动结束方式时,才设置ICW4,否则,可不设置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是否工作于缓冲方式。 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的编程方法,注意 初始化从写入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有三个操作命令字: 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具有两方面的功能: 可以用来设置8259A采用优先级循环方式; 它可以组成中断结束命令。,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为特殊的中断结束命令时,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位:无关位,可设为任意值,一般设为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、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 20H,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、中断子程序结束 4、中断嵌套,7.3.5 8259A应用举例,1、初始化 MOV AL, 13H ;写ICW1,单片,边沿触发,要ICW4 OUT 20H,AL MOV AL,8 ;写ICW2,中断类型号从8开始 OUT 21H,AL MOV AL,0DH ;写ICW4,缓冲工作方式, ;8088/8086配置 OUT 21H,AL MOV AL,0 ;写OCW1,允许IR0IR7全部8级 ;中断请求 OUT 21H,AL,7.3.5 8259A应用举例,2、送中断向量入口地址 例如,异步通信中断(COM1)IR4。 中断向量类型码为8+4=12(0CH)。 中断入口地址的偏移量(IP值)与段基址(CS)在入口地址表中的存放地址为: 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 ;写

温馨提示

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

评论

0/150

提交评论