微机原理与接口技术(第3版)课件 第8章 中断技术与可编程中断控制器8259A-part1_第1页
微机原理与接口技术(第3版)课件 第8章 中断技术与可编程中断控制器8259A-part1_第2页
微机原理与接口技术(第3版)课件 第8章 中断技术与可编程中断控制器8259A-part1_第3页
微机原理与接口技术(第3版)课件 第8章 中断技术与可编程中断控制器8259A-part1_第4页
微机原理与接口技术(第3版)课件 第8章 中断技术与可编程中断控制器8259A-part1_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术第8章中断技术与可编程中断控制器8259A目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用38.1中断的基本概念及其应用问题导入4案例视频1)采用何种数据传输方式?思考:无条件数据传输查询式数据传输中断式数据传输DMA数据传输只有一个输出端口,没有输入端口提供按键状态查询8086的非屏蔽中断引脚P25(7)5案例视频1)采用何种数据传输方式?思考:无条件数据传输查询式数据传输中断式数据传输DMA数据传输只有一个输出端口,没有输入端口提供按键状态查询8086的非屏蔽中断引脚P20(7)8.1中断的基本概念及其应用问题导入6案例视频思考:2)灯的亮灭变化和哪条语句的执行有关?8.1中断的基本概念及其应用问题导入7看不懂?端口定义思考:2)灯的亮灭变化和哪条语句的执行有关?8.1中断的基本概念及其应用问题导入800H00000000端口OUT373思考:2)灯的亮灭变化和哪条语句的执行有关?向端口送出00H,点亮8个小灯8.1中断的基本概念及其应用问题导入9思考:2)灯的亮灭变化和哪条语句的执行有关?NOTAL8.1中断的基本概念及其应用问题导入10思考:3)什么时候会执行指令“NOTAL”呢?“死循环指令”8.1中断的基本概念及其应用问题导入11思考:3)什么时候会执行指令“NOTAL”呢?“死循环指令”while(1);按键按下执行“NOTAL”指令8.1中断的基本概念及其应用问题导入12思考:“死循环指令”4)为什么按键按下会使程序的执行发生跳转呢?8.1中断的基本概念及其应用问题导入13主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用中断基本概念14中断源断点中断服务程序中断服务子程序中断请求中断响应中断返回断点保护现场保护现场恢复主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序相关概念见教材p1788.1中断的基本概念及其应用中断基本概念15主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序主程序8.1中断的基本概念及其应用中断基本概念16主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序断点在主程序的任意位置断点大概率在此中断服务程序8.1中断的基本概念及其应用17主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用8.1中断的基本概念及其应用中断典型应用18采用中断方式管理I/O设备实时处理故障处理系统调度人机对话多机通信中断是CPU与外设交换信息的一种方式,是CPU处理随机事件和外部请求的主要手段。按键的按压就是一个随机事件目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例20主要内容中断系统的基本功能中断优先级8.2中断系统的功能和中断优先级21中断系统的功能中断管理系统至少应具有以下功能:中断源识别

实现中断优先级排队能够正确处理中断的嵌套问题接收中断请求

主程序中断请求1保护断点保护主程序现场恢复主程序现场从断点处继续执行主程序处理中断1中断请求2保护现场1处理中断2恢复现场2返回中断1服务程序中断嵌套8.2中断系统的功能和中断优先级22中断系统的功能中断管理系统至少应具有以下功能:中断源识别

实现中断优先级排队能够正确处理中断的嵌套问题接收中断请求

依靠优先级判优逻辑确保CPU能按优先级响应中断请求软件判优硬件判优中断处理与返回8.2中断系统的功能和中断优先级23主要内容中断系统的基本功能中断优先级8.2中断系统的功能和中断优先级24软件查询法中断源1#4#5#8#82H接数据总线AB去CPU的中断请求输入端INTR地址译码器74LS2441Y11A12Y41A42A11G2G2A4RDM/IOD0D71、各中断源申请通过或门组合后与INTR连接。2、各中断源情况通过缓冲器从DB输入。INAL,82HP20(5)接收中断请求

识别中断源

