微机原理 第六章精品文稿.ppt
《微机原理 第六章精品文稿.ppt》由会员分享,可在线阅读,更多相关《微机原理 第六章精品文稿.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理 第六章第1页,本讲稿共98页2023/5/8共98页2中断系统应具有以下功能:中断系统应具有以下功能:(1)能实现能实现中断响应、中断服务、中断返回、中断屏蔽中断响应、中断服务、中断返回、中断屏蔽;(2)能实现能实现中断优先级排队中断优先级排队;(3)能能实实现现中中断断嵌嵌套套优优先先级级高高的的中中断断能能中中断断低低级级的的中中断断处处理。理。第2页,本讲稿共98页2023/5/8共98页3中断分类边沿触发、两个时钟周期高电平高电平触发、维持到CPU响应中断才结束第3页,本讲稿共98页2023/5/8共98页4可屏蔽中断处理的过程一般分成几步:中断请求;中断响应;保护现场;转入
2、执行中断服务子程序;恢复现场和中断返回。CPU响应可屏蔽中断要有三个条件:外设提出中断申请中断允许(IF=1,开中断)本中断屏蔽位未被屏蔽 可屏蔽中断处理过程第4页,本讲稿共98页2023/5/8共98页5开中断关中断可屏蔽中断的工作流程第5页,本讲稿共98页2023/5/8共98页6中断响应过程(以可屏蔽中断为例)1、外设通过、外设通过INTR向向CPU发出中断请求;发出中断请求;2、CPU在执行完现行指令后,响应该中断请求(在执行完现行指令后,响应该中断请求(IF=1););3、外设向、外设向CPU提供中断类型号;提供中断类型号;4、CPU将将PSW、CS、IP压入堆栈;压入堆栈;5、清除
3、、清除IF、TF(默认情况下为不允许中断嵌套);(默认情况下为不允许中断嵌套);6、从中断向量表中取出中断向量,置入、从中断向量表中取出中断向量,置入IP、CS;7、执行中断例程;、执行中断例程;8、在中断例程中,如果允许中断嵌套,则开中断(、在中断例程中,如果允许中断嵌套,则开中断(STI););9、执行、执行IRET,从堆栈中弹出,从堆栈中弹出IP、CS、PSW。第6页,本讲稿共98页2023/5/8共98页7微微机机中中断断处处理理流流程程图图有些情况要再执行完下一条指令才响应外部中断:1、正在执行封锁指令;2、向段寄存器传送数据(MOV、POP);遇到等待指令和串操作指令时,在当前指令
4、一个基本操作完成后即可进入中断响应。第7页,本讲稿共98页2023/5/8共98页8例:软件中断执行的过程中断向量表第8页,本讲稿共98页2023/5/8共98页9微机中断管理控制器管理的中断注意:系统使用的中断类型,不允许用户使用和更改:中断向量不能修改;在RAM中的中断服务程序代码不能修改。第9页,本讲稿共98页2023/5/8共98页10如何编写用户自己的中断服务程序?(对软中断而言)(1)确定中断类型号,设置中断向量;(2)使用 INT i8 指令调用软件中断服务程序。主主程程序序(1)保护现场(保存某些寄存器的内容)。(2)若允许外部可屏蔽中断嵌套,则开中断(STI)。(3)处理中断
5、服务。(4)关中断。(5)恢复现场。(6)返回被中断的程序(IRET)。中中断断服服务务程程序序第10页,本讲稿共98页2023/5/8共98页11中断向量的设置:1、一种方法用指令来设置;2、利用DOS功能调用来设置。例例用指令来设置中断服务程序的入口地址到中断类型号用指令来设置中断服务程序的入口地址到中断类型号n所对应的中断向量表中。所对应的中断向量表中。MOVAX,0;主程序中设置中断向量主程序中设置中断向量MOVES,AXMOVDI,N*4;中断类型号中断类型号N*4MOVAX,OFFSETINTR_PROGCLDSTOSW;偏移地址送偏移地址送4n,4n+1单元单元MOVAX,CSS
6、TOSW;段地址送段地址送4n+2,4n+3单元单元第11页,本讲稿共98页2023/5/8共98页12INTR_PROG:;中断服务子程序中断服务子程序PUSHAXSTICLIPOPAXIRET假设中断服务程序和主程序在同一个代码段:第12页,本讲稿共98页2023/5/8共98页13MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRPMOVES:WORDPTRBX,AX;设置偏移地址设置偏移地址MOVAX,SEGINTRPMOVES:WORDPTRBX+2,AX;设置段地址设置段地址INTRP:IRET中断向量的设置第13页,本讲稿共98页2023/5/8共9
7、8页14实际上,我们在设置或检查任何中断向量时,总是避免直接使用中断向量的绝对地址,而是利用DOS功能调用INT 2lH设置中断向量和取出中断向量。此外要注意,在设置自己的中断向量时,应先保存原中断向量,再设置新的中断向量,在程序结束前恢复原中断向量。v中断向量的设置(DOS功能调用INT 21H)功能号:AH=25H入口参数:AL=中断类型号,DS:DX 中断向量(段地址:偏移地址)出口参数:无v获取某个中断类型的中断向量(DOS功能调用INT 21H)功能号:AH=35H入口参数:AL=中断类型号出口参数:ES:BX 中断向量(段地址:偏移地址)第14页,本讲稿共98页2023/5/8共9
8、8页15例例利用利用DOS功能调用功能调用设置中断向量和获取中断向量。设置中断向量和获取中断向量。DATASEGMENTINTOFFDW?;用于保存原中断服务程序的偏移地址用于保存原中断服务程序的偏移地址INTSEGDW?;用于保存原中断服务程序的段地址用于保存原中断服务程序的段地址INTMSGDBAINSTRUCTIONINTERRUPT!,$DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;初始化数据段寄存器初始化数据段寄存器第15页,本讲稿共98页2023/5/8共98页16 MOV AX,3580H IN
9、T 21H;获取系统原80H的中断向量 MOV INTOFF,BX;保存偏移地址 MOV INTSEG,ES;保存段地址 PUSH DS MOV DX,OFFSET NEW80H MOV AX,SEG NEW80H MOV DS,AX MOV AX,2580H INT 21H;设置本程序的80H中断向量 POP DS INT 80H;调用自己的80H中断服务程序第16页,本讲稿共98页2023/5/8共98页17 MOV DX,INTOFFMOV AX,INTSEG MOV DS,AX MOV AX,2580H ;恢复系统原80H中断向量;注意:先设置DX,再设置DS。因为如果先改变DS,;就
10、不能准确获得INTOFF变量值。INT 21H MOV AX,4C00H INT 21H第17页,本讲稿共98页2023/5/8共98页18;80H类型中断服务程序:显示一个字符串。NEW80H PROC PUSH DX PUSH AX;保护现场 STI;开中断 MOV DX,OFFSET INTMSG MOV AH,09H INT 21H CLI POP AX POP DX;恢复现场 STI IRET;中断返回NEW80H ENDP;中断服务程序结束CODE ENDS END START第18页,本讲稿共98页2023/5/8共98页19中断优先级中断优先级中中断断优优先先级级(优优先先权权
11、)是是指指系系统统设设计计者者事事先先根根据据轻轻重重缓缓急急,给给每每个个中中断断源源确确定定的的优优先先服服务务的的级级别别。微微机机系系统统需需要要根根据据中中断优先级的高低确定先为那个中断源服务。断优先级的高低确定先为那个中断源服务。IBM PCIBM PC机中规定优先级机中规定优先级从高到低从高到低的次序为:的次序为:除法错,除法错,INTOINTO,INT nINT n 不可屏蔽中断不可屏蔽中断(NMI)NMI)可屏蔽中断可屏蔽中断(INTR)INTR)单步中断单步中断第19页,本讲稿共98页2023/5/8共98页20可屏蔽中断优先级的确定方法:(1)软件查询的方法:第20页,本
12、讲稿共98页2023/5/8共98页21可屏蔽中断优先级的确定方法:(1)软件查询的方法:软件查询的方法的流程图第21页,本讲稿共98页2023/5/8共98页22可屏蔽中断优先级的确定方法:可屏蔽中断优先级的确定方法:(2)硬件硬件查询优查询优先方式先方式菊花菊花链链法法(3)专专用芯片的管理方式用芯片的管理方式(Intel8259A)第22页,本讲稿共98页2023/5/8共98页23中断嵌套是指在中断服务过程中,CPU又得到优先权更高的外部可屏蔽中断的请求,则当前的中断服务被打断,优先权更高的中断优先获得服务,待返回后,再继续执行被打断的中断服务。只要条件满足,可以发生多重嵌套,也被称为
13、多重中断。对于软件中断指令和NMI中断,CPU必须立即无条件响应,对于外部可屏蔽中断请求,只有IF=1,CPU才能响应。因此,可屏蔽中断的嵌套发生的条件是:(1)IF=1;(2)在外部可屏蔽中断服务过程中,CPU又得到优先权更高的外部可屏蔽中断的请求。可屏蔽中断的嵌套第23页,本讲稿共98页2023/5/8共98页24可屏蔽中断的嵌套对于8086系统中,什么原因使IF=0?(1)系统复位操作后;(2)任一中断响应后(包括内、外部所有的中断);(3)执行CLI指令后。因此,要实现可屏蔽中断的嵌套,必须在当前的中断服务程序中设置STI指令。IRET指令对IF的影响:中断服务程序最后执行中断返回指令
14、IRET,将使IF恢复到进入该中断以前的状态。(PSW)第24页,本讲稿共98页2023/5/8共98页25多多个个可可屏屏蔽蔽中中断断源源中中断断流流程程图图响应中断后自动设置防止中断重复嵌套由PIC控制允许响应优先级高的中断请求恢复现场的工作不希望被中断打断可屏蔽中断的嵌套第25页,本讲稿共98页2023/5/8共98页26可屏蔽中断的嵌套第26页,本讲稿共98页2023/5/8共98页27Intel 8259A8259A是是8086/8088系统的可编程中断控制器,它的主要功能是:系统的可编程中断控制器,它的主要功能是:(1)每片具有每片具有8级优先级控制,通过级联(级优先级控制,通过级
15、联(9片片8259A)可以扩展到可以扩展到64级优级优先级控制。先级控制。(2)每一级中断可由程序单独屏蔽或允许。每一级中断可由程序单独屏蔽或允许。(3)可提供中断类型号传送给可提供中断类型号传送给CPU。(4)可以通过编程选择多种不同工作方式。可以通过编程选择多种不同工作方式。D7D0:双向数据线,三态,它直接或通过总线驱动器与系统的数据总线相连。IR7IR0:外设的中断请求信号输入端,输入,中断请求信号可以是电平触发或边沿触发。中断级联时,连接8259A从片INT端。RD:读命令信号,输入,低电平有效,用来控制数据由8259A读到CPU。WR:写命令信号,输入,低电平有效,用来控制数据由C
16、PU写到8259A。CS:片选信号,输入,通过译码电路与高位地址总线相连。A0:选择8259A的两个端口,输入,连低位地址线,用于选择内部端口。引脚信号第27页,本讲稿共98页2023/5/8共98页28Intel 8259AINT:向CPU发出的中断请求信号,输出,与CPU的INTR端相连。INTA:CPU给8259A的中断响应信号,输入。8259A要求两个负脉冲的中断响应信号,第一个是CPU响应中断的信号,第二个INTA结束后,CPU读取8259A送去的中断类型号。CAS2CAS0:双向级联信号线。8259A作主片时,为输出线,作从片时,为输入线。与SP/EN配合实现8259A级联。SP/
17、EN:编程/双向使能缓冲。采用非缓冲方式,决定本片8259A是主片还是从片:若SP1,则为主片;若SPO,则为从片。采用缓冲方式,启动8259A到CPU之间的数据总线驱动器,ENO,表示允许8259A通过缓冲器输出,EN 1,表示写8259A。引脚信号第28页,本讲稿共98页2023/5/8共98页29Intel 8259A8259A内部结构框图第29页,本讲稿共98页2023/5/8共98页30Intel 8259A1、数据总线缓冲器、数据总线缓冲器数据总线缓冲器是数据总线缓冲器是8位双向三态缓冲器,是位双向三态缓冲器,是8259A与系统数据总线接口,与系统数据总线接口,通常连接低通常连接低
18、8位数据总线位数据总线D7D0。2、读写控制电路、读写控制电路读写控制电路接收读写控制电路接收CPU送来的读送来的读/写命令、片选信号写命令、片选信号CS及端口选择信号及端口选择信号A0。高位地址译码后送作片选信号。高位地址译码后送作片选信号。A0连地址总线连地址总线A0或或A1,用来选择用来选择8259A的两个的两个I/O端口,一个为奇地址,另一个偶地址。端口,一个为奇地址,另一个偶地址。在在 IBMPC/XT机机 中中 用用 A9 A1译译 码码 来来 产产 生生 信信 号号,组组 合合 为为00001b,产产生生I/O端端口口地地址址为为20H3FH,共共32个个。而而8259A只只需需
19、要要两两个个I/O端端口口地地址址,IBMPC/XT取取20H(A00)、21H(A01)两两个个地地址址在在编编程程时时使使用用。但但其其它它30个个地地址址为为影影象象地地址址,不不可可能能再分配给其它再分配给其它I/O设备使用。设备使用。当当8位位I/O接接口口芯芯片片与与8086CPU的的l6位位数数据据总总线线相相连连接接时时,8259A的的D7D0与与CPU数数据据总总线线低低8位位相相连连。为为了了保保证证CPU与与8259A用用低低8位位传传输输数数据据,CPU的的A1连连8259A的的A0。这这样样对对CPU来来说说A00,A1可可以以为为1或或为为0,CPU读读写写始始终终
20、是是用用偶偶地地址址。对对8259A来来说说A1可可以以为为1或或为为0,给给8259A的的端端口口分分配配了了两两个个地地址址,一一个个奇奇地地址址,一一个个偶偶地地址址,符符合合了了8259A的编程要求。的编程要求。内部结构第30页,本讲稿共98页2023/5/8共98页31第31页,本讲稿共98页2023/5/8共98页323、级联缓冲、级联缓冲/比较器比较器级联缓冲级联缓冲/比较器用于多片比较器用于多片8259A级联使用,主从之间专用的总线。级联使用,主从之间专用的总线。4、中断请求寄存器、中断请求寄存器IRR(InterruptRequestRegister)中断请求寄存器是一个中断
21、请求寄存器是一个8位寄存器,存放外部输入的中断请求信号位寄存器,存放外部输入的中断请求信号IR7IR0。当某个当某个IR端有中断请求时,端有中断请求时,IRR相应的某位置相应的某位置“1”。可以可以允许允许8个中断请求信号同时进入,此时个中断请求信号同时进入,此时IRR寄存器被置成全寄存器被置成全“1”。当中当中断请求被响应时,断请求被响应时,IRR的的相应位复位相应位复位。5、中断屏蔽寄存器、中断屏蔽寄存器IMR(InterruptMaskRegister)中断屏蔽寄存器是一个中断屏蔽寄存器是一个8位寄存器,用来存放对各级中断请求的屏蔽信息。位寄存器,用来存放对各级中断请求的屏蔽信息。可用软
22、件编程可用软件编程设置设置IMR寄存器。当寄存器。当D5=1,表示由表示由IR5引入的中断请求不引入的中断请求不允许进入中断优先级判别器。允许进入中断优先级判别器。(与(与IF的设置恰恰相反)的设置恰恰相反)6、优先级判别器、优先级判别器PR优优先先级级判判别别器器对对保保存存在在IRR寄寄存存器器中中的的中中断断请请求求进进行行优优先先级级识识别别,送送出出最最高高优优先先级级的的中中断断请请求求到到中中断断服服务务寄寄存存器器ISR中中去去。当当出出现现多多重重中中断断时时,PR判判定定是是否否允允许许所所出出现现的的中中断断去去打打断断正正在在处处理理的的中中断断,让让优优先先级级更更高
23、高的的中断优先处理。中断优先处理。Intel 8259A内部结构第32页,本讲稿共98页2023/5/8共98页337、中断服务寄存器、中断服务寄存器ISR(InterruptServiceRegister)中中断断服服务务寄寄存存器器是是一一个个8位位寄寄存存器器,保保存存正正在在处处理理中中的的中中断断请请求求信信号号,某某个个IR端端的的中中断断请请求求被被CPU响响应应后后,当当CPU发发出出第第一一个个INTA信信号号时时,ISR寄寄存存器器中中的的相相应应位位置置“1”,一一直直保保持持到到该该级级中中断断处处理理结结束束为为止止。允允许许多多重重中中断断时时,ISR多多位位同同时
24、时被被置置成成“1”。此寄存器可被此寄存器可被CPU读出。中断处理结束前,要使用读出。中断处理结束前,要使用指令清除指令清除这一位。这一位。8、控制电路、控制电路控控制制电电路路是是8259A的的内内部部控控制制器器。根根据据中中断断请请求求寄寄存存器器IRR的的置置位位情情况况和和中中断断屏屏蔽蔽寄寄存存器器IMR设设置置的的情情况况,通通过过优优先先级级判判别别器器PR判判定定优优先先级级,向向8259A内内部部及及其其它它部部件件发发出出控控制制信信号号。并并向向CPU发发出出中中断断请请求求信信号号INT和和接接收收CPU的的中中断断响响应应信信号号INTA,使使中中断断服服务务寄寄存
25、存器器ISR相相应应位位置置“1”,并并使使中中断断请请求求寄寄存存器器IRR相相应应位位置置“0”。当当CPU第第二二个个INTA信信号号到到来来,控控制制8259A送送出出中中断断类类型型号号,使使CPU转转入入中中断断服服务务子子程程序序。如如果果命命令令字字ICW4的的中中断断自自动动结结束束位位为为“1”,则则在在第第二二个个INTA脉脉冲冲结结束时,将束时,将8259A中断服务寄存器中断服务寄存器ISR的相应位清的相应位清“0”。Intel 8259A内部结构第33页,本讲稿共98页2023/5/8共98页34中断响应时序 最大模式T2和T3第34页,本讲稿共98页2023/5/8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理 第六章精品文稿 微机 原理 第六 精品 文稿
限制150内