《微机原理》课件第6章 中断技术

上传人:考试不挂****2941... 文档编号:242950023 上传时间:2024-09-12 格式:PPT 页数:66 大小:1.20MB
返回 下载 相关 举报
《微机原理》课件第6章 中断技术_第1页
第1页 / 共66页
《微机原理》课件第6章 中断技术_第2页
第2页 / 共66页
《微机原理》课件第6章 中断技术_第3页
第3页 / 共66页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,掌握:,中断的基本概念,中断响应的一般过程,中断向量表及其初始化,8088/8086,中断系统,可编程中断控制器,8259A,第,6,章 中断技术,6-1,中断系统基本概念,引言,8259A,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,开关,DB,INTR,INTA,CPU,123456789,7 7 7,显示器,CPU,#1,中断源,中断控,制电路,中断请求,INTR,#2,中断源,#3,中断源,中断服务程序,入口,中断请求,中断返回,主程序,一、什么是中断及中断源,6-1,中断系统基本概念,二、中断系统功能,1,、允许多个中断源申请中断;,2,、多个中断源优先级排队;,3,、实现中断嵌套;,4,、 向,CPU,提供中断类型码,CPU,#1,中断源,中断,系统,中断请求,INTR,#2,中断源,#3,中断源,6-1,中断系统基本概念,三、中断过程,中断请求,中断优先级排队,中断响应,中断处理(服务),中断返回,请看下页流程图,中断服务,入口,中断请求,中断返回,主程序,CPU,#1,中断源,中断,系统,中断请求,INTR,#2,中断源,#3,中断源,6-1,中断系统基本概念,转中断服务程序,A,保护现场,中断服务,恢复现场,开中断,返回,A,取下一条指令,INTR=1,?,INTA=0,IF=0,堆栈,FLAGS,堆栈,CS,:,IP,STI,IF=1,I,RET,CS,:,IP,入口,中,断,处,理,有中断?,关中断,保存,FLAGS,保护断点,取得入口地址,N,当前指令结束,开中断?,N,开中断,关中断,中,断,响,应,中,断,判,优,中断返回,中断请求,6-1,中断系统基本概念,四、中断优先级排队,软件查询,硬件判优,6-1,中断系统基本概念,输入接口,20H,IN AL,,,20H,TEST AL,,,01H,JNZ,0#,TEST AL,,,02H,JNZ,1#,TEST AL,,,04H,JNZ,2#,TEST AL,,,80H,JNZ,7#,1,、软件查询,INTR,1,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,#7,#2#1 #0,6-1,中断系统基本概念,2,、链式判优,-,菊花链法,INTA,IREQ,1,INTR,&,=1,1,DB,三态门,中断,向量码,E,接口,1,中断响应,&,=1,1,接口,2,IREQ,1,中断请求,中断响应,中断请求,6-1,中断系统基本概念,3,、,中断优先级控制器,6-1,中断系统基本概念,NMI,中断,逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控,制器,8259A,PIC,8086/8088CPU,内部逻辑,断点中断,可,屏,蔽,中,断,请,求,n,4,3,0,1,2,内外中断共计,256,个中断源,6-2 8086/8088,中断系统,一、,8086/8088,中断源类型,:,中断优先级原则:,单步最低,内部高于外部、类型码越小优先级越高,INTR,INTA,二、中断向量与中断向量表,中断向量:,中断程序的入口地址,中断向量表:,存放中断向量的内存区域,从内存,00000H,到,003FFH,,共计,1KB,0,入口,0000,:,000,0H,0000,:,03FF,H,中断向量表,1,入口,2,入口,255,入口,00H04H,08H0FH,10H1FH,20H3FH,40HFFH,专用,硬件专用,BIOS,专用,DOS,专用,用户,6-2 8086/8088,中断系统,结论:,中断向量在中断向量表中的地址确定:,=0000,:中断类型码,4,INT 0,INT 1,1000,:,2050H,0000,:,0000H,0000,:,0004H,类型,0,入口,类型,1,入口,中断程序,0000,:,0120H,0121H,0122H,0123H,INT 48H,INTPROC,问题: 已知中断类型码,48H,,中断向量为,INTPROC,则该中断向量在中断向量表中的地址为:,(中断类型,48H,),48H4,0120H,50,20,00,10,6-2 8086/8088,中断系统,三 中断向量表的初始化,INT 0,INT 1,1000,:,2050H,0000,:,0000H,0000,:,0004H,类型,0,入口,类型,1,入口,中断程序,50,20,00,10,0000,:,0120H,0121H,0122H,0123H,INT 48H,INTPROC,MOV AX,,,0000H,MOV DS,,,AX,MOV BX,,,OFFSET INTPROC,MOV ,0120H ,,,BX,MOV BX,,,SEG INTPROC,MOV,0122H,,,BX,或用,DOS,功能,(中断类型,48H,),(,将中断向量放到中断向量表中,),6-2 8086/8088,中断系统,四、,8086,中断响应过程:,1,、,CPU,响应中断需要得到中断类型码,2,、不同类型的中断 提供中断类型码的方式不同;,NMI,及内部中断的类型码由,CPU,自动提供,没有中断响应周期;,INTR,的类型码由中断控制器提供,6-2 8086/8088,中断系统,中断,控制器,外设,中断,传送,程序,5,、,CPU,: 中断向量码,4,;,找到中断入口地址;,执行中断服务程序。,1,、中断产生;,2,、中断申请;,3,、,CPU,中断响应;,4,、,CPU,读取中断类型码;,DB,INTR,CPU,INTA,INTR,中断响应过程:,6-2 8086/8088,中断系统,N,Y,N,Y,N,N,N,N,N,Y,Y,执行指令,执行完,否,?,取指令,IF=1?,内部中,断,?,NMI,?,INTR,?,TF=1,?,类型码,=0,255,类型码,=2,类型码,=1,中断响应,,读回类型码,FLAG,入栈,TEMPTF,F=TF=0,CS,、,IP,入栈,计算向量表地址,高字,CS,低字,IP,执行中断,服务程序,NMI?,TEMP=,1?,转入中断服务程序,恢复,CS,和,IP,恢复,FLAGS,返回被中断,的程序,Y,Y,Y,Y,N,IRET,指令的操作,8086/8088,的中断处理流程,NMI,、,INTR,、单步和除法错中断同时产生,时的中断处理过程,DIV,TF=1,IF=1,INTR,NMI,PUSH FLAGS,、,CS,、,IP,CLEAR IF & TF,,中断入口,CS:IP,除法错,NMI(IF,、,TF = 0),PUSH FLAGS,、,CS,、,IP,CLEAR IF & TF,,中断入口,CS:IP,NMI,中断处理程序,除法错中断处理程序,(IF,、,TF = 0),返回,执行下条指令,识别出,INTR,(IF,、,TF = 1),返回,INTR,仍然有效,继续单步执行程序,INTR,中断处理程序,INTR,PUSH FLAGS,、,CS,、,IP,CLEAR IF & TF,,中断入口,CS:IP,单步,(IF,、,TF = 0),PUSH FLAGS,、,CS,、,IP,CLEAR IF & TF,,中断入口,CS:IP,单步中断处理程序,(IF,、,TF = 0),返回,(IF,、,TF = 1),返回,中断响应时序(可屏蔽中断),INTA,CLK,通知外设中断请求已被接受,,CPU,读取外设送出的中断类型码,当外设 使,INTR=1,时:,若,CPU,开中断(,IF=1,)则响应,发出,INTA,若,CPU,关中断(,IF=0,) 则,CPU,不响应。,6-5 80X86,中断系统,8259A,8086,CPU,中断控制电路,中断,类型码,INTR,INTA,IR0,IR1,IR7,6-3,可编程中断控制器,8259A,一、 功能,1,、单片,8259A,可对,8,个中断源控制,,9,片级联可扩展到,64,级;,2,、能向,CPU,提供中断类型码;,3,、可通过编程选择多种工作方式,6-3,可编程中断控制器,8259A,二、内部结构,IR,0,IR,1,IR,7,INT INTA,D,7,D,0,RD,WR,A,0,CS,CAS,0,CAS,1,CAS,2,SP/EN,数据总线缓冲器,读,/,写逻辑,级连缓冲,/,比较器,在服务寄存器,ISR,(,8,),优先权电路,PR,(,8,),中断请求寄存器,IRR,(,8,),中断屏蔽寄存器,IMR,(,8,),控制逻辑,IRRi=1,表示外设中断请求,IMRi=0,该位允许中断,,IMRi=1,,该位被屏蔽,ISRi=1,该位正在服务, 该位中断处理结束,ISRi=0,IR,0,IR,1,IR,7,INT INTA,D,7,D,0,RD,WR,A,0,CS,CAS,0,CAS,1,CAS,2,SP/EN,数据总线缓冲器,读,/,写逻辑,级连缓冲,/,比较器,在服务寄存器,ISR,(,8,),优先权电路,PR,(,8,),中断请求寄存器,IRR,(,8,),中断屏蔽寄存器,IMR,(,8,),控制逻辑,三、常用引脚介绍,6-3,可编程中断控制器,8259A,1,、,A,0,-,端口选择,接,CPU,低位地址线。,A,0,0,-,偶端口地址;,A,0,1,-,奇端口地址。,IR,0,IR,7,译,码,器,A,1,A,0,A,14,A,13,8088,CPU,A,15,DB 8,位,8259A,CS,A,0,6-3,可编程中断控制器,8259A,2,、,CAS,2,CAS,0,-,级联信号线,用作主片时,为输出线;用作从片时,为输入线;,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA DB,INT,从,INTR,INTA,DB,问题:,5,片级连可允许接收多少个中断源?,6-3,可编程中断控制器,8259A,3,、,SP/EN-,主从控制,/,允许,双向;,输入方向,:,SP=1,,则为主片,SP=0,,则为从片,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA DB,INT,从,SP/EN,+5V,SP/EN,地,CPU,的,INTR,端,INTA,DB,6-3,可编程中断控制器,8259A,输出方向,:用于缓冲器方式,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,从,SP/EN,SP/EN,INTR,INTA,DB,B,T,OE,A,B,T,OE,A,8286,8286,SP/EN, 输出方向,缓冲器方式,1,1,6-3,可编程中断控制器,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IRR,ISR,IMR,1,DB,中断类型码,1,四、,8259A,的工作流程,CPU,INTR,INTA,ISRi,复位:在,AEOI,方式,当第二个,INTA,结束时;,其它情况,在,IRET,前,发,EOI,命令,使,ISRi,复位。,6-3,可编程中断控制器,8259A,中断服务程序,0,五、,8259A,的中断方式,3,、屏蔽中断源的方式,1,、设置优先级的方式,2,、中断结束方式,4,、中断触发方式,6-3,可编程中断控制器,8259A,1,、设置优先级的方式,1,)全嵌套方式(缺省), 固定优先级,,IR,0,最高,,IR,7,最低,IR,7,IR,6,IR,5,IR,4,IR,3,IR,2,IR,1,IR,0,最高,最低,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,时钟,键盘,用户,异步通讯,COM1,硬盘,软盘,打印机,6-3,可编程中断控制器,8259A,2,)特殊全嵌套方式:(级连时用于主片)与完全嵌套方式类似,但允许高级或同级中断;同级指来自同一从片上的中断请求,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA,INT,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2, CAS,0,INTA,INT,8259A,主,从,6-3,可编程中断控制器,8259A,中断结束:,只有从片所有的中断结束时,才能向主片发中断结束命令,3,)优先级自动循环方式:初始队列,IR,0,最高,,IR,7,最低,当任何一级中断被处理后则其优先级变为最低,,IR,0,IR,1,IR,2,IR,3,IR,4,IR,5,IR,6,IR,7,IR,4,IR,5,IR,6,IR,7,IR,0,IR,1,IR,2,IR,3,中断被响应,则级别变最低,4,)优先级特殊循环方式:,编程指定初始队列最低优先级,其它依次排列,(级别最高),(级别最低),(级别最低),(级别最高),6-3,可编程中断控制器,8259A,2,、,8259A,中断结束方式,ISRi,“,1”,,表示,IRi,被响应,使,ISRi,“,0”,,表示,8259A,中断结束;,分为:自动中断结束,正常中断结束,特殊中断结束,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,ISR,1,0,ISR,中断服务寄存器,6-3,可编程中断控制器,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,ISR,1,0,1,2,1,)中断自动结束方式(,AEOI,命令方式):,第二个,INTA,的后沿使,8259A,优先级最高的,ISRi=0,。适用于无中断嵌套的系统,CPU,INTR,INTA,6-3,可编程中断控制器,8259A,2,)正常中断结束方式(,EOI,命令方式):,中断返回,IRET,之前 向,8259A,发出,中断结束,命令,分为 正常,EOI,命令和特殊,EOI,命令:,:,中断,服务,程序,MOV AL,,,20H,OUT 20H,,,AL,IRET,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,ISR,1,0,EOI,命令,6-3,可编程中断控制器,8259A,正常,EOI,命令:,使优先级最高的,ISRi,0,(最后一次响应和处理的中断),适用于普通全嵌套方式下的中断结束。,特殊,EOI,命令:,指定所清除的,ISR,位,处于从片的,8259A,没有工作在全嵌套方式时使用。,R SL EOI 0 0 L,2,L,1,L,0,OCW2,特殊方式,IR,编码,000,对应,IR,0,端,001,对应,IR,1,端,010,对应,IR,2,端,011,对应,IR,3,端,100,对应,IR,4,端,101,对应,IR,5,端,110,对应,IR,6,端,111,对应,IR,7,端,1=,正常,EOI,1=,特殊,6-3,可编程中断控制器,8259A,普通屏蔽方式:,IMRi=1,,该位被屏蔽;,IMRi=0,,且该位优先级高,则允许中断,特殊屏蔽方式:,IMRi=1,,该位被屏蔽;而置,0,的位无论优先级高低均可以中断。,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IMR,1,IMR,:,中断屏蔽寄存器,3,、屏蔽中断源的方式,:,6-3,可编程中断控制器,8259A,1,)边沿触发:,IRi,从低电平变为高电平,表示中断请求;,2,)电平触发:,IRi,为高电平,表示中断请求,,IRRi,置,1,IRR,中断请求寄存器,4,、中断触发方式,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IRR,3,)中断查询方式,:,超过,64,个中断请求信号时使用。,6-3,可编程中断控制器,8259A,初始化编程:,编写,ICW,1,ICW,4,,确定工作方式,操作方式编程:,编写,OCW,1,OCW,3,,对,8259A,控制,A,7,A,6,A,5,1 LTIM ADI SNGL IC4,T,7,T,6,T,5,T,4,T,3,X X X,S,7,S,6,S,5,S,4,S,3,S,2,S,1,S,0,0 0 0 0 0 ID,2,ID,1,ID,0,0 0 0 SFNM BUF M/S AEOI,PM,ICW,1,ICW,2,ICW,3,ICW,4,M,7,M,6,M,5,M,4,M,3,M,2,M,1,M,0,R SL EOI 0 0 L,2,L,1,L,0,0 ESMM SMM 0 1 P RR,RIS,OCW,1,OCW,2,OCW,3,6-3,可编程中断控制器,8259A,六、,8259A,编程,A,7,A,6,A,5,1 LTIM ADI SNGL IC4,ICW,1,T,7,T,6,T,5,T,4,T,3,X X X,S,7,S,6,S,5,S,4,S,3,S,2,S,1,S,0,0 0 0 0 0 ID,2,ID,1,ID,0,0 0 0 SFNM BUF M/S AEOI,PM,ICW,2,ICW,3,ICW,4,M,7,M,6,M,5,M,4,M,3,M,2,M,1,M,0,OCW,1,R SL EOI 0 0 L,2,L,1,L,0,OCW,2,0 ESMM SMM 0 1 P RR,RIS,OCW,3,A,0,DB,ICW,1,ICW,4,和,OCW,1,OCW,3,占用规定的端口地址,6-3,可编程中断控制器,8259A,A,0,=1,奇端 口,A,0,=0,偶端口,1,、初始化编程说明:,1,)按顺序写入,ICW,1,ICW,4,2,)要求,ICW,1,写,入偶数地址端口,,ICW,2,ICW,4,写入奇地址端口;,3)初始化后的状态:,清除,IMR,、,ISR,、,IRR,,,置完全嵌套方式、普通屏蔽方式、正常,EOI,;,ICW,1,ICW,2,级联?,ICW,3,需要,ICW,4,?,ICW,4,No,No,6-3,可编程中断控制器,8259A,ICW,1,芯片控制字 写入偶地址端口(,A,0,=0,),A,7,A,6,A,5,1 LTIM ADI SNGL IC4,标志位,用于,MCS80/85,1=,需要,ICW,4,0=,不需要,ICW,4,1=,单级,0=,级连,8080CALL,指令,1=,间距,4,0=,间距,8,1=,电平触发,0=,边沿触发,6-3,可编程中断控制器,8259A,ICW,2,设置中断类型码 写入奇地址端口(,A,0,=1,),T,7,T,6,T,5,T,4,T,3,X X X,任意,,8259A,自动填入其编码,中断向量地址用户确定,000IR,0,端,001 IR,1,端,010 IR,2,端,011 IR,3,端,100 IR,4,端,101 IR,5,端,110 IR,6,端,111 IR,7,端,6-3,可编程中断控制器,8259A,S7 S6 S5 S4 S3 S2 S1 S0,ICW,3,(,主片) 写入奇地址端口,(,A,0,=1,),1=IR,输入端有从片,0= IR,输入端无从片,0 0 0 0 0 ID,2,ID,1,ID,0,ICW,3,(,从片) 写入奇地址端口,(,A,0,=1,),000,接入主片,IR,0,端,001 IR,1,端,010 IR,2,端,011 IR,3,端,100 IR,4,端,101 IR,5,端,110 IR,6,端,111 IR,7,端,6-3,可编程中断控制器,8259A,0 0 0 SFNM BUF M/S AEOI,PM,ICW,4,方式控制字写入奇地址端口(,A,0,=1,),1=8086/8088,方式,0=MCS-80/85,方式,0 X =,非缓冲方式,1 0 =,缓冲方式,/,从片,1 1 =,缓冲方式,/,主片,1=,特殊全嵌套方式,0=,非特殊全嵌套方式,1=,自动,EOI,方式,0=,非自动,EOI,方式,6-3,可编程中断控制器,8259A,过程控制中需要的时候写入,,进一步修改和控制8259,A,工作方式,写入次序没有要求,每个控制字都可单独使用。,2、操作命令字(,OCW,字),及工作方式设置,6-3,可编程中断控制器,8259A,M,7,M,6,M,5,M,4,M,3,M,2,M,1,M,0,OCW,1,屏蔽字 写入奇地址端口,1=,屏蔽,IRi,中断请求,0=,允许,IRi,中断请求,R SL EOI 0 0 L,2,L,1,L,0,OCW,2,优先权循环和中断结束方式,写入偶地址端口,特殊方式,IR,编码,000,对应,IR,0,端,001,对应,IR,1,端,010,对应,IR,2,端,011,对应,IR,3,端,100,对应,IR,4,端,10 1,对应,IR,5,端,110,对应,IR,6,端,111,对应,IR,7,端,1=,正常,EOI,1=,特殊,1=,循环,6-3,可编程中断控制器,8259A,OCW,3,特殊屏蔽方式和查询方式,读,8259A,状态,写入偶地址端口,ESMM SMM 0 1 P RR,RIS,0 X =,无动作,1 0 =,读,IRR,1 1 =,读,ISR,1 =,查询命令,0 =,不查询,0 X =,无动作,1 0 =,清除特殊屏蔽,1 1 =,设置特殊屏蔽,6-3,可编程中断控制器,8259A,MOV AL, 0AH ;000010,10,B,OUT 20H, AL,IN AL, 20H,I X X X X W,2,W,1,W,0,1 =,有中断请求,0 =,无中断请求,查询字格式 读取偶数端口,IR,编码,000,对应,IR,0,端,001,对应,IR,1,端,010,对应,IR,2,端,011,对应,IR,3,端,100,对应,IR,4,端,101,对应,IR,5,端,110,对应,IR,6,端,111,对应,IR,7,端,6-3,可编程中断控制器,8259A,MOV AL, 0CH ;00001,1,00B,OUT 20H, AL,IN AL, 20H,例,6.1,微机系统使用一片,8259A,实现中断管理,将其设计为主片结构,可处理,8,个外部中断。在,I/O,地址空间中,分配给,8259A,的,I/O,端口地址为,20H,和,21H,。对,8259A,的初始化规定:边沿触发方式,非缓冲器方式,中断结束为,EOI,命令方式,中断优先级管理采用全嵌套方式。,6-3,可编程中断控制器,8259A,初始化 编程步骤,6-3,可编程中断控制器,8259A,ICW,1,ICW,2,级联?,ICW,3,需要,ICW,4,?,ICW,4,No,No,方式设置:单级全嵌套方式,边沿触发方式:,A,7,A,6,A,5,1 LTIM ADI SNGL IC4,ICW,1,芯片控制字 写入偶地址端口,标志位,用于,MCS80/85,1=,需要,ICW,4,0=,不需要,ICW,4,1=,单级,0=,级连,8080CALL,指令,1=,间距,4,0=,间距,8,1=,电平触发,0=,边沿触发,MOV AL,,,13H,;,00010011B,OUT 20H,,,AL,;,ICW,1,6-3,可编程中断控制器,8259A,T,7,T,6,T,5,T,4,T,3,X X X,ICW,2,中断向量 写入奇地址端口,8259A,根据中断输入端自动提供其编码,中断向量地址,类型码为,08H0FH,;,MOV AL,,,08H,;,00001000B,OUT 21H,,,AL,;,ICW,2,6-3,可编程中断控制器,8259A,非特殊全嵌套方式,非缓冲器方式;,MOV AL,,,01H,;,00000001B,OUT 21H,,,AL,;,ICW,4,0 0 0 SFNM BUF M/S AEOI,PM,ICW,4,方式控制字写入奇地址端口(,A,0,=1,),1=8086/8088,方式,0=MCS-80/85,方式,0 X =,非缓冲方式,1 0 =,缓冲方式,/,从片,1 1 =,缓冲方式,/,主片,1=,特殊全嵌套方式,0=,非特殊全嵌套方式,1=,自动,EOI,方式,0=,非自动,EOI,方式,6-3,可编程中断控制器,8259A,MOV AL,,,13H,OUT 20H,,,AL,;,ICW,1,MOV AL,,,08H,OUT 21H,,,AL,;,ICW,2,MOV AL,,,01H,OUT 21H,,,AL,;,ICW,4,初始化程序:,MOV AL,,,20H ;00100000B,OUT 20H,,,AL,;,OCW,2,:,当允许时钟、键盘中断时应送入,OCW,1,:,IN AL, 21H,AND AL,,,0FCH ; 11111100B,OUT 21H,,,AL,;,OCW,1,:,中断服务程序结束时向,8259A,发中断结束命令,OCW,2,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,时钟,键盘,用户,异步通讯,COM1,硬盘,软盘,打印机,6-3,可编程中断控制器,8259A,M,7,M,6,M,5,M,4,M,3,M,2,M,1,M,0,OCW,1,屏蔽字 写入奇地址端口,1=,屏蔽,IRi,中断请求,0=,允许,IRi,中断请求,IN AL, 21H,AND AL,,,0FCH,;11111100B,OUT 21H,,,AL,;,OCW,1,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,时钟,键盘,用户,异步通讯,COM1,硬盘,软盘,打印机,当允许时钟、键盘中断时应送入,OCW,1,:,6-3,可编程中断控制器,8259A,R SL EOI 0 0 L,2,L,1,L,0,OCW,2,优先权循环和中断结束方式,写入偶地址端口,特殊方式,IR,编码,000,对应,IR,0,端,001,对应,IR,1,端,010,对应,IR,2,端,011,对应,IR,3,端,100,对应,IR,4,端,10 1,对应,IR,5,端,110,对应,IR,6,端,111,对应,IR,7,端,1=,正常,EOI,1=,特殊,1=,循环,MOV AL,,,20H;00100000B,OUT 20H,,,AL,;,OCW,2,中断服务程序结束时向,8259A,发中断结束命令,OCW,2,6-3,可编程中断控制器,8259A,6-3,可编程中断控制器,8259A,七、中断程序设计:,主程序初始化,主程序,中断服务程序,当外设申请中断,,CPU,从主程序跳转到中断服务程序,保护现场、中断服务、恢复现场,向,8259A,发中断结束命令,中断返回(,IRET,指令)。,1,)设置用户的中断向量,2,)设置中断控制器,3,)对中断控制器初始化,如果系统已对中断控制器初始化,则只需使屏蔽寄存器的相应位置,0,,允许中断。,4,),CPU,开中断,开中断指令,STI,,关中断指令,CLI,保存系统中断向量,恢复系统中断向量,例,6.2,设计一个中断处理程序。要求中断请求信号以跳变方式由,IR2,提出中断请求(可为任一定时脉冲信号),当,CPU,响应,IR2,请求时,输出字符串“,8259A INTERRUPT!”,,中断,10,次,程序退出(设,8259A,的端口地址为,20H,和,21H,,中断类型号为,40H,),6-3,可编程中断控制器,8259A,;,数据段,DATA SEGMENT,MESS DB ,8259A INTERRUPT!,COUNT DB 10,DATA ENDS,;,堆栈段,STACK SEGMENT,STA DB 100H DUP(?),TOP EQU $-STA,STACK ENDS,6-3,可编程中断控制器,8259A,;,代码段,CODE SEGMENT,ASSUME CS:CODE, DS:DATA, SS:STACK,MAIN:CLI,MOV AX, DATA,MOV DS, AX,MOV AX, STACK,MOV SS, AX,MOV SP, TOP,PUSH DS,;,向量表初始化,MOV AX, 0000H,MOV DS, AX,MOV SI, 0108H,MOV AX, OFFSET INTF,MOV SI, AX,MOV AX, SEG INTF,MOV SI+2, AX,POP DS,6-3,可编程中断控制器,8259A,MOV AL, 13H,; 8259,初始化,OUT 20H, AL,MOV AL, 40H,OUT 21H, AL,MOV AL, 01H,OUT 21H, AL,IN AL, 21H,;,读,IMR,AND AL, 0FBH,OUT 21H, AL,WAIT1:STI,CMP COUNT, 0,;,判断,10,次中断是否结束,JNZ WAIT1,IN AL, 21H,OR AL, 04H,OUT 21H, AL,CLI,MOV AH, 4CH,;,结束,返回,DOS,INT 21H,6-3,可编程中断控制器,8259A,INTF PROC,PUSH AX,;,保护现场,PUSH DX,STI,MOV DX, OFFSET MESS,;,显示字符串,MOV AH, 09H,INT 21H,DEC COUNT,;,循环次数减,1,MOV AL, 20H,;,发送中断结束命令,OUT 20H, AL,POP DX,;,恢复现场,POP AX,IRTE,;,中断返回,INTF ENDP,CODE ENDS,END MAIN,级连方式编程要点:,1,、主片初始化:,ICW1ICW4,2,、对主片设置屏蔽字,OCW1,3,、设置主片,OCW2 ,定义中断结束方式,4,、从片初始化:,ICW1ICW4,5,、对从片设置屏蔽字,OCW1,6,、设置从片,OCW2 ,定义中断结束方式,7,、装入中断向量,6-3,可编程中断控制器,8259A,实验讲解,8259,中断实验,按下开关,显示器显示,7,字符,共十次,6-3,可编程中断控制器,8259A,8259A,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,开关,DB,INTR,INTA,CPU,7 7 7,显示器,系统已对,8259A,初始化,端口地址,20H,和,21H,,,中断类型码,0FH,,中断向量地址,0000,:,003CH,程序装入起始地址为,0000,:,2000H,开始的单元,IN AL, 21H,AND AL, 7FH,OUT 21H, AL,MOV CX, 000AH,A1:CMP CX, 0000H,JNZ A2,IN AL, 21H,OR AL, 80H,OUT 21H, AL,STI,HLT,A2:STI,JMP A1,CODE SEGMENT,ASSUME CS:CODE,START: CLI,PUSH DS,MOV AX, 0000H,MOV DS, AX,MOV AX, OFFSET IRQ7,MOV SI, 003CH,MOV SI, AX,MOV AX, 0000H,MOV SI, 003EH,MOV SI, AX,POP DS,6-3,可编程中断控制器,8259A,主程序初始化,设置中断矢量,IR7,取消屏蔽,;计数,10,次,主程序,IRQ7:MOV AX, 0137H,INT 10H,MOV AX, 0120H,INT 10H,DEC CX,MOV AL, 20H,OUT 20H,AL,STI,IRET,CODE ENDS,END START,6-3,可编程中断控制器,8259A,中断服务程序,入口,;显示,7,;显示 空格,;中断结束命令,;开中断,;中断返回,6.1 6.6 6.7 6.9,作业,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!