8.2中断系统的功能和中断优先级25软件查询法查询程序的次序,决定了外设优先级的高低,先测试的中断源优先级最高。保护现场1#有请求吗?2#有请求吗?3#有请求吗?现场恢复中断返回为1#外设服务为2#外设服务为3#外设服务NNNYYY右图中1#,2#,3#外设的优先级排序如何?1#>2#>3#越先被查询的优先级越高优先级排队固定优先级8.2中断系统的功能和中断优先级26PINTR:PUSHAX ;现场保护 PUSHBX IN AL,82H ;从端口读入中断源请求的状态信号 MOV BL,AL ;保存在BL中FAN1: ROR BL,1 ;ROR指令把BL的最低位移入CF JC ISP1 ;CF=1表示1#中断源有中断请求FAN2:RORBL,1 JC ISP2 ;CF=1表示2#中断源有中断请求FAN3:ROR BL,1 JC ISP3 ;CF=1表示3#中断源有中断请求

FAN: POPBX ;现场恢复 POPAX

IRET ;中断返回ISP1: ;1#中断源的处理程序 JMPFANISP2: ;2#中断源的处理程序 JMPFANISP3: ;3#中断源的处理程序 JMPFAN

固定优先级27硬件判优法0#设备INTA0INTR01#设备INTA1INTR12#设备INTA2INTR2CPUINTAINTR0314256P21(1)P20(5)串行优先级排队模式8.2中断系统的功能和中断优先级28硬件判优法串行优先级排队模式0#设备INTA0INTR01#设备INTA1INTR12#设备INTA2INTR2CPUINTAINTR03142560110001111111接收中断请求

001000中断请求被响应11识别中断源

图中0#,1#,2#外设的优先级排序如何?离CPU越近优先级越高1封锁了后继设备18.2中断系统的功能和中断优先级29硬件判优法并行优先级排队模式优点:响应速度快缺点:扩展性不灵活。高低~74LS138Y0Y1Y2Y3Y4Y5Y6Y7G2AG2BG1CBA74LS148I7I6I5I4I3I2I1I0Y2Y1Y0STYEXYSINTR0INTR7来自CPU的INTA5VINTA0INTA7~10xxxxxx001INTA1INTR18.2中断系统的功能和中断优先级30专用硬件法专用硬件法用可编程中断控制器芯片来管理中断。通过编程可以设置或改变芯片的工作方式。使用灵活。CPUD0~D7INTAINTR中断控制器D0~D7IR0IR1IR7INTR0

设备0INTR1

设备1INTR7

设备7INTRINTA8.4节8.2中断系统的功能和中断优先级目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例32主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应中断分类33CPU中断逻辑除法错中断0型单步中断1型断点中断3型溢出中断4型INTn指令软件中断(内部中断)硬件中断(外部中断)NMI非屏蔽中断(2型)中断控制系统可屏蔽中断INTRP18⑨DEBUG的T命令DEBUG的G命令执行了软中断指令或由CPU本身引起的中断不受IF影响P20(7)P18⑧“1”IF=1时才可能被响应P20(5)关中断指令:CLI(IF=0)开中断指令:STI(IF=1)P58(表3.6-1)8.38086/8088的中断操作与响应中断分类34内部中断不需要外部硬件支持,不受IF控制在上述内部中断中,除单步中断外,其余都不可屏蔽。所有类型(内、外)的中断在其处理过程中,CPU会自动地把状态标志压入堆栈,然后清除TF和IF。8086/8088规定这些中断的优先级次序(高到低)为:内部中断、NMI、INTR,优先级最低的是单步中断。受

TF

位控制P18⑨在中断响应过程中:禁止单步中断和可屏蔽中断8.38086/8088的中断操作与响应35主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表36中断类型码8086/8088为每个中断源分配了一个0~255范围内的中断类型码。其中部分为专用中断,40H~FFH号中断原则上可以由用户程序安排使用。中断类型码中断功能中断类型码中断功能00H除法错中断04H溢出中断01H单步中断05H打印中断02HNMI中断08H电子钟定时中断03H断点中断09H键盘中断…………以上几个应该熟悉8.38086/8088的中断操作与响应37中断向量

中断服务程序的入口地址称为一个中断向量,由段基址CS和段内偏移量IP两部分组成。4个字节中断服务程序要执行的第1条指令的地址中断向量表在8086/8088中,所有中断服务程序的入口地址(中断向量)集中放在内存的最低1K区域(00000H~003FFH),构成一个中断向量表

