资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,微机原理与接口技术精品课程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,第七章 中断技术,(可屏蔽外中断控制技术),微机原理与接口技术精品课程,输入,/,输出数据的传输控制方式,程序方式,中断方式,DMA,方式,特点:,上级反复访问,特点:,下级请示执行,特点:,架空,CPU,(三种接口设计模式),3,INT0,INT1,INT4,INT3,INT2,断点中断,溢出中断,复习:,第二章中断概念部分,CPU,硬件中断信号脚:,第,17,脚 非屏蔽中断请求,第,18,脚 可屏蔽中断请求,第,24,脚 可屏蔽中断响应,弄清几个概念:,1.,中断分类概念,2.,中断向量表概念,3.,中断服务子程序的执行机制概念,4,8086/8088,的中断系统,注:,INT 0 INT 4,为系统专用中断号,5,复习:中断管理表,windows,有,API,库,dos,返回,28,6,三、计算机中断响应过程,第一步:获得中断类型号;,第二步:保护断点并关中断;,第三步:从中断向量表中提取中断向量,转入中断服务程序。,关于中断类型号的获得,有三种情况:,1,、对专用中断(中断号,0 4,),中断类型号由,CPU,自动,生成;,2,、对软件中断,INT N,,中断类型号,N,从指令获得;,3,、对外部可屏蔽中断,,CPU,获得中断类型号的过程比较,复杂。见下页,7,可屏蔽中断接口必用,可编程中断控制芯片,8259A,连接,CPU,的中断请求线,可扩展,8,个外部中断源,连接,CPU,的中断响应线,注:其他管脚要解决:,可编程的初始化问题,中断源的再扩展问题,D0D7,返回,25,8,CPU,中断,接口,D0 D7,中断请求,INTR,中断相应,INTA,第一个总线周期,CPU,送中断响应信号,INTA,第二个总线周期中断接口送中断类型号,8259A,IR0,IR7,9,四、各类中断的优先级,注,注:优先级可以通过硬件设计实现,也可以通过软件设计实现,10,第三节,可编程中断控制器,Intel 8259A,8259A,应具备下列四项功能:,1,、中断请求端的扩展功能,2,、中断优先级的管理功能,3,、中断类型码的预置和自动上传功能,4,、可编程功能:通过程序获得不同的工作,模式,叫“可编程器件”,11,可编程中断控制器,8259A,内部结构,返回到,17,页,8259A,芯片引脚,返回到,31,返回到,22,返回,25,记录当前正执行的中断号,IRi,12,8259A,的读写操作,I/O,端口地址,单板机,8259A,初始化命令字:,ICW1,、,ICW2,、,ICW3,、,ICW4,8259A,操作命令字:,OCW1,、,OCW2,、,OCW3,难点:两个地址,(,一个偶地址和一个奇地址,),,但要写进这么多,命令字!借助了可编程芯片的内部逻辑管理。,13,1,初始化命令字,ICW1,例:若,8259A,的端口地址为,20H,、,21H,,采用电平触发,单片使用,,需要,ICW4,,请初始化,命令字,ICW1,解:根据题意,,ICW1=1BH,,初始化程序如下:,MOV,AL,,,1BH,OUT,20H,,,AL,借助于标志位,一个地址就可存两个命令字,!,决定是否有,ICW3,返,28,返,18,14,2,初始化命令字,ICW 2,(预存中断号),例:已知原计算机系统中断向量表,60H,以后为空,请设置,命令字,ICW2,并装入,,8259A,地址为,20H,21H,解:,ICW2,的低三位,000 111,由,8259A,自动分配给外设中断,请求端,IR0 IR7,所以高,5,位应定位,01100,比较合理。,初始化程序如下:,MOV,AL,,,01100000B,OUT,21H,,,AL,;,8259A,地址为,20H,21H,;问:,MOV,AL,,,01100111B,行吗?,返,28,D0D7,15,3,初始化命令字,ICW 3,ICW3,称为主片,/,从片标志命令字,必须写到,8259A,的奇,地址端口(即,A0,1,)中。仅在,8259A,级联(,ICW1,中,D1,0,),时使用,且,CPU,送给主,8259A,和从,8259A,的,ICW3,格式是不相,同的。,例:一片,8259A,级联,8,片从片,需要写,9,次,ICW3,如何写?,注:,1,主片,2,从片的连接电路图,SP/EN,为主,/,从控制线(,SP,),CAS0,、,CAS1,、,CAS2,为级联线,17,4,初始化命令字,ICW 4,ICW4,叫做方式控制初始化命令字,必须写到,8259A,奇地址端口(,A0,1,)。,ICW4,仅在,ICW1,中的,D0,l,时才有,必要设置,否则就省略不用。,说明:,D4,位,特殊,指级联时主片用,“特殊”,其它都,用“非特殊”。,D3 D2,位,,说明,与系统总线是否,用缓冲器(大系,统的总线驱动),相连。,D1,位,一般取,0.,为,了实现有优先级,要求的中断嵌套,,8259A,中有一个,现行服务寄存器,ISR,,自动,EOI,方式,即一进入中断,,8259A,即将,ISR,的中断服务位,ISR,i,请零,可能造成发生嵌套的优先级,混乱。除非保证不发生嵌套时才用自动,EOI,方式。,返,28,18,例:,假设,8259A,地址为,20H 21H,,与总线之间有缓冲器连接,,非自动结束方式,只用一片,8259A,,普通完全嵌套,用,8088,。,请初始化,ICW4,解:,MOV AL,0000 1101B,OUT 21H,AL,19,4,个命令字的初始化顺序,A0=0,A0=1,A0=1,A0=1,ICW1,导向,ICW1,导向,20,例,:,现有,8086,微机系统,其中断控制单元由单片,8259A,构成。,8259A,的触发方式是边沿触发,中断类型号为,08H0FH,,非,自动结束方式,全嵌套方式,非缓冲方式。,8259A,的地址为,0DAH,和,0DBH,。试编写该片,8259A,的初始化程序。,解:,21,操作命令字:,OCW1,OCW2,OCW3,1,、中断屏蔽命令字,OCW1,例:开放中断,IR0 IR1 IR2 IR3,其它中断请求端 均屏蔽。假,定,8259A,的片地址为:,20H 21H,请初始化,OCW1,解:,MOV AL,0F0H,OUT 21H,AL,返,28,22,2.,中断模式设置命令字,OCW2,说明:,一般使用,ICW4,的,非自动,EOI,方式,用,OCW2,的普通,EOI,方式结束中断服,务子程序。,注意:,ICW4,用,在主程序的初始化中,而,OCW2,用在,中断服务子程序,中使用。,在,子程序结束处用!,R=0,为固定优先级;,IR0,最高,R=1,为轮换优先级。,例:中断服务子程序片断:,.,.,MOV AL,20H,;用普通,EOI,方式(,不用设,Li,),,OUT 20H,AL ;,送入偶地址,20H,,,ISR,的相应位清零,IRET,;,CPU,平台上的中断返回,恢复上层程序断口。,返回,30,页,注:外中断结束前需要 两个关键指令:,OUT 20H,AL,;接口片处理,IRET,;计算机系统处理,记录着正在执行的中断号,23,返回,20,24,3,、,OCW3,例:编一段了解,ISR,状态的程序片断,假定,8259A,的地址为,20H 21H .,:,MOV AL,00001111B,;普通屏蔽方式,OUT 20H,AL ;,写,OCW3,NOP,;此指令可有可无,IN AL,20H,;读,ISR,(注意端口,A,0,=0,),返回,30,页,4,个命令字,3,个操作命令字的使用总结,5.4,26,例,:某一中断系统,有一片主片和两片从片,8259A,,主片的要求为:特定全嵌套方式、边沿触发、非自动,EOI,方式、非缓冲方式、中断类型为,40H,;从片的要求为:全嵌套方式、边沿触发、非自动,EOI,方式、非缓冲方式、中断类型为,60H,和,80H,;地址:主片为,FFD0H,,,FFD2H,;从片分别为,FFD4H,,,FFD6H,和,FFD8H,,,FFDAH,。,试编写各,8259A,的初始化程序。,级联,管脚,ICW1,ICW2,ICW3,ICW4,28,主片:,ICW1,:,00010001B=11H,ICW2,:,40H,ICW3,:,01001000B=48H,ICW4,:,00010001B=11H,从片,A,:,ICW1,:,00010001B=11H,ICW2,:,60H,ICW3,:,00000011B=03H,ICW4,:,00000001B=01H,从片,B,:,ICW1,:,00010001B=11H,ICW2,:,80H,ICW3,:,00000110B=06H,ICW4,:,00000001B=01H,三片,8259A,的控制字分别是:,29,CLI ;,初始化时要关中断,MOV DX,,,0FFD0H,MOV AL,,,11H,OUT DX,,,AL,INC DX,INC DX,MOV AL,,,40H,OUT DX,,,AL,MOV AL,,,48H,OUT DX,,,AL,MOV AL,,,11H,OUT DX,,,AL,主片,8259A,的初始化程序:,CLI,MOV DX,,,0FFD4H,MOV AL,,,11H,OUT DX,,,AL,INC DX,INC DX,MOV AL,,,60H,OUT DX,,,AL,MOV AL,,,3H,OUT DX,,,AL,MOV AL,,,01H,OUT DX,,,AL,从片,A,的初始化程序:,CLI,MOV DX,,,0FFD8H,MOV AL,,,11H,OUT DX,,,AL,INC DX,INC DX,MOV AL,,,80H,OUT DX,,,AL,MOV AL,,,6H,OUT DX,,,AL,MOV AL,,,01H,OUT DX,,,AL,从片,B,的初始化程序:,作业:,某一中断系统,有一片主片和两片从片,8259A,,主片的要求为:特定全嵌套方式、电平触发、非自动,EOI,方式、,缓冲方式,、中断类型为,48H,;从片的要求为:全嵌套方式、边沿触发、非自动,EOI,方式、,缓冲方式,、中断类型为,60H,和,80H,;地址:主片为,0D0H,,,0D2H,;从片分别为,0D4H,,,0D6H,和,0D8H,,,0DAH,。试编写各,8259A,的初始化程序。,31,例,:电脑,IBMPC/XT,上使用的,8259A,介绍,电脑,IBMPC/XT,的主机板上有一个以,8259A,为中心组成的外,部中断控制逻辑。下表为,外部中断源的分配表,。,电脑在上电初始化期间,,BIOS,中有三段与,8259A,有关的程序,见下页,返回,46,页,32,8259A,初始化,MOV AX,13H,;,ICW1,:,边沿触发、单片,8259A,、要送,ICW4,OUT 20H,AL,;,8259A,接口的偶地址为,20H,MOV AL,8,;,ICW2,:装中断类型码,从,08H,开始,0UT 21H,AL,;,8259A,接口的奇地址为,21H,MOV AL,9,;装,ICW4,:缓冲方式,,8086,8088CPU,OUT 21H,AL,MOV AL,0FFH,;装,0CWl,:,屏蔽全部中断,OUT 21H,AL,33,例:编写中断处理程序,要求主程序运行时,每,10,秒响铃一次,,同时屏幕上显示信息“,The bell is ring,!”。(小自动化程序),解:此问题的解决用,VB,或,VC,的控件很容易,但通过底层汇编语言更能看出,解决问题的实质。,两不同:前者是利用了系统,后者是修改了系统!,分析:,1,、,每,10,秒响铃一次,可用电脑中的定时器中断实现,,其中断号为,08H,。,2,、,响铃,用并行接口,8255,所控制的电
展开阅读全文