输入输出接口2011final.ppt_第1页
输入输出接口2011final.ppt_第2页
输入输出接口2011final.ppt_第3页
输入输出接口2011final.ppt_第4页
输入输出接口2011final.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第8章 输入输出接口,8.4 可编程中断控制器8259A,教学重点 8259A的中断工作过程和工作方式 8259A的初始化及操作命令的编写,8259A中断控制器概述,PIC,Programmable Interrupt Controller 可用于管理Intel 8080/8085、8086/8088、80286、386、486等的可屏蔽中断 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 并对多个中断源实现优先级控制 可编程设置不同工作方式 根据中断源向80x86提供不同中断类型码,一、 8259A的内部结构和引脚,1. 中断控制,中断请求寄存器IRR 保存8条外界中断请求信号IR0IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许,2. 8259A的引脚及其与处理器的接口,8259A在PC/XT中,3. 中断级连,8259级联工作示意图,4、8259A的工作方式,设置优先权方式,普通全嵌套方式 8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套 特殊全嵌套方式,固定优先权,D.,主8259A,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,一般嵌套方式: 从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应,特殊嵌套方式: 因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁),C.,假定IR3发生中断,并获得服务,一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。,B.,特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。,A.,INT,E.,从8259A,INT,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,普通全嵌套方式与特殊全嵌套方式的区别,去CPU,优先权循环(普通和特殊),普通:每当任何一级中断被处理完,它的优先级别就被改变为最低级,而将最高优先级赋给原来比它低一级的中断请求。,特殊优先权循环方式,结束中断处理方式,什么是8259A的中断结束?,8259A利用中断服务寄存器ISR判断: 某位为1,表示正在进行中断服务; 该位为0,就是该中断结束服务。 这里说明如何使ISR某位为0, 不反映CPU的工作状态。,结束中断处理方式,自动中断结束方式 普通中断结束方式 配合全嵌套优先权方式使用 当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位 特殊中断结束方式 配合循环优先权方式使用 CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位,中断触发方式,中断请求信号IR的两种触发方式 边沿触发方式上升沿 电平触发方式高电平,二、 8259A的编程,初始化编程 8259A开始工作前,必须进行初始化编程 给8259A写入初始化命令字ICW 中断操作编程 在8259A工作期间 可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作 还可以读取8259A的信息,以便了解他的工作状态,1. 初始化命令字ICW (Initialization Command Word),初始化命令字ICW最多有4个 8259A在开始工作前必须写入 必须按照ICW1ICW4顺序写入 ICW1和ICW2是必须送的 ICW3和ICW4由工作方式决定,8259A芯片的初始化流程,1)ICW1 初始化字(A0=0),表示可以任意 为1为0都可以(建议为0),1只能为1,作为标志,中断触发方式: LTIM1,电平触发方式 LTIM0,边沿触发方式,规定单片或级连方式: SNGL1,单片方式 SNGL0,级连方式,是否写入ICW4 IC41,要写入ICW4 IC40,不写入ICW4,即ICW4规定的位全为0,2)ICW2 中断类型号基值(A0=1),设置中断类型号基址 T7T3为中断类型号的高5位,低3位为0 (0号中断的类型号) 实际类型号:低3位由8259A自动确定: IR0 IR7分别对应000 111,3)ICW3 级连控制字 (A0=1),级连命令字 主片8259A:Si1对应IRi接有从片;否则IRi没有连接从片 从片8259A:ID0ID2编码说明从片INT引脚接到主片哪个IR引脚,4)ICW4 中断结束方式字 (A0=1),嵌套方式: 特殊全嵌套方式(SFNM1) 普通全嵌套方式(SFNM0),ICW4 中断结束方式字 (A0=1),嵌套方式: 特殊全嵌套方式(SFNM1) 普通全嵌套方式(SFNM0),数据线的缓冲方式: 缓冲方式(BUF1) 非缓冲方式(BUF0),主片/从片选择(非缓冲方式时无效): 主片(M/S=1) 从片(M/S=0),中断结束方式: 自动中断结束(AEOI1) 非自动中断结束(AEOI0),微处理器类型: 16位80x86(PM1) 8位8080/8085(PM0),操作命令字OCW ( Operation Command Word),8259A工作期间,可以随时接受操作命令字OCW OCW共有3个:OCW1OCW3 写入时没有顺序要求,需要哪个OCW就写入那个OCW,1)OCW1 中断屏蔽字(A0=1),屏蔽命令字 内容写入中断屏蔽寄存器IMR DiMi对应IRi,为1禁止IRi中断; 为0允许IRi中断。各位互相独立。 允许读出。,; 设8259a的地址是20H、21H MOV AL, 0FEH ;允许IR0,其余禁止 OUT 21H, AL ;写入IMR,1)OCW1 中断屏蔽字(A0=1),; 设8259a的地址是20H、21H IN Al, 21h ;读其屏蔽字IMR AND AL, 0FEH ;允许IR0,其余不变 OUT 21H, AL ;写入IMR,2) OCW2 中断结束和优先级循环 (A0=0),R、SL和EOI配合使用 产生中断结束EOI命令和改变优先权顺序,L2L0的3位编码 指定IR引脚,表 OCW2的各种格式及应用,2) OCW2 中断结束和优先级循环 (A0=0),;给地址是A0H的8259a发普通EOI命令 MOV AL, 20h OUT 0A0H, AL,0,0,1,0,0,0,3)OCW3 屏蔽方式和读出控制字(A0=0),ESMM、SMM 设置中断屏蔽方式(普通或特殊),P、RR和RIS 规定随后读取的状态字含义(IRRISR查询字),8259A内部寄存器的寻址方法,需要CS、A0、RD、WR和D4、D3的配合 内部寄存器的访问方法如下表:,三、8259A编程举例,例1:按以下要求初始化8259A: 接口地址为20H和21H; 中断为上升沿触发;单片8259A;不写ICW4; 与IR0-IR3对应的中断向量码为08H-0BH; IR4-IR7不使用。 根据要求,各初始化参数及工作参数如下: ICW1 = 00010010 = 12H ICW2 = 08H 中断向量码 OCW1 = 11110000 = 0F0H 中断屏蔽字,MOV AL,12H ;上升沿触发,单片,不写ICW4 OUT 20H ,AL ;A0=0,写ICW1 MOV AL,08H ;A0=1,写ICW2 OUT 21H ,AL MOV AL,0F0H ;OCW1:屏蔽IR4-IR7 OUT 21H ,AL ;A0=1,写OCW1,初始化程序如下:,PC机中使用单片8259A,定义地址为:20H、21H,8259A的工作方式设置如下: (1) 固定优先权级别:IR0最高,IR7最低 ; (2) 8个中断类型码分别是 08H 0FH; (3) 中断请求信号采用边沿触发方式; (4) 中断服务结束时,采用普通中断结束命令(EOI); (5) 采用一般屏蔽方式。,例2:初始化程序举例,初始化命令字: ICW1: 0 0 0 1 0 0 1 1 B 13H ICW2: 0 0 0 0 1 0 0 0 B 08H ICW4: 0 0 0 0 0 0 0 1 B 01H,程序:MOV AL,13H OUT 20H,AL MOV AL, 08H OUT 21H, AL MOV AL, 01H OUT 21H, AL,四、 IBM - PC AT微机系统的外中断,中断控制器的应用,主片I/O地址:20H、21H;从片I/O地址:A0H、A1H 工作方式 上升沿为中断请求IRQ有效信号 IRQ0IRQ7和IRQ8IRQ15中断向量号依次为08H0FH,70H77H 普通全嵌套优先权方式(高低):IRQ0IRQ2,IRQ8IRQ15,IRQ3IRQ7 普通中断结束EOI方式:需要发送普通EOI命令 普通屏蔽方式,通过写入IMR允许中断,例题8-5可屏蔽中断服务程序(P213),可屏蔽中断服务程序随时进行中断 发送中断结束命令 一般只能采用存储单元传递参数 不要使用DOS系统功能调用 中断服务程序尽量短小 主程序需要修改中断向量 控制微处理器的中断允许标志 设置中断屏蔽寄存器,中断服务程序的编程,主程序编程,中断程序设计,源程序,;数据段 counter db 0 ;中断次数记录单元 ;代码段(主程序) mov ax, 3508h ;获取原中断向量 int 21h push es ;保存原中断向量 push bx cli ;关中断 push ds ;设置新中断向量 mov ax, seg new08h mov ds, ax mov dx, offset new08h,mov ax, 2508h int 21h pop ds,代码段(主程序),in al, 21h ;读出IMR push ax ;保存原IMR内容 and al, 0feh ;允许IRQ0,其他不变 out 21h, al ;设置新IMR内容 mov counter, 0 ;设置中断次数初值 sti ;开中断 ;主程序完成设置,可以处理其他事务 start1: cmp counter, 10 ; 主程序仅循环等待中断 jb start1 ;中断10次退出,代码段(主程序),cli ;关中断 pop ax ;恢复IMR out 21h, al pop dx ;恢复原中断向量 pop ds mov ax, 2508h int 21h sti ;开中断 .exit,

温馨提示

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

评论

0/150

提交评论