8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表38中断向量表位于内存0段的0000H~03FFH的存储区内。8086/8088的中断向量表由三个部分组成:5个专用中断(0#~4#)27个系统使用或保留中断(5#~31#)224个用户定义中断(32#~255#)每个中断向量占4个内存单元前两个单元存放中断向量的偏移地址(IP)后两个单元存放中断向量的段地址(CS)物理地址的范围是多少?共256个8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表39类型0类型1类型2类型3类型4类型5类型63IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)类型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断服务程序入口地址表(中断向量表)中断服务程序入口地址在表中的起始地址=4×中断类型码中断向量8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表这几个应该熟悉40类型0类型1类型2类型3类型4类型5类型63IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)类型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断服务程序入口地址表(中断向量表)中断服务程序入口地址在表中的起始地址=4×中断类型码中断向量地址8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表41中断向量的查找设某个中断源的中断类型码为n。中断向量在中断向量表的起始位置:n×4中断向量位于中断向量表:n×4~n×4+3这四个单元内CPU会自动根据n值找到这个位置取出中断向量,依次装入IP和CS,从而转入相应的中断服务程序。8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表42某中断的中断类型号为68H,其中断过程为:(1)计算存放中断服务程序入口地址的地址=68H×4=1A0H;(2)取中断入口地址的段内偏移量装入IP,IP=2050H

,段码装入CS,CS=A000H;(3)转向中断服务程序;(4)中断返回502000A0001A0H001A2H001A4H存放地址=68H×4=1A0HIP=2050

CS=A000STIPUSHDSIRET中断服务程序A000H:2050HINT68HMOVAX,0①②③④中断类型号→中断向量表地址→中断服务程序入口地址中断向量表注意与RET区别8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表根据下面所提供的某80x86微机内存中的数据,判断INT11H

中断服务程序的入口地址是

。A.F000:F84DB.A019:8ACCC.00F0:4DF8D.4DF8:00F0

中断向量地址=中断类型码×4=11H×4=0044H0000:0040B3188ACC4DF800F0-41F800F0C5188ACC0000:005039E700F0A0198ACC-2EE800F0D2EF00F0IPCS注意低字节在低地址,高字节在高地址(小尾顺序)中断类型号→中断向量表地址→中断服务程序入口地址分析:8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表类型码为________的中断所对应的中断向量存放在0000H:0040H开始的4个连续单元中,若这4个单元的内容分别为_________________,则相应的中断服务程序入口地址为5060H:7080H。中断向量表起始地址=中断类型码×4中断类型码=0040H/4=10H中断向量表80H70H60H50H10H×4=40H10H×4+1=41H10H×4+2=42H10H×4+3=43H8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表10H80H70H60H50H要掌握初始化方法,自己会编写初始化程序。由BIOS提供的中断服务,其中断向量是在系统加电后由BIOS负责初始化。由DOS提供的中断服务,其中断向量是在启动DOS后由DOS负责初始化。用户自己开发的中断服务程序,其中断向量由用户自己进行向量表的初始化。将中断服务程序入口地址写入中断向量表的相应位置8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表的初始化46例7.3-1设某中断类型号为72H的用户程序的入口地址为USEINT,请初始化向量表。中断向量起始地址=72H×4=1C8HMOVAX,0MOVES,AX ;中断向量表位于内存0段MOVBX,01C8H ;中断向量的地址送BXMOVAX,OFFSETUSEINT;中断服务程序的入口偏移地址送AXMOVES:[BX],AX ;中断服务程序的入口偏移地址写入中断向量表INCBXINCBXMOVAX,SEGUSEINT ;中断服务程序的入口段地址送AXMOVES:[BX],AX ;中断服务程序的入口段地址写入中断向量表中断服务程序的过程名MOVAX,SEGUSEINTMOVES:[BX+2],AX直接装入法

为什么要用ES?8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表为了方便中断向量的读出和写入,DOS系统为此设计了两个子功能供用户程序调用。●

从中断向量表读取中断向量:“INT21H”的35H号子功能入口参数:AL=中断类型号;出口参数:ES:BX=中断向量●

把中断向量写入中断向量表:“INT

21H”的25H号子功能入口参数:AL=中断类型号;DS:DX=要写入的中断向量出口参数:无8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表的初始化DOS系统调用法例7.3-2某用户设计了一个“定时中断服务程序”,其过程名为TIMER,取代系统原先的1CH型服务程序。这种情况下,用户要先对原有中断向量进行读出并保护以便恢复,然后才能设置新的中断向量。READ PROC MOV AL,1CH

MOV AH,35H INT 21H MOV WORDPTROLD1CHXL,BX MOV WORDPTROLD1CHXL+2,ES RETREAD ENDP事先定义的变量中断类型名DOS系统功能号出口参数:中断向量的IP部分出口参数:中断向量的CS部分8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表WRITE PROC PUSH DS ;TIMER服务程序入口地址的段基址送AX MOV AX,CS ;(设TIMER的入口段基址与WRITE的相同)

MOV DS,AX

MOV DX,OFFSETTIMER ;TIMER服务程序入口地址的偏移量送DX MOV AL,1CH

MOV AH,25H

INT 21H POP DS RETWRITE ENDP如果不相同,则MOVAX,SEGTIMER入口参数:中断向量的CS部分入口参数:中断向量的IP部分入口参数:中断类型号DOS系统功能号8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表初始化在Proteus环境下能不能使用DOS系统调用法初始化中断向量表?8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表51主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应52主要内容8.38086/8088的中断操作与响应中断源的优先级排序硬件中断的响应过程和中断服务软件中断的响应过程和中断服务231中断源的优先级排序53取指令执行当前指令执行完?软件中断?NMI?INTR?TF=1?IF=1?取走中断类型码FR压栈TF→TEMPIF=0,TF=0CS、IP入栈中断向量表地址=类型码×4中断向量表地址取1字→IP中断向量表地址+2取1字→CSNYNNNYYYYNY各类中断源的优先级排序(响应次序)如何?见教材p1860型、3型、4型等保护断点8.38086/8088的中断操作与响应中断源的优先级排序54下面优先级最高的是

。A.NMI中断

B.INTR中断C.单步中断D.断点中断属于内部(软件)中断3型8086各类中断响应的顺序是:

软件中断→NMI端中断→INTR端中断→单步中断8.38086/8088的中断操作与响应55主要内容8.38086/8088的中断操作与响应中断源的优先级排序硬件中断的响应过程和中断服务软件中断的响应过程和中断服务231硬件中断的响应过程和中断服务56硬件中断指的是NMI引脚引入的非屏蔽中断

INTR引脚引入的可屏蔽中断CPU响应条件执行完现行指令CPU开中断(IF=1)执行完现行指令8.38086/8088的中断操作与响应硬件中断的响应过程57A.当前时钟周期

B.当前总线周期C.当前指令周期D.下一个指令周期当8086CPU的INTR=“1”,且中断允许标志IF=“1”时,则CPU完成

后,响应该中断请求,进行中断处理可屏蔽中断响应的两个条件1、CPU开中断(IF=1)2、执行完现行指令

8.38086/8088的中断操作与响应硬件中断的响应过程和中断服务588086/8088响应INTR的中断后,从INTA引脚连续发两个负脉冲,中断源在接到第二个负脉冲后,通过数据线发送中断类型码,CPU收到类型码后,进行如下操作:将中断类型码放入暂存器保存将标志寄存器的内容加入系统堆栈将IF和TF标志清零保护断点根据中断类型码取出中断向量,装入IP和CS转向中断服务程序。为什么?见p187见p21(1)8.38086/8088的中断操作与响应硬件中断的响应过程和中断服务硬件中断的响应过程59现场保护中断处理现场恢复中断返回不允许中断嵌套的结构为了使中断返回后能继续主程序的运行。用堆栈指令保护那些在主、子程序中均用到的通用寄存器。IRET指令:把中断响应时保护的标志寄存器内容恢复;把断点地址弹出送至IP和CS从而实现返回。见教材p189~1908.38086/8088的中断操作与响应硬件中断的响应过程和中断服务中断服务程序的结构60现场保护中断处理现场恢复中断返回允许中断嵌套的结构开中断关中断对于可屏蔽中断而言,不论中断返回前CPU是处于开中断还是关中断,返回后中断总是开放的。STICLI为什么?见p1888.38086/8088的中断操作与响应硬件中断的响应过程和中断服务中断服务程序的结构61中断类型码第一响应周期第二响应周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D01.送出第1个中断响应信号,通知外部中断控制逻辑,CPU接受了中断请求2.送出第2个中断响应信号,启动外部中断控制逻辑,把中断类型码置于数据总线,CPU从数据总线读取中断类型码中断类型码通过数据总线低8位传送,外设的数据线必须挂接在808616位数据总线的低8位。端口地址必须为偶地址A0=0见教材p1898.38086/8088的中断操作与响应硬件中断的响应过程和中断服务硬件中断的时序IF=1(开中断)时,当INTR端加入中断请求信号(高电平有效)时,待当前指令结束后,CPU产生两个连续的中断响应总线周期,其时序关系如图623.保护断点和标志,将当前的FR、CS和IP内容依次压入堆栈,以便返回时恢复;4.将FR中的IF标志和TF标志清0;5.根据读取的中断类型码,控制

温馨提示

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

评论

0/150

提交评论