《微型计算机原理与接口技术,李长青,李泉溪,PPT课件,第七章1.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术,李长青,李泉溪,PPT课件,第七章1.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章第七章 中断技术中断技术(可屏蔽外中断控制技术)(可屏蔽外中断控制技术)微机原理与接口技术精品课程输入输入/输出数据的传输控制方式输出数据的传输控制方式 程序方式程序方式中断方式中断方式DMA方式方式 特点:特点:上级上级反复访问反复访问 特点:特点:下级请示执行下级请示执行 特点:特点:架空架空CPUCPU(三种接口设计模式)(三种接口设计模式)微机原理与接口技术精品课程3INT0INT1INT4INT3INT2断断点点中中断断溢溢出出中中断断复习:第二章中断概念部分CPU硬件中断信号脚:第17脚 非屏蔽中断请求第18脚 可屏蔽中断请求第24脚 可屏蔽中断响应弄清几个概念:1.中断分类
2、概念 2.中断向量表概念 3.中断服务子程序的执行机制概念微机原理与接口技术精品课程48086/8088的中断系统 注:INT 0 INT 4 为系统专用中断号微机原理与接口技术精品课程5复复习习:中中断断管管理理表表windows有APIAPI库 dos返回返回28微机原理与接口技术精品课程6三、计算机中断响应过程三、计算机中断响应过程第一步:获得中断类型号;第一步:获得中断类型号;第二步:保护断点并关中断;第二步:保护断点并关中断;第三步:从中断向量表中提取中断向量,转入中断服务程序。第三步:从中断向量表中提取中断向量,转入中断服务程序。关于中断类型号的获得,有三种情况:关于中断类型号的获
3、得,有三种情况:1、对专用中断(中断号、对专用中断(中断号0 4),中断类型号由),中断类型号由CPU自动自动 生成;生成;2、对软件中断、对软件中断 INT N ,中断类型号,中断类型号N从指令获得;从指令获得;3、对外部可屏蔽中断,、对外部可屏蔽中断,CPU获得中断类型号的过程比较获得中断类型号的过程比较 复杂。见下页复杂。见下页微机原理与接口技术精品课程7 可屏蔽中断接口必用可屏蔽中断接口必用可编程中断控制芯片可编程中断控制芯片8259A连接连接CPU的中断请求线的中断请求线可扩展可扩展8个外部中断个外部中断源源 连接连接CPU的中断响应线的中断响应线注:其他管脚要解决:注:其他管脚要解
4、决:可编程的初始化问题可编程的初始化问题 中断源的再扩展问题中断源的再扩展问题D0D7返回返回25微机原理与接口技术精品课程8CPU中断中断接口接口D0 D7中断请求中断请求INTR中断相应中断相应INTA第一个总线周期第一个总线周期CPU送中断响应信号送中断响应信号INTA第二个总线周期中断接口送中断类型号第二个总线周期中断接口送中断类型号8259AIR0IR7微机原理与接口技术精品课程9四、各类中断的优先级四、各类中断的优先级注注注:优先级可以通过硬件设计实现注:优先级可以通过硬件设计实现 也可以通过软件设计实现也可以通过软件设计实现微机原理与接口技术精品课程10第三节第三节 可编程中断控
5、制器可编程中断控制器Intel 8259A 8259A应具备下列四项功能:应具备下列四项功能:1、中断请求端的扩展功能、中断请求端的扩展功能 2、中断优先级的管理功能、中断优先级的管理功能 3、中断类型码的预置和自动上传功能、中断类型码的预置和自动上传功能 4、可编程功能:通过程序获得不同的工作、可编程功能:通过程序获得不同的工作 模式模式 叫叫“可编程器件可编程器件”微机原理与接口技术精品课程11可编程中断控制器可编程中断控制器8259A内部结构内部结构 返回到返回到16页页8259A芯片引脚芯片引脚记录当前记录当前正执行的正执行的中断中断IRi返回到返回到30返回到返回到21 返回返回25
6、微机原理与接口技术精品课程128259A的读写操作的读写操作I/O端口地址端口地址 单板机8259A初始化命令字:初始化命令字:ICW1、ICW2、ICW3、ICW4 8259A操作命令字:操作命令字:OCW1、OCW2、OCW3难点:两个地址难点:两个地址(一个偶地址和一个奇地址一个偶地址和一个奇地址),但要写进这么多,但要写进这么多 命令字!借助了可编程芯片的内部逻辑管理。命令字!借助了可编程芯片的内部逻辑管理。微机原理与接口技术精品课程131 初始化命令字初始化命令字ICW1例:若例:若8259A的端口地址为的端口地址为20H、21H,采用电平触发,单片使用,采用电平触发,单片使用,需要
7、需要ICW4,请初始化,请初始化命令字命令字ICW1解:根据题意,解:根据题意,ICW1=1BH,初始化程序如下:,初始化程序如下:MOVAL,1BHOUT 20H,AL借助于标志位,一个地借助于标志位,一个地址就可存两个命令字址就可存两个命令字!决定是否有ICW3返返28返返18微机原理与接口技术精品课程142 初始化命令字初始化命令字ICW 2(预存中断号)(预存中断号)例:已知原计算机系统中断向量表例:已知原计算机系统中断向量表60H以后为空,请设置以后为空,请设置 命令字命令字ICW2并装入,并装入,8259A地址为地址为20H,21H解:解:ICW2的低三位的低三位000 111由由
8、8259A自动分配给外设中断自动分配给外设中断 请求端请求端IR0 IR7,所以高所以高5位应定位位应定位01100比较合理。比较合理。初始化程序如下:初始化程序如下:MOVAL,01100000B OUT 21H,AL ;8259A地址为地址为20H,21H ;问:;问:MOV,AL,01100111B行吗?行吗?返返28微机原理与接口技术精品课程153 初始化命令字初始化命令字ICW 3 ICW3称为主片称为主片/从片标志命令字,必须写到从片标志命令字,必须写到8259A的奇的奇地址端口(即地址端口(即A01)中。仅在)中。仅在8259A级联(级联(ICW1中中D10)时使用,且时使用,且
9、CPU送给主送给主8259A和从和从8259A的的ICW3格式是不相格式是不相同的。同的。例:一片例:一片8259A 级联级联8片从片,需要写片从片,需要写9次次ICW3,如何写?如何写?微机原理与接口技术精品课程164 初始化命令字初始化命令字ICW 4 ICW4叫做方式控制初始化命令字,必须写到叫做方式控制初始化命令字,必须写到8259A奇地址端口(奇地址端口(A01)。)。ICW4仅在仅在ICW1中的中的D0l时才有时才有必要设置,否则就省略不用。必要设置,否则就省略不用。说明:说明:D4位位特殊特殊指级联时主片用指级联时主片用“特殊特殊”,其它都,其它都用用“非特殊非特殊”。D3 D2
10、位位,说明,说明与系统总线是否与系统总线是否用缓冲器(大系用缓冲器(大系统的总线驱动)统的总线驱动)相连。相连。D1位位一般取一般取0.为为了实现有优先级了实现有优先级要求的中断嵌套,要求的中断嵌套,8259A中有一个中有一个现行服务寄存器现行服务寄存器ISR,自动,自动EOI方式,即一进入中断,方式,即一进入中断,8259A 即将即将ISR的中断服务位的中断服务位ISRi请零,可能造成发生嵌套的优先级请零,可能造成发生嵌套的优先级混乱。除非保证不发生嵌套时才用自动混乱。除非保证不发生嵌套时才用自动EOI方式。方式。返返28 微机原理与接口技术精品课程17例:例:假设假设8259A地址为地址为
11、20H 21H,与总线之间有缓冲器连接,与总线之间有缓冲器连接,非自动结束方式,只用一片非自动结束方式,只用一片8259A,普通完全嵌套,用,普通完全嵌套,用8088。请初始化请初始化ICW4解:解:MOV AL,0000 1101B OUT 21H,AL微机原理与接口技术精品课程184个命令字的初始化顺序个命令字的初始化顺序A0=0A0=1A0=1A0=1ICW1导向导向微机原理与接口技术精品课程19例例:现有现有8086微机系统,其中断控制单元由单片微机系统,其中断控制单元由单片8259A构成。构成。8259A的触发方式是边沿触发,中断类型号为的触发方式是边沿触发,中断类型号为08H0FH
12、,非,非自动结束方式,全嵌套方式,非缓冲方式。自动结束方式,全嵌套方式,非缓冲方式。8259A的地址为的地址为0DAH和和0DBH。试编写该片。试编写该片8259A的初始化程序。的初始化程序。解:解:微机原理与接口技术精品课程20操作命令字:操作命令字:OCW1,OCW2,OCW3 1、中断屏蔽命令字、中断屏蔽命令字OCW1例:开放中断IR0 IR1 IR2 IR3 其它中断请求端 均屏蔽。假 定8259A的片地址为:20H 21H 请初始化OCW1 解:MOV AL,0F0H OUT 21H,AL返返28 微机原理与接口技术精品课程212.中断模式设置命令字 OCW2说明:一般使用ICW4的
13、的非自动非自动EOI方式,用方式,用OCW2的普通的普通EOI方式结束中断服方式结束中断服务子程序。注意:务子程序。注意:ICW4用用在主程序的初始化中,而在主程序的初始化中,而OCW2用在中断服务子程序中断服务子程序中使用。中使用。子程序结束处用!子程序结束处用!R=0为固定优先级;为固定优先级;IR0最高最高R=1为轮换优先级。为轮换优先级。例:中断服务子程序片断:.MOV AL,20H ;用普通EOI方式(不用设Li),OUT 20H,AL ;送入偶地址20H,ISR的相应位清零 IRET ;CPU平台上的中断返回,恢复上层程序断口。返回30页注:外中断结束前需要 两个关键指令:OUT
14、82H,AL ;接口片处理 IRET ;计算机系统处理记录着正在执记录着正在执行的中断号行的中断号微机原理与接口技术精品课程223、OCW3 例:编一段了解ISR状态的程序片断,假定8259A的地址为20H 21H .:MOV AL,00001111B ;普通屏蔽方式,见下页 OUT 20H,AL ;写OCW3 NOP IN AL,20H ;读ISR(注意端口A0=0)返回30页微机原理与接口技术精品课程23返回返回20微机原理与接口技术精品课程4个命令字个命令字 3个操作命令字的使用总结个操作命令字的使用总结5.4微机原理与接口技术精品课程25例例:某一中断系统,有一片主片和两片从片8259
15、A,主片的要求为:特定全嵌套方式、边沿触发、EOI方式、中断类型为40H;从片的要求为:全嵌套方式、边沿触发、EOI方式、中断类型为60H和80H;地址:主片为FFD0H,FFD2H;从片分别为 FFD4H,FFD6H和FFD8H,FFDAH。试编写各8259A的初始化程序。级联级联管脚管脚微机原理与接口技术精品课程26主片:ICW1:00010001B=11HICW2:40HICW3:01001000B=48HICW4:00010001B=11H从片A:ICW1:00010001B=11HICW2:60HICW3:00000011B=03HICW4:00000001B=01H从片B:ICW1
16、:00010001B=11HICW2:80HICW3:00000110B=06HICW4:00000001B=01H三片8259A的控制字分别是:微机原理与接口技术精品课程27CLI ;初始化时要关中断MOV DX,0FFD0HMOV AL,11HOUT DX,ALINC DXINC DXMOV AL,40HOUT DX,ALMOV AL,48HOUT DX,ALMOV AL,11HOUT DX,AL主片8259A的初始化程序:CLIMOV DX,0FFD4HMOV AL,11HOUT DX,ALINC DXINC DXMOV AL,60HOUT DX,ALMOV AL,3HOUT DX,AL
17、MOV AL,01HOUT DX,AL从片A的初始化程序:CLIMOV DX,0FFD8HMOV AL,11HOUT DX,ALINC DXINC DXMOV AL,80HOUT DX,ALMOV AL,6HOUT DX,ALMOV AL,01HOUT DX,AL从片B的初始化程序:微机原理与接口技术精品课程28例例:电脑:电脑IBMPC/XT上使用的上使用的8259A介绍介绍电脑电脑IBMPC/XT的主机板上有一个以的主机板上有一个以8259A为中心组成的外为中心组成的外部中断控制逻辑。下表为部中断控制逻辑。下表为外部中断源的分配表外部中断源的分配表。电脑在上电初始化期间,电脑在上电初始化期
18、间,BIOS中有三段与中有三段与8259A有关的程序,见下页有关的程序,见下页 返回46页微机原理与接口技术精品课程29 8259A初始化初始化MOV AX,13H;ICW1:边沿触发、单片8259A、要送ICW4OUT 20H,AL;8259A接口的偶地址为20HMOV AL,8;ICW2:装中断类型码,从08H开始0UT 21H,AL;8259A接口的奇地址为21HMOV AL,9;装ICW4:缓冲方式,80868088CPUOUT 21H,ALMOV AL,0FFH ;装0CWl:屏蔽全部中断OUT 21H,AL微机原理与接口技术精品课程30例:例:编写中断处理程序,要求主程序运行时,每
19、编写中断处理程序,要求主程序运行时,每10秒响铃一次,秒响铃一次,同时屏幕上显示信息同时屏幕上显示信息“The bell is ring!”。(小自动化程序)。(小自动化程序)解:此问题的解决用VB或VC的控件很容易,但通过底层汇编语言更能看出 解决问题的实质。两不同:前者是利用了系统,后者是修改了系统!两不同:前者是利用了系统,后者是修改了系统!分析:1、每每10秒响铃一次秒响铃一次可用电脑中的定时器中断实现,可用电脑中的定时器中断实现,其中断号为其中断号为08H。2、响铃响铃用并行接口用并行接口8255所控制的电脑扬声器实现。所控制的电脑扬声器实现。3、显示信息显示信息“The bell
20、is ring!”用软件中断调用用软件中断调用INT 21H 实现。实现。定时中断使用分析:电脑中定时中断使用分析:电脑中定时时间为:定时时间为:1/18.2秒(约秒(约55ms),即每隔),即每隔55ms便进便进入入08H号中断服务程序中(执行完立马返回),此程序的主要任务是:实时号中断服务程序中(执行完立马返回),此程序的主要任务是:实时修改修改“秒秒”“分分”“时时”“天天”等参数,在中断返回之前,有一个软件调用等参数,在中断返回之前,有一个软件调用指令:指令:INT 1CH;在系统;在系统BIOS中,中,1CH的处理程序只有一条的处理程序只有一条IRET指令,仅指令,仅为用户提供一个中
21、断类型号。所以可以利用中断类型为用户提供一个中断类型号。所以可以利用中断类型1CH设计一些动态功能。设计一些动态功能。在本例中,因为题目要求每在本例中,因为题目要求每10秒处理一次,而秒处理一次,而8号中断执行号中断执行182次才够次才够10秒,秒,即每中断即每中断182次响铃一次,同时屏幕上显示信息次响铃一次,同时屏幕上显示信息“The bell is ring!”设计任务:设计任务:利用利用系统系统BIOS提供的中断号提供的中断号1CH,编写一个完成任务的中断服务程,编写一个完成任务的中断服务程序即可。序即可。(既编写一段程序,程序的入口地址放入由(既编写一段程序,程序的入口地址放入由1C
22、H所指定的中断表里)所指定的中断表里)在编写程序时,除了功能实现外,还必须做两个方面的工作:在编写程序时,除了功能实现外,还必须做两个方面的工作:1、在主程序初始化部分,先保存当前中断向量表里、在主程序初始化部分,先保存当前中断向量表里由1CH所指定中断向量,再,再置新的中断向量;置新的中断向量;2、在主程序结束部分恢复原保存的、在主程序结束部分恢复原保存的1CH中断向量。中断向量。微机原理与接口技术精品课程31主程序1.设置定时中断次数:1822.获得原1CH中断号处的中断向量并保存之。中断服务子程序1.保护现场.2.判断定时中断的次数是否够 182次.不够则中断返回;若 够则完成下列任务:
23、(1)响铃 (2)显示:The bell is ring 恢复现场中断返回在1CH中断号处创建新的中断向量。设置8259A的中断屏蔽字。在1CH中断号处恢复原中断向量。主程序结束。程序设计框图程序设计框图每隔55ms执行1次延时延时微机原理与接口技术精品课程32DATA SEGMENT;数据段COUNT DW182 ;定时次数MESSDBThe bell is ring!,0AH,0DH,$;显示内容DATA ENDSSTACK SEGMENT ;堆栈段DB 100 DUP(?)STACK ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATA
24、,ES:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX ;各段地址初始化完毕 MOV AL,1CH;得到原中断向量 MOV AH,35H INT 21H PUSHES;存储原中断向量 PUSHBX微机原理与接口技术精品课程33MOV DX,OFFSET RING ;RING的偏移地址和段地址,取出新中断向量MOVAX,SEG RINGMOVDS,AXMOVAL,1CH;创建新中断向量MOVAH,25HINT21HINAL,21H;在奇地址中取出8255A的中断屏蔽字ANDAL,0FEH ;使IR0=0(开放),其它
25、IRi保持原状OUT21H,ALSTI ;初始化工作已做完,CPU开放中断 MOV DI,2000 ;延时,代替主程序实体 DELAY:MOV SI,3000 DELAY1:DEC SI JNZ DELAY1 DEC DI JNZ DELAY微机原理与接口技术精品课程34POPDX;取原中断向量POPDS MOVAL,1CHMOVAH,25HINT21H ;恢复原中断向量RETMAIN ENDP ;主程序段到此结束。下面是小中断子程序RING PROC NEAR;1CH的中断服务程序,RING是程序名PUSHDS;保存现场PUSHAXPUSHCXPUSHDXMOVAX,DATAMOVDS,AX
26、STIDECCOUNT;10秒计数JNZEXIT;时间不到,退出中断MOVDX,OFFSET MESS;时间到MOVAH,09H;显示信息INT21H微机原理与接口技术精品课程35 MOVDX,100 ;响铃循环100次 IN AL,61H;响铃,61H是系统中8255B口的地址 ANDAL,0FCHSOUND:XOR AL,02H OUT61H,AL ;此句执行后响铃开始 MOVCX,140H ;响铃小延时,程序延时,不太准,且因电脑WAIT:LOOP WAIT ;主频不同而不同 DECDX JNESOUND ;完成较长时间的响铃 MOVCOUNT,182 ;重置定时中断次数EXIT:CLI POPDX;恢复现场 POPCX POPAX POPDS IRET ;中断返回RING ENDP ;中断子程序段结束CODE ENDS ;代码结束 ENDSTART ;全部结束