微机原理PPT教学课件-第6章 微机中断系统.ppt_第1页
微机原理PPT教学课件-第6章 微机中断系统.ppt_第2页
微机原理PPT教学课件-第6章 微机中断系统.ppt_第3页
微机原理PPT教学课件-第6章 微机中断系统.ppt_第4页
微机原理PPT教学课件-第6章 微机中断系统.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第6章 微机中断系统,6.1 中断概述 6.2 中断的处理过程 6.3 80x86中断结构 6.4 可编程中断控制器8259a,。中 断: cpu停止运行程序,转去执行请求要服务的程序; 。中断源: 能引起中断的事件,称为中断源; 。中断源种类:外部(硬件)、内部(软件) -外部:由外部设备发出的中断请求(nmi、intr) ; -软件:由程序预先安排的中断指令引起(int n),或因cpu运算产生 的错误(除法、溢出)引起。,6.1 中断概述,6.2 中断的处理过程,1)中断请求 cpu在每条指令最后一个t周期检查intr引脚,若信号有且 满足中断响应条件(if=1),cpu响应中断。,2)中断判优 当有多个中断请求时,cpu识别其优先权并按优先权处理, 同时实现中断嵌套功能。,软件查询方式,硬件查询方式,菊花链法,中断判优逻辑,中断判优逻辑,可编程中断控制器,3)中断响应(三个过程) 。关中断:cpu向外设发中断响应信号(inta),同时至if0; 。保护现场:断点地址及程序状态字psw值入栈,cs和ip值入栈; 形成中断入口地址,转向中断服务子程序。 。恢复现场:中断程序结束,用出栈指令恢复保存寄存器内容; 执行中断返回指令iret,从堆栈中弹出ip、cs和psw。,1)中断源类型,6.3 80x86中断结构,中断向量及存放地点 。一个中断向量由四个字节组成; - 2个高地址字节,存放中断服务程序的代码段的段值; - 2个低地址字节,存放中断服务程序的偏移地址; 。8086系统有256个类型中断源,每一个类型源对应一个 中断向量,中断向量表存放段地址:00000h03fffh; 。中断向量地址=中断类型号4,2)8086中断向量表,开中断;即if=1,中断操作过程示意图,3)8086中断响应和处理过程,4) 8086中断响应时序,中断指令 。int n (软件中断指令) 如: int 20h 。iret (中断返回指令) - 执行后,先从堆栈弹出断点送ip、cs,后弹程序状态字psw; 标志位操作指令 。cli (中断标志位清0) - 使psw中if位置0,禁止响应外界中断请求(关中断); 。sti (中断标志位置1) - 使psw中if位置1,允许响应外界中断请求(开中断)。,5)8086中断指令系统,6.4 可编程中断控制器8259a,1)8259a的特点及功能: 28个引脚,双列直插,工作电压+5v; 具有中断源识别、优先权排队、中断屏蔽、中断 向量提供等功能; 一片8259a可管理8级中断(优先权控制),通过9 片级联可管理64级中断源;,2)8259a内部结构和引脚, 初始化命令字(icw)设定8259a的工作方式; 操作命令字(ocw)完成动态控制cpu处理中断的过程。,3)8259的编程,8259的编程结构,icw1:芯片控制初始化命令字(必须写入偶地址端口),1:电平触发(高电平) 0:边沿触发(上升沿),1:单级使用 0:级联使用,1:需要设置icw4 0:不需要设置icw4,icw4 方式控制初始化,处始化命令字icw的设置,例:icw1 equ 13h ;13h=00010011b; mov al,icw1 out 20h,al ;单片8259,上升沿触发,要求设置icw4;,对应ir0-ir7中响应 哪级中断(000-111),注:8259中ir0端对应的中断类型号为中断类型号的基 值,它是可以被8整除的正整数。,icw2:设置中断类型号初始化命令字(须写入奇地址端口),例:对于主片 icw3 = f0h (11110000) 上述特征表示: 。ir7,ir6,ir5,ir4 接有从片 。ir3,ir2,ir1,ir0 没接从片,icw3:标识主/从片初始化命令字(须写入奇地址端口),对于从片id2-id0 表示从 片接在主片的哪个中断请求输入端上, 如 id2-id0 = 011,则表示从片接在主8259的ir3 端上,icw4:方式控制初始化命令字(须写入奇地址端口),说明: icw1的ic4=1时,要求预置icw4,8086/8088系统必须预置。,8259初始化流程,icw1-初始化命令字 icw2-设置中断类型号 icw3-主/从初始化 icw4-中断方式控制字,操作命令字ocw设置,ocw1:中断屏蔽操作命令字(写入奇地址端口),例: 若 ocw1=06h (00000110b); 则表示为: ir1,ir2 引腿上的中断请求受到屏蔽。,操作命令字的设置,是通过对三个操作命令寄存器ocw1、ocw2、ocw3中的个别位的预置,来完成动态控制cpu处理中断的过程。,ocw2:优先权循环和中断结束方式命令字(偶地址写入),eoi:中断结束命令 mov al,20h out 20h,al,eoi(end of interrupt),ocw2的格式,功能: 设定特殊屏蔽方式; 设置对8259寄存器的读出; 设置中断查询工作方式。,0x: 无效 10: 特殊屏蔽方式复位 11: 特殊屏蔽方式置位,1:查询8259状态 0:不查询,0x: 无效 10:读irr 11:读isr, ocw3:特殊屏蔽方式和查询方式操作字(写入偶地址端口),单片8259可管8级外部中断,多片级联最多可管64级,故 其工作方式就有中断优先权管理、中断请求引入管理、屏蔽 中断源管理、中断结束管理等多种方式。,优先级管理方式 管理方式分固定优先权方式和自动循环优先权方式两种。,4)8259a的工作方式,。ocw3命令字的查询命令格式,中断请求引入管理方式, 8259工作方式,屏蔽中断源管理方式,cpu对于8259a提出的中断请求,均可加以屏蔽控制,屏蔽 控制通过普通屏蔽方式(设置ocw1)和特殊屏蔽方式(设置ocw3) 两种方式进行,是对imr的某几位的操作加以实现。,。ocw1:中断屏蔽操作命令字,中断结束处理方式,a.自动结束方式 仅适用单片8259,系统一旦响应中断,cpu在发第二个inta脉 冲时,就会使isr中相应位复位。 b.一般中断结束方式 适用于全嵌套情况,当cpu向8259a发该方式命令时,8259a才 会使isr中优先级别最高的位复位。 c.特殊中断结束方式 在特殊全嵌套模式下,cpu无法确定当前所处理的是哪级中断, 所以需采用特殊中断结束方式。,。中断结束处理是指及时清除位存放于isr中的标志位的过程。,ocw2的格式,5)8259的级联,。cas2cas0 双向级联信号,主片为输出, 从片为输入,与sp/en配合实现级联; 。sp/en 编程/双向使能缓冲; 主片接+5v,从片接地。,8259主从式的级联,8259主从式的级联,8259主从式的级联,例 某系统中两片8259a采用级联方式组成中断系统,从片的 int端连在主片8259a的ir3端。若当前8259a主片由ir1、ir5 端引入两个中断请求,中断类型号为31h、35h,中断服务程序 的段基址为1000h,偏移地址分别为2000h、3000h。8259a从片 由ir4、ir5端引入两个中断请求,类型号是44h、45h,中断服 务程序基址为2000h,偏移地址为3600h、4500h,请编写初始化 程序和画出连接图。,中断向量形成:将4个中断入口地址写入中断向量表。 mov ax,1000h mov ds,ax mov dx,2000h mov al,31h ;中断类型号31h mov ah,25h int 21h mov dx,3000h ;中断类型号35h mov al,35h int 21h mov ax,2000h mov ds,ax mov dx,3600h mov al,44h ;中断类型号44h mov ah,25h int 21h mov dx,4500h ;中断类型号45h mov al,45h int 21h,mov ax, 00h mov ds,ax mov ax,2000h mov 00c4h,ax mov ax,1000h mov 00c6h,ax mov ax,3000h mov 00d4h,ax mov ax,1000h mov 00d6h,ax mov ax,3600h mov 0110h,ax mov ax,2000h mov 0112h,ax mov ax,4500h mov 0114h,ax mov ax,2000h mov 0116h,ax,或,主片8259a初始化编程:8259a主片端口地址为ffc8h和ffc9h。 mov al,11h ;icw1,主片8259a级联使用,边沿触发 mov dx,0ffc8h out dx,al mov al,30h ;icw2,中断类型号30h inc dx out dx,al mov al,08h ;icw3,ir3端接从片8259a out dx,al mov al,11h ;icw4,特殊全嵌套方式,非缓冲方式 out dx,al mov al,0d5h ;ocw1,允许ir1、ir3、ir5中断 out dx,al,从片8259a初始化编程: 从片8259a的端口地址为ffcah和ffcbh。 mov al,11h ;icw1,级联使用,边沿触发 mov dx,0ffcah out dx,al mov al,40h ;icw2,中断类型号40h inc dx out dx,al mov al,03h ;icw3,从片接在主片ir3端 out dx,al mov al,01h ;icw4,完全全嵌套方式,非缓冲方式 out dx,al mov al,0cfh ;ocw1,允许ir4、ir5中断 out dx,al,例 图中采用两个计数器串联的方法实现定时控制。一旦定时时间到,out1信号由高变低,经反相后送ibm-pc机的irq2信号端向8086-cpu申请中断。irq2的中断类型号为0ah(28h2bh)。inter为中断子程序的首地址。编制8253及中断向量初始化程序段。,中断子程: inter proc far iret inter endp,;8253初始化 cli ;关中断 mov dx,236h mov al,00010110b ;设置0#计数器工作方式3 out dx,al mov dx,230h mov al,00h ;初值为最大 out dx,al mov dx,236h mov al,01010110b ;设置1#计数器工作方式3 out dx,al mov dx,232h mov al,56h ;初值为56h out dx,al,;中断向量初始化 xor ax,ax mov es,ax mov di,28h ;0ah*4=28h mov ax,offset inter mov es:di,ax add di,2 mov ax,seg inter mov es:di,ax sti ;开中断,设:8253地址为230h236h,0计数器值取最大值(0000h),1计数初值为56h,例 8255a的端口a经过反相驱动器连接一共阴极的七段发光二极管显示器;端口b是中断方式的输入口。设8255a的中断类型码是30h。试画出电路, (中断接8259)编写8255a和中断初始化程序,并编写中断服务程序,用来实现,当cpu从端口b输入的8位码是偶数个1时,led上显示e,否则显示0。(8255口地址为60h63h ,8259a为一片,口地址为20h、21h)。,十进制数与 十六进制数 对应表,8255a、8259a和中断向量表的初始化 cli mov al,10000110b;a口方式0输出,b口方式1输入 out 63h,al mov ax,0;设中断向量 mov ds,ax mov ax,offset inter mov 00c0h,ax mov ax,seg inter mov 00c2h,ax mov al,00000101b;pc2置1,允许8255a中断 out 63h,al mov al,00011011b ;8259a初始化 out 20h,al mov

温馨提示

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

评论

0/150

提交评论