8259中断控制器
8259中断控制器实验报告
竭诚为您提供优质文档/双击可除8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。
2,掌握编写中断服务程序方法。
3,掌握初始化中断向量的方法。
二,实验设备cpu挂箱,8086cpu模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74Ls273输出一个数据,以点亮于中断源对应位置的LeD灯。
四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/o扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器Icw2决定,低3位由中断源IRx的编码自动填充,IRo~IR7的编码分别是000,001,010,011,100,101,110,111。
五,实验步骤1,实验接线cs0-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。
六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。
实验六8259单级中断控制器实验内容
实验六. 8259单级中断控制器实验内容一、8259单级中断控制器实验目的:1.掌握8259中断控制器的接口方法.2.掌握8259中断控制器的应用编程.二、实验内容:本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。
8259中断源中断类型号中断矢量表地址IR0 8 20H~23HIR1 9 24H~27HIR2 A 28H~2BHIR3 B 2CH~2FHIR4 C 30H~33HIR5 D 34H~37HIR6 E 38H~3BHIR7 F 3CH~3FH根据实验原理图5-14,8259A和8088系统总线直接相连,8259A 上连有一系统地址线A0,故8259A 有2 个端口地址,本系统中为20H、21H。
20H 用来写ICW1, 21H 用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。
OCW2、OCW3 用口地址20H,OCW1用口地址21H。
图5-14中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。
如果中断源电平信号不符规定要求则自动转到7号中断,显示"Err"。
CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示"8259Good"。
三、实验线路连接:8259A的IR3插孔和脉冲发生器单元SP插孔相连。
SP插孔初始电平置为低电平。
四、实验软件清单:见随机光盘,文件名为H8259-1.ASM五、实验步骤:1、按图5-14连好实验线路2、运行实验程序:在DVCC-8086JHN上显示"8259-1"。
3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示"8259 good"。
总结介绍8259中断控制器
8259中断控制器Overview前言8259A芯片是一个中断管理芯片,中断的来源除了来自于硬件自身的NMI中和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断的可屏蔽的。
这些中断也都通过PIC(Programmable Interrupt Controller)进行控制,并传递给CPU。
一个8259A芯片最多可接收8个中断源,但由于可以将2个或多个8259A芯片进行级连(cascade),并且最多可以级链到9个,所以最多可以接64个中断源。
如今绝大多数的PC 都拥有2个8259A,这样最多可以接收15个中断源。
通过8259A可以对单个中断源进行屏蔽。
在一个8259A芯片上有如下几个内部的寄存器:1.Interrupt Mask Register(IMR)。
2.Interrupt Request Register(IRR)。
3.In Service Register(ISR)。
IMR被用作过滤被屏蔽的中断,IRR被用作暂时放置未被进一步处理的Interrupt,当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。
除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将最高优先级的优先传递给CPU。
工作原理当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将放入IRR中。
在此中断请求不能进行下一步处理之前,它一直被放置在IRR中。
一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。
IR号越低的中断优先级级别越高,比如IR0的优先级是最高的。
8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。
实验3 8259中断控制器实验(20131104)
实验三、8259中断控制器实验1.实验目的(1).掌握中断控制器8259 IP核的工作原理,熟悉对8259的初始化设置。
(2).掌握中断服务程序的编写方法。
(3).掌握程序固化及脱机运行程序的方法。
2.实验原理8259的工作原理。
参考微机原理与接口技术相关教材。
使用中断控制器8259,首先要对8259初始化,对初始化命令字ICW1~ICW4进行设置,初始化命令字的格式如表3-1所示。
8259 - P rogrammble Intrrupt Controller图3-1 8259 可编程中断控制器表3-1 初始化命令字ICW1~ICW4数据格式:子程序的入口地址写入中断向量表。
另外要编写相关的中断服务子程序。
8259的端口地址如下:PIC_ICW1 EQU 20HPIC_ICW2 EQU 21HPIC_ICW3 EQU 21HPIC_ICW4 EQU 21Hppt 8255的端口地址是:port A 378h ;PA接2个LED数码管port B 379h ;PB接8个LED 发光二极管port C 37ah ;PC口ppt_ctrl 37bh ;控制字口ppi 8255的端口地址是:port A 060h ;PA接4×4键盘和LCD液晶模块port B 061h ;PB 最低位控制计数器2门控信号port C 062h ;PC pc.0控制ppi portA 输入使能ppt_ctrl 063h ;控制字口定时器/计数器8254的端口地址:PIT_CNT0 EQU 40HPIT_CNT1 EQU 41HPIT_CNT2 EQU 42HPIT_CTRL EQU 43H3.实验内容(1)中断计数显示程序本实验主要验证中断控制器8259的中断控制功能。
中断请求信号由按键产生,该按键向8259的IR1发出中断请求,每中断一次,寄存器加1计数,并通过8255的PA口外接的数码管显示出中断的次数。
PA 口输出使能由PC口最低位控制。
8259单级中断控制器试验[1]
实验5 8259单级中断控制器试验一、实验目的:1.掌握8259中断控制器的接口方法2.掌握8259中断控制器的应用编程二、实验内容利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。
要求:主程序在高四位七段码上显示8259,中断服务程序对中断次数计数,并在最低位七段码上显示,中断次数满5次后,显示输出“good”。
中断采用边沿触发,单片,中断类型08H—0FH,工作在非缓冲模式,非AEOI,普通全嵌套。
IR0中断类型好为8 三、实验连接图四、实验程序框图主程序中断服务程序五、实验步骤1.连接硬件电路(1)8259的INT接8088的INTR;(2)8259的INTA接8088的INTA;(3)接8259的IR3;(4)8259的CS接EX1;(5)JX4连JX17。
2. 编写源程序,编译装载并执行。
3. 拨动AN开关按钮,按满10次显示good。
4.若要求脉冲信号接8259的IR4,则程序该如何修改?五、实验报告整理完整的实验程序。
CODE SEGMENT ;H8259.ASMASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7PA EQU 0FF21H ;字位口PB EQU 0FF22H ;字形口PC EQU 0FF23H ;键入口ORG 12D0HSTART: JMP STA R T0BUF DB ?,?,?,?,?,?intcnt db ?data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTAR T0: CLDCA LL BUF1CA LL WRINTVER ;WRITE INTRRUPTMOV A L,13HMOV DX,INTPORT1OUT DX,A LMOV A L,08HMOV DX,INTPORT2OUT DX,A LMOV A L,09HOUT DX,A LMOV A L,0F7HOUT DX,A LMOV intcnt,01H ;TIME=1STIWATING: CA LL DISP ;DISP 8259-1JMP WATINGWRINTVER: MOV AX,0HMOV ES,AXMOV DI,002CHLEA A X,INTQ3STOSWMOV AX,0000hSTOSWMOV DI,003CHLEA A X,INTQ7STOSWMOV AX,0000hSTOSWRETINTREEUP3: CLIMOV A L,INTCNTCALL CONVERSMOV BX,OFFSET BUF ;077BHMOV A L,10HMOV CX,05HINTRE0: MOV [BX],A LINC BXLOOP INTRE0MOV A L,20HMOV DX,INTPOR T1OUT DX,A LADD INTCNT,01HCMP INTCNT,06HJNA INTRE2CALL BUF2 ;DISP:good INTRE1: CA LL DISPJMP INTRE1CONVERS: AND A L,0FHMOV BX,offset buf ;077A HMOV [BX+5],A LRETINTRE2: MOV A L,20HMOV DX,INTPOR T1OUT DX,A LSTIIRETINTREEUP7: CLIMOV A L,20HMOV DX,INTPORT1OUT DX,A Lcall buf3 ;disp:errINTRE3: CA LL DISPJMP INTRE3DISP: MOV A L,0FFH ;00HMOV DX,PAOUT DX,A LMOV CL,0DFHMOV BX,OFFSET BUF DIS1: MOV A L,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV A L,[BX]POP BXMOV DX,PBOUT DX,A LMOV AL,CLMOV DX,PAOUT DX,A LPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV A L,0FFHMOV DX,PBOUT DX,A LRETBUF1: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,09HMOV BUF+4,17HMOV BUF+5,01HRETBUF2: MOV BUF,09HMOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0dHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,0eHMOV BUF+1,18HMOV BUF+2,18HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRETCODE ENDSEND STA R T。
8259中断控制实验报告
8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。
二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。
三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。
8259具有级联功能,可以通过级联实现更多的设备中断管理。
2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。
中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。
中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。
3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。
中断屏蔽寄存器用于屏蔽或打开特定中断请求。
中断请求寄存器用于存储当前的中断请求状态。
中断服务地址寄存器用于存储中断向量的地址。
四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。
2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。
3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。
4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。
五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。
在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。
这表明我们成功地完成了8259中断控制实验。
8259中断控制器的命令字与片内选址
2. 8259A的操作命令字OCW
A0 OCW1 D7 D6 D5 D4 D3 D2 D1 D0
1
M7
M6
M5
M4
M3
M2
M1
M0
1=屏蔽
0=开放
OCW1的意义:实现对中断源的屏蔽与开放。 反映了软件对中断的控制特征,可以在程序的任何部分使用。
A0 OCW2 0 D7 R 优先级 轮换 D6 SL 指定中 断等级 D5 EOI 中断 结束 D4 0 D3 0 D2 L2 D1 L1 D0 L0
A0 ICW4 1
D7 0
D6 0
D5 0
D4 SFNM
特定完 全嵌套
D3 BUF
D2
D1
D0 PM
M/S AEOI
反映了硬件设 计的特征。
缓冲 缓冲方 自动结 16位以 方式 式下主 束方式 上CPU 从片
AEOI=1为自动结束方式,适用于无中断嵌套的中断系统 AEOI=0为非自动结束方式,适用于有中断嵌套的中断系统 分析ICW1-ICW4可知: ICW在8259A使用前必须设置。 初始化字ICW反应的是硬件设计和系统设计的特征。 ICW2-ICW4的片内地址A0=1,8259如何识别它们呢? 答案:ICW1-ICW4的初始化一定要按次序进行,且:基 本设置是ICW1-ICW2,是否要设置ICW3-ICW4取决于ICW1 的设置。
A0
主片ICW3
D7
D6
D5
D4
D3
ቤተ መጻሕፍቲ ባይዱD2
D1
D0
1
S7
第4章 8259中断控制器
② 将当前中断服务寄存器ISR中的相应位置1,为中断优先级裁 决器以后的工作提供判断依据。 ③将IRR寄存器中的相应位(过程2设置的位)清0,以接受新请求
6)
7)
18
8)第二个负脉冲到达时,8259A完成下列动作: ① 将中断类型码寄存器中的内容 ICW2 送到数 据总 线的 D7~D0,CPU 将此作为中断类型码。 ② 如果ICW4(方式控制字)中的中断自动结束位为1 (即采用自动中断结束方式)时,那么,在第二 个 INTA 脉冲结束时,8259A会将第一个 INTA 脉冲 到来时设置的当前中断服务寄存器ISR的相应位 清0,表明中断服务已经结束。若为非自动中断结 束方式,则CPU执行完中断处理功能后,向CPU 发送中断结束命令,8259A接收到中断结束命令 后将当前ISR的对应位清0。
中断处理
EOI
置ISRi=0
16
8259A对外部中断请求的处理过程如下:
1) 中断请求寄存器IRR接收外部的中断请求。 2) 接收到某个中断请求后,IRR寄存器中对应位置1,
对该中断请求作锁存。
3) 根据中断屏蔽寄存器IMR(即OCW1)中的对应位决
定是否让此请求通过。IMR中的对应位为“0”,则 表示对此中断未加屏蔽,允许进入中断优先级裁决器 作裁决;反之,则对它进行封锁,不让其进入中断优 先级裁决器。
─
当CPU响应中断进入中断子程序后,如果新的中断请 求优先级高于当前正在处理的中断,则中断控制器会 让此中断到达CPU的INTR端,实现中断嵌套;反之, 对低级的中断则给予禁止。
2
8259A的工作特点:
可编程中断控制器8259
电子科技大学
微机系统原理及接口技术应用
9.4.1 8259的引脚和内部结构 (五)
用于多片级连的信号 SP/EN:主从设备选择控制信号/使能缓冲 信号。设臵为非缓冲模式时,是作输入信 号线,用以规定是主片还是从片;设臵为 缓冲模式时,做输出线,用作数据缓冲器 的收/发传送方向的控制信号。 CAS0~CAS2:级联控制线。用于连接主、 从片以完成多个8259间的信息传送。
电子科技大学
微机系统原理及接口技术应用
8259的内部结构 (五)
(5)优先权处理器PR 用于确定IRR中所有未被屏蔽的中断 请求位的优先级,在CPU发出第一个负脉 冲时,将具有最高优先级的申请位存入服 务状态寄存器ISR中相应的位臵。若出现多 级中断,PR还负责将IRR中的最高优先级 和ISR中正在服务的中断的优先级作比较, 以确定是否向CPU发出中断请求。
电子科技大学
微机系统原理及接口技术应用
8259的引脚和内部结构
引脚信号 内部功能 工作过程
电子科技大学
微机系统原理及接口技术应用
9.4.1 8259的引脚和内部结构 (一)
1.8259的引脚信号
与微处理器相连的信号 与外部设备相连的信号 用于多片级连的信号
电子科技大学
微机系统原理及接口技术应用
电子科技大学
微机系统原理及接口技术应用
8259的工作过程 (三)
CPU在中断响应周期中向8259回送两个 负脉冲。8259的控制逻辑在接收到第一个 负脉冲后完成下列任务:①禁止IRR不再 受IR7~IR0信号的再次变化的影响(直到第 二个结束);②将优先权处理器PR确定的 最高优先级的中断请求信号存入服务状态 寄存器ISR;③将中断请求寄存器IRR的相 应位复位。8259的控制逻辑在接收到第二 个负脉冲后,将寄存器ICW2的当前内容通 过数据总线D0~D7送至CPU。
8259中断控制器
8259中断控制器是一个集成电路芯片, 8259中断控制器是一个集成电路芯片,它将中断接口与 中断控制器是一个集成电路芯片 优先级判断等功能汇集于身,常用于微型机系统. 优先级判断等功能汇集于身,常用于微型机系统.其内部 结构如下页图所示. 结构如下页图所示. 8位中断请求寄存器(IR)接受8个外部设备送来的中断请 位中断请求寄存器(IR)接受 接受8 求,每一位对应一个设备. 每一位对应一个设备. 中断请求寄存器的各位送入优先权判断器,根据中断屏蔽 中断请求寄存器的各位送入优先权判断器, 寄存器(IM)各位的状态来决定最高优先级的中断请求 各位的状态来决定最高优先级的中断请求, 寄存器(IM)各位的状态来决定最高优先级的中断请求,并 将各位的状态送入中断状态寄存器(IS). IS保存着判优 将各位的状态送入中断状态寄存器(IS). IS保存着判优 结果.由控制逻辑向CPU发出中断请求信号 发出中断请求信号INT, 结果.由控制逻辑向CPU发出中断请求信号INT,并接受 CPU的中断响应信号 CPU的中断响应信号INTA. 的中断响应信号INTA. 数据缓冲器用于保存CPU内部总线与系统数据总线之间进 数据缓冲器用于保存CPU内部总线与系统数据总线之间进 行传送的数据. 写逻辑决定数据传送的方向, 行传送的数据.读/写逻辑决定数据传送的方向,其中为 读控制,为写控制,为设备选择,A0为I/O端口识别 端口识别. 读控制,为写控制,为设备选择,A0为I/O端口识别.
详细分类的话,pentium共有 共有256种中断和异常 种中断和异常。 详细分类的话,pentium共有256种中断和异常。每种中 断给予一个编号,称为中断向量号(0—255), 断给予一个编号,称为中断向量号(0—255),以便发生 中断时,程序转向相应的中断服务子程序入口地址。 中断时,程序转向相应的中断服务子程序入口地址。 当有一个以上的异常或中断发生时,CPU以一个预先确 当有一个以上的异常或中断发生时,CPU以一个预先确 定的优先顺序为它们先后进行服务。中断优先级分为5 定的优先顺序为它们先后进行服务。中断优先级分为5级。 异常中断的优先级高于外部中断的级,这是因为异常中断 异常中断的优先级高于外部中断的级, 发生在取一条指令或译码一条指令或执行一条指令时出现 故障的情况下,情况更为紧急。 故障的情况下,情况更为紧急。 2.中断服务子程序进入过程 中断服务子程序进入过程 中断服务子程序的入口地址信息存于中断向量号检索表 实模式为中断向量表IVT, 内。实模式为中断向量表IVT,保护模式为中断描述符表 IDT。 IDT。 CPU识别中断类型取得中断向量号的途径有三种: 识别中断类型取得中断向量号的途径有三种: (1)指令给出 如软件中断指令INT 中的n (1)指令给出,如软件中断指令INT n 中的n即为中断向 指令给出, 量号。 量号。
8259中断控制实验
深圳大学实验报告课程名称:实验项目名称:学院:专业:指导教师:报告人: 学号: 班级:实验时间:实验报告提交时间:教务部制一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以.PUS.DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用PO.D.指令返回现场.这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可了.初始化的时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入始化字.8259有四个初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对8259的操作命令字的寻址是通过8259的地址线A0和某些数据位结合来进行的.其初始化控制字和控制命令辽的赋值由我已经在注释中给出.另外,在初始化程序中我们用了STI这条指令打开中断,那么进入MIR7中断程中,我们为什么又执行STI这条指令呢,会不会重复了?经过实验,我们知道这条指令并不是没用的,如果少后面这条STI指令,实验中我们会发现,当按一次KK1开关的时候,屏幕会显示一个字符7,但是,再按KK1的时候,就没有反应了,起初并不知道怎么解释这个现象,后来才知道8086CPU执行完一次中断后,会自动将相应的中断位屏蔽,所以,如果我们想按一次KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET指令是短信返回指令,而IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU又是怎样进入中断子程序的呢?这就需要我们正确地设置中向量表的了.实验板上主中断序号7可用,也就是我们得利用3CH-3FH这矢量地址.所以在程序开始的候,就采用MO.AX.OFFSE.MIR7,MO.SI.003CH,MO.[SI].AX这三句来获得偏移地址IP,接着高址位置又用MO.AX.CS,MO.SI.003EH,MO.[SI].AX这三条指令来获得CS.CPU根据CS,IP 就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MO.AL.20. OU.20H.AL以及IRET这三条指令.是为了说明这是正常的EOI, 可以通知8259A此次服务结束.深圳大学学生实验报告用纸注: 1.报告内的项目或内容设置, 可根据实际情况加以调整和补充。
8259可编程的中断控制器
82598259A是一个可编程的中断控制器,应用在实时的、以中断方式进行监控的计算机系统中。
用一片8259A可以管理8个等级的中断申请。
并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。
8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进行改变或重新组织。
这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断结构,用来实现优先管理、中断屏蔽以及自动中断矢量转移。
它几乎可以适合于任何一种中断控制的结构,因而得到了广泛的应用。
1 引脚图8259A为28脚双列直插式封装的器件。
2 内部结构其工作过程如下:第一步:当中断请求线(IR0~IR7)上有信号输入时,就把中断请求寄存器IRR相应的位置1。
第二步:当IRR的一位置1后,就会与IMR中相应的屏蔽位进行比较,如该屏蔽位为0,则请求被发送给优先级分析器;如该屏蔽位为1,则封锁该请求。
第三步:当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU 发中断申请,INT脚变高(INT联到8086的INTR)。
第四步:CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。
在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位”IF置位或复位,可以做到接受或不理睬在INTR上的中断申请。
第五步:假定CPU中的IF标志为1,则CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除IF标志,关闭了中断。
再将代码段寄存器和指令指针也入栈(这是为了从中断服务程序返回),然后CPU发出第二个 INTA脉冲通知8259A,说明8086已经允许了它的中断请求。
若8086用于“最小方式”,则INTA脉冲信号为8086 INTA引脚上的信号;若8086用于“最大方式”时,则8086 LOCK脚在中断响应序列执行期间变为低电平。
8259中断控制器实验的实验报告
8259中断控制器实验的实验报告实验报告:8259中断控制器实验一、实验目的本实验的目的是通过对8259中断控制器的实验,掌握和理解8259中断控制器的原理、工作原理和使用方法。
通过实验能够进一步了解中断控制器的中断分配和中断处理等功能。
同时还能够通过实验,对中断优先级以及中断的屏蔽和响应进行深入了解。
二、实验原理1.8259中断控制器简介8259中断控制器是用于管理和控制多个硬件设备的中断请求的重要芯片。
它是一个具有8个中断请求输入和8个中断向CPU输出的优先级解码器。
中断控制器主要由两个部分组成:中断请求器部分和中断控制器部分。
中断请求器部分用于产生中断请求信号,而中断控制器部分用于优先级解码和中断分配。
2.8259中断控制器的工作原理8259中断控制器可以管理多个硬件设备的中断请求,同时对中断信号进行优先级判断和派发给CPU进行相应处理。
当一些硬件设备发生中断时,会发送中断请求信号给8259中断控制器,然后8259将根据中断请求的优先级判断是否屏蔽或者响应该中断请求。
3.8259中断控制器的使用方法在使用8259中断控制器时,首先需要设置中断控制器的工作模式和中断请求的优先级,然后对中断控制器的屏蔽和响应进行相应的配置。
使用中断控制器时,还需要对中断服务程序进行适当的编程,以实现中断的处理逻辑。
三、实验步骤1.实验前的准备工作(1)准备实验所需的开发板和8259中断控制器。
(2)将8259中断控制器与相应的硬件设备连接。
(3)准备PC机和开发板的通信线缆。
2.8259中断控制器的设置和初始化(1)通过编程方式将8259中断控制器设置为特定的工作模式。
(2)设置中断请求(IRQ)的优先级。
3.中断服务程序的编写(1)根据需求编写中断服务程序,即中断处理逻辑。
(2)将中断服务程序与8259中断控制器的相应中断请求进行关联。
4.实验结果的观察和分析(1)观察测试硬件设备的输出结果。
(2)分析实验结果,判断是否成功实现中断控制和处理。
8259中断控制器实验
实验五、8259中断控制器实验和作业实验题目:8259中断控制器点亮LED灯实验一、实验目的了解8259中断控制器的基本使用,掌握中断程序编程技术。
二、实验内容使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,通过8255 PC0驱动LED交替亮和灭,硬件连接如题图所示。
基础三题图、8259中断控制器实验连线示意图三、实验提示MIR5是接到PC的主8259A中断控制器的IR5端,因此不需要对8259A初始化(ICW1-ICW4),但要进行设置中断矢量和打开中断等操作;注意:TPC实验平台中采用的是非自动结束,则需要在中断结束前(中断服务程序的最后)发中断结束命令。
另外、写入中断屏蔽字应采用“读—修改—写”过程,如下所述:IN AL,21HAND AL,0DFH软件实现流程图.MODEL SMALL.386CODE SEGMENTASSUME CS:CODESTART: MOV DX,203HMOV AL,90H ;设置8255控制字,OUT DX,ALMOV CL,0CLI ;关386 CPU中断;写入中断屏蔽字OCW1时,采用读取-修改-写入的顺序IN AL,21HAND AL,11011111B ;MASK BYTEOUT 21H,AL;将中断入口地址写入中断向量表PUSH DSMOV BX,0MOV DS,BXLEA AX,CS:INT_PROC ;将中断程序的入口地址给AXMOV BX,5 ;N=IRX 中断IR5MOV SI,30H ;BASE =30H 基址ADD SI,BX;基址+IR5=中断类型号为35HSAL SI,2 ; 中断类型号为35H X 4=中断向量存于SIMOV DS:[SI],AX ;将入口地址AX送到中断向量表中PUSH CSPOP AXMOV DS:[SI+2],AXPOP DSSTI ;开386 CPU中断LLL: JMP LLLINT_PROC PROC FARPUSH AXCMP CL,0JZ SET0MOV DX,203H ;PC0=1MOV AL,01OUT DX,ALMOV CL,0JMP ENDINTSET0: MOV DX,203H ;PC0=0MOV AL,00OUT DX,ALMOV CL,1ENDINT:MOV AL,20HOUT 20H,ALPOP AXSTIIRETINT_PROC ENDPCODE ENDSEND START。
接口技术实验-8259中断控制器
接口技术实验报告实验四:8259中断控制器实验一、实验目的1、掌握8259中断控制器的接口方法。
2、掌握8259中断控制器的应用编程。
二、实验设备微机原理实验箱、8086CPU模块。
三、实验内容用脉冲发生器作为中断源,每按一次脉冲发生器的按键即产生一次中断。
在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED。
四、实验原理介绍8259中断控制器电路本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
电平开关电路、简单I/O口扩展电路参看实验一。
8259中断控制器电路:如上图所示,其中:CS是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。
DBUS是系统8位数据总线。
INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。
五、实验步骤1.断电连接导线,连好实验线路图。
1)8259的INT连8088的INTR;2)8259的INTA连8088的INTA;3)“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;4)8259的CS端接FF80H孔,74LS273的CS端接FF90H孔。
5)Q0~Q7 L1~L82.编译调试程序3.全速运行,观察实验现象六、实验提示1、8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
2、8086的中断系统是向量中断方式。
内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。
不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。
实验三 8259 中断控制器实验
实验三8259 中断控制器实验一、实验目的1.掌握8259 中断控制器与微机的接口方法。
2.掌握8259 中断控制器的编程。
二、实验内容1.硬件线路原理图如图。
2.编程提示(1) 8259 芯片介绍8259 是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。
单块8259 可编程实现8 级中断管理,并可选择优先模式及中断请求方式。
另外由多片8259 级联,可构成多达64 级的矢量中断系统。
(2) 程序方框图主程序IR3 中断服务程序IR7 中断服务程序(3)初始化编程:由CPU向8259A送初始化命令字ICW。
在8259A开始正常工作前,必须写初始化命令字使其处于开始状态。
操作命令编程:由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根据需要在程序的任何地方写入。
(4 Array 4. 硬件连线及实验结果(1) 8259 的CS6插孔连线EX1插孔。
(2) 8259 的INT 插孔连线INTR 插孔。
(3) 8259 的INTA 插孔连线INTA 插孔。
(4) 8259 的IR 3插孔连线插孔。
(5) D 0~7数据线用扁平电缆连接数据总线。
本实验用 3 号中断源IR3,与插孔线连,中断方式为边沿触发方式。
程序每按一次AN 键产生一次中断,满5次中断,显示“8259 Good”。
如果中断触发信号不符号要求,则自动转到7 号中断,显示“Err”,以示出错。
例 IBM PC/XT 系统初始化中,设ICW1=13H ,表示系统中8259A 为单片方式,上升沿触发,要求设置ICW4。
指令为: MOV AL ,13H OUT 20H ,AL中断类型号基值,即IR0的类型号。
其中低3位初始时为0,高5位由用户设定。
工作过程中,低3位值由IR0~IR7中响应哪级中断(对应000~111)来确定。
在IBM PC/XT 系统中,T7~T3=00001,所以对应8个中断的类型号为08H~0FH 。
8259中断控制实验报告
8259中断控制实验一.实验目的1. 掌握8259 中断控制器的工作原理。
2. 掌握系统总线上IR1,IR2 中断请求的应用编程方法。
二.实验设备IA-32 架构的微机系统及应用教学平台一套。
三.实验原理3.1 中断控制器8259简介中断控制器8259 是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。
8259 的内部结构和引脚如图1 所示。
图 1 8259 内部结构和引脚图8259 的命令共有7 个,一类是初始化命令字,另一类是操作命令。
8259 的编程就是根据应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4 各命令字格式如图2所示,OCW1-OCW3各命令字格式如图3 所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259 内部寄存器的读出命令。
图 2(a) ICW1格式图 2(b) ICW2格式图 2(c) ICW3格式图 2(d) ICW4格式图 3 OCW 命令字格式3.2 8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表1所示。
表 1 8259 寄存器及命令的访问控制3.3 EPC 微机系统中的8259在80x86 系列EPC 微机系统中,系统中包含了两片8259 中断控制器,经级连可以管理15 级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表2 示。
8259中断控制实验
8259中断控制实验8259是一种可编程中断控制器,它可以为CPU管理多个中断源,并将中断请求转换为优先级和中断屏蔽,从而保证CPU不会重复处理中断。
8259的工作原理是,由CPU发送中断请求信号给8259,8259从中断请求中选择最高优先级的请求并将其向CPU发出中断请求信号。
CPU接收到中断请求后,将中断处理程序存入中断向量表,并调用处理程序。
本实验的目的是熟悉8259的工作原理和接口,并学会使用它管理系统中的中断源。
实验设备:- 一台基于x86架构的计算机- 一块8259可编程中断控制器芯片- 一块串口编程板- 一根串口线实验步骤:1. 连接8259芯片到计算机,将8259连接到计算机的I/O总线上,连接好中断请求信号线和CPU的中断引脚INT引脚,将8259的中断输出线连接到CPU的从INT1到INT7的引脚,其中INT0引脚作为级联输出使用。
2. 配置8259芯片,使用8259的控制寄存器对中断源进行配置,包括优先级、中断屏蔽和中断触发方式等。
3. 编写8259驱动程序,使用8259的接口函数实现中断源的管理,包括中断请求、屏蔽、解除屏蔽和中断处理等操作。
4. 进行实验测试,编写测试程序,模拟多个中断源同时发送中断请求信号,测试8259是否可以正确选择最高优先级的中断源,并将中断请求信号发送给CPU。
5. 进行串口输出测试,使用串口编程板连接计算机的串口,编写串口中断程序,在数据接收时产生中断请求,测试8259是否可以正确处理串口中断请求,并将数据传输到CPU。
实验注意事项:1. 在配置8259时,需注意优先级和中断屏蔽的设置,以确保高优先级的中断源优先被处理,同时避免中断屏蔽导致的延迟。
2. 8259在进行中断信号转换时,需要与CPU进行同步,因此在编写驱动程序时,需注意中断处理的时机和中断向量表的设置。
3. 串口编程中使用的是异步通信方式,需要注意数据传输的时序和缓存管理,避免数据丢失或重复传输的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 8259的功能 对PC机进行中断管理
① 一片8259 有8个中断输入脚,每个中断输入脚可接 入中断源或再接入一片8259。
…
INT
8259 IRQ0
IRQ1
IRQ2
至CPU
IRQ3
的INTR
INT
IRQ4 IRQ5
IRQ6
IRQ7
INT
…
…
IRQ0~IRQ7 IRQ0~IRQ7
ICW1
×××
1 LTIM × SNGL ICW4
ICW2
D7 D6 D5 D4 D3 × × ×
中断类型码的高5位
中断类型码的低3位
是否写ICW4? 0: 是; 1: 否
② 每个中断源均可屏蔽或开放。 ③ 可向CPU提供中断类型号。 ④ 可按多种方式工作,通过写入的控制字决定。
D0~D7
RD WR A0 CS
CAS0 CAS1 CAS2 SP/EN
内部总线
数据 缓冲
中断控制
INT 向CPU发送中断请求 INTA CPU收到中断请求的回应
读写 逻辑
中断服务 寄存器
ISR
A0=1 级连设置寄存器
ICW3(写)
A0=1 中断模式寄存器
ICW4(写)
初始化命令 寄存器组
PC/XT机中,8259与CPU的连接
D0~D7 INTR
AO
A1~A9
IO/M
IOR IOW
D0~D7 INT INTA A0
地址 20H 译码
CS
RD WR
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
中断优 先权管
理
中断请 求寄存 器 IRR
…
IRQ0 IRQ1
IRQ7
级连 缓冲
A0=1 中断屏蔽寄存器OCW1(写);IMR(读)
A0=0 OCW2(写);ISR(读); IRR(读)
A0=0
OCW3(写)
操作命令 寄存器组
A0=0 初始化设置寄存器 ICW1(写)
A0=1 中断类型号设置寄存器 ICW2(写)
系统时钟 键盘COM1 COM2 Fra bibliotek盘 软盘 打印机
例:向8259的中断屏蔽寄存器IMR写入控制命令,使系统 时钟、键盘、硬盘、软盘开放中断:
MOV AL,01100011B OUT 20H,AL
或: outportb(0x20,0x63);
(1) 8259的初始化设置
中断请求的作用是方否式级。连?是否写ICW4? 0: 上升沿有效0:;级1:连;高10电:平否单有;片效1:是