8259中断控制实验

合集下载

8259中断控制实验

8259中断控制实验

8259中断控制实验1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。

2 实验设备PC机一台,TD-PITE实验装置一套。

3 实验内容及步骤1. 中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。

从片的INT连接到主片的IR2信号上构成两片8259的级联。

在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

8259的内部连接及外部管脚引出如图2-3-1所示。

INTR串口0MIR6MIR7SIR1图2-3-1 8259内部连续及外部管脚引出图表2-3-1列出了中断控制单元的寄存器相关信息。

表2-3-1 ICU寄存器列表初始化命令字1寄存器(ICW1)说明见图2-3-2所示。

ICW1图2-3-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图2-3-3所示。

7ICW2中断向量地址图2-3-3 初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图2-3-4,从片见图2-3-5。

7ICW3(主片)图2-3-4主片初始化命令字3寄存器7ICW3(从片)图2-3-5 从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图2-3-6。

7ICW4图2-3-6 初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图2-3-7。

OCW1图2-3-7 操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图2-3-8所示。

7OCW2图2-3-8 操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图2-3-9所示。

7OCW3图2-3-9 操作命令字3寄存器查询状态字(POLL )说明如图2-3-10所示。

微机实验三8259中断控制实验

微机实验三8259中断控制实验

姓名:学号:2.3 8259中断控制实验2.3.1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。

2.3.2 实验设备PC机一台,TD-PITE实验装置一套。

2.3.3 实验内容及步骤1、8259单中断实验8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

图2-3-11 8259单中断实验接线图实验步骤(1)按图2-3-11连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。

实验结果分析主程序运行过程中遇到中断请求,进而响应中断请求,即在屏幕上输出字符“7”。

实验流程图2、主8259 多中断实验实验步骤:(1)按上图所示完成实验电路连线。

KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR6上。

(2)打开PC机,运行Wmd86软件,进入Wmd86集成开发环境。

(3)对程序进行编译、连接、加载和运行,并验证实验程序的正确性。

(4)分别按动单次脉冲开关KK1+或KK2+时,显示屏上会显示什么信息,将屏幕截图填在实验报告数据处理分析部分的表2中。

(5)如果同时按KK1+和KK2+时,显示屏上会显示什么信息,并在实验结论对实验结果进行解释。

流程图中断请求分析与实验一相比,中断向量表多存储了M6。

主程序在运行过程中接到中断请求,于是响应中断,在处理中断程序的过程中再次接到中断请求,于是再次响应中断,处理中断程序。

处理完后逐层返回。

3. 8259级联实验实验接线图如图2-3-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。

编写程序。

实验步骤(1)按图2-3-12连接实验线路;(2)输入程序,编译、链接无误后装入系统;(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性; (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。

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中断实验

共享知识分享快乐XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下3个子实验:(1)单中断请求实验:利用系统总线上中断请求信号MIR7,设计一个单一中断请求实验;(2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优先级应用实验,观察8253对中断优先级的控制;(3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用实验。

1.2 实验要求本次实验中三个子实验的实验要求如下:(1)单中断请求实验:单脉冲KK1+与主片8259的IR7相连。

每按KK1+,进入一次中断,输出7;(2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。

每当KK1+按下时显示“7”,每当KK2+按下显示“6”;(3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。

每当KK1+按下时显示“M7”,每当KK2+按下显示“S1”。

二、实验原理与硬件连线2.1 实验原理(1)中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。

从片的INT连接到主片的IR2信号上构成两片8259的级联。

在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

8259的内部连接及外部管脚引出如图1-1:INTR串口0MIR6MIR7SIR1图1-1 8259内部连续及外部管脚引出图表1-1列出了中断控制单元的寄存器相关信息。

表1-1 ICU寄存器列表初始化命令字1寄存器(ICW1)说明见图1-2所示。

7ICW1图1-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图1-3所示。

实验3 8259中断控制器实验(20131104)

实验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中断控制实验报告

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中断控制实验

8259中断控制实验
主片:IRQ0——T/C0
IRQ1——键盘中断
IRQ2——8259从片
IRQ3——串口2
IRQ4——串口1
IRQ5——并行口2
IRQ6——软盘控制器
IRQ7——并行口1
从片:IRQ8——实时时钟中断
IRQ9——RE—DTNECT
IRQA——保留
IRQB——保留
IRQC——保留
IRQD——协处理器
IRQE——硬盘控制器
在dos中输入命令lab8运行程序
显示“program run!Exit after interrupt 40 times”
按键
产生第一次中断,在屏幕上输出“This is SXL_100 interrupt”
按键五次,在屏幕上进行了5次输出
再一次按键,在屏幕上进行了第七次输出
再一次按键,在屏幕上进行了第八次输出
in al,dx ;读入9052中断状态
mov irq_mark,al ;保存9052中断状态
or al,5bh
out dx,al;开放9052中断
;中断向量的保存和设置
mov ah,35h;取72h号(中断类型号)中断向量保存在ES:BX
mov al,int_vect
int 21h
mov ax,es
五、源程序、程序框图、程序函数及过程介绍
程序框图
源程序
data segment
int_vect equ 71h
ioport_0 equ 0dc80h
int_time db 00h ;计数器
csreg dw ?
ipreg dw ?
irq_mark db ? ;9052屏蔽状态
int_mark db ? ;8259屏蔽寄存器状态

8259中断控制器实验的实验报告

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中断控制器实验和作业实验题目: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。

8259A中断实验报告

8259A中断实验报告

实验十一8259A中断实验一、实验目的1.学习8086/8088与8259A的连接与控制方法, 掌握其工作原理。

2、完成程序设计题, 学会编写中断服务程序。

二、实验原理8259A是一种可编程序中断控制器, 与8088/86微机兼容, 能处理8级向量优先权中断, 亦可以通过级联构成64级向量优先权中断系统。

具有可编程控制中断方式, 并能分别屏蔽各个中断请求。

通过4个初始化命令字(ICW1——ICW4)及3个操作命令字(OCW1——OCW3)使用8259A可编程序中断控制器。

三、实验内容用8066/86控制8259可编程中断控制器, 实现对外部中断的响应和处理。

要求程序中对每次中断进行计数, 并将计数结果用8255的PA口输出到LED显示。

四、实验方法与步骤(1)根据要求编写程序mode equ 82hpa8255 equ 8000hctl8255 equ 8003hicw1 equ 00010011bicw2 equ 00100000bicw4 equ 00000001bocw1 equ 11111110bcs8259a equ 09000hcs8259b equ 09001hdata segmentcnt db 0data endscode segmentassume cs:code,ds:dataienter proc nearpush axpush dxmov dx,pa8255inc cntmov al ,cntout dx,almov dx,cs9259amov al,20hout dx,alpop dxpop axiretienter endpiinit proc nearmov dx ,cs8259amov al ,icw1out dx ,almov dx, cs8259bmov al,icw2out dx,almov al,icw4out dx,almov al,ocw1out dx,alretiinit endpstart proc nearmov dx,ctl8255mov al,modeout dx,alclimov ax,0mov ds,axmov bx,4*icw2mov ax,codeshl ax,4add ax,offset ientermov [bx],axmov ax,0inc bxinc bxmov [bx],axcall iinitmov ax,datamov ds,axmov cnt,0mov al,cntmov dx,pa8255out dx,alstilp:nopjmp lpstart endpcode endsend start(2)根据电路连线。

接口技术实验-8259中断控制器

接口技术实验-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中断控制器实验

实验六 8259中断控制器实验实验项目名称:8259中断控制器实验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1、熟悉并且理解中断技术,体验中断技术对于实时的可编程系统的意义。

2、掌握中断技术所涉及的线路连接、初始化、优先级、屏蔽、中断响应、转入中断服务程序、中断结束、反复接收中断的过程与参数设置,尤其是硬件处理与软件处理的交汇点——中断向量表。

3、掌握中断控制各参数的初始化和更新方法。

二、实验内容和要求1、用单脉冲发生器(P0)作中断源,每按一次产生一次中断申请,改变一个发光二极管的亮灭状态。

如果没有中断源,则不产生中断,发光二极管的亮灭状态保持不变。

2、实验原理图三、实验主要仪器设备和材料1、EL实验箱2、计算机3、中断控制板四、实验方法、步骤及结果测试1、将中断控制板插入EL实验箱左上角的40针插座上;2、将单脉冲发生器的输出P0与8259A中断控制板的中断源IR0相连;3、将8259中断控制板的片选信号CS59与CS7相连;4、从CS0~CS7片选信号中选一个信号CS1(04b0h)与输出接口芯片74LS273的片选信号CSU8相连,74LS273的输出信号SO0接一个发光二极管L1;5、编程并调试,在中断服务程序设置断点,按下PUL键、产生单脉冲后,能够观察到发光二极管亮灭控制器的状态翻转,以及相应的发光二极管的亮灭;6、实验源程序(实验程序名T4.ASM)Assume cs:codeCode segment publicOrg 100hStart:Mov dx,3f0h ;8259初始化Mov al,13h ;ICW1设置Out dx,alMov dx,3f2hMov al,80hOut dx,al ;ICW2设置中断类型为80HMov al,03hOut dl,al ;ICW4设置Mov ax,00hOut dx,al ;OCW1设置,允许所有8个中断Mov ax,00h ;设置中断向量表OUT DX,AXMOV AX,00hMov ds,axMov si,200hMov ax,offset hintMov ds:[si],axAdd si,2Mov ds:[si],0100h ;设置中断服务程序入口地址XOR AL,AL ;初始化发光二极管亮灭控制器STI ;IF<-1,开中断Waiting:NOPJMP waiting ;在主程序无限循环Hint: ;中断服务子程序XOR AL,1 ;每响应中断、进入中断服务程序,发光二极管状态翻转一次MOV DX,04B0HOUT DX,ALIRETCode endsEnd start说明:8086的中断系统是向量中断方式,不同类型的中断向量存于不同的位置,其计算方法是:中断类型N*4中断类型的高5位由8259读出,低3位有IR的编码确定,IR0=000IR1=001...IR7=111五、实验报告要求1、试说明本实验中8259A中断控制器各寄存器ICW1、ICW2、ICW4、OCW1的初始化设置含义。

8259中断实验报告

8259中断实验报告

8259中断实验报告引言本实验旨在通过实践掌握8259中断控制器的工作原理和使用方法。

8259中断控制器是一种在计算机系统中用于管理和调度中断请求的硬件设备。

本实验将通过编写代码并进行实际测试,来展示8259中断控制器的功能和效果。

实验过程步骤一:准备工作在开始实验之前,我们需要准备以下材料和工具:•一台支持8259中断控制器的计算机•8259中断控制器的手册或技术资料•一份适用于目标计算机系统的编程环境步骤二:了解8259中断控制器在开始编写代码之前,我们需要对8259中断控制器有一定的了解。

查阅8259中断控制器的手册或技术资料,了解其工作原理、寄存器结构和编程方法。

步骤三:编写初始化代码在开始使用8259中断控制器之前,我们需要对其进行初始化配置。

根据目标计算机系统的要求,编写初始化代码,并将其加载到计算机系统中。

步骤四:编写中断处理程序中断处理程序是在发生中断请求时由8259中断控制器调用的代码段。

根据实际需求,编写中断处理程序,并将其加载到计算机系统中。

步骤五:测试代码在完成初始化和中断处理程序的编写后,我们需要进行代码测试。

通过触发中断请求,检查中断处理程序是否能够正确地被调用和执行。

步骤六:分析实验结果根据测试结果,分析实验中发生的问题和异常情况。

比较预期结果与实际结果之间的差异,并进一步优化代码和配置。

结果与讨论在本实验中,我们成功地使用了8259中断控制器,并编写了相应的初始化代码和中断处理程序。

经过测试,中断处理程序能够正确地被调用和执行。

然而,在实验过程中也遇到了一些问题。

例如,可能会出现中断处理程序无法正确响应中断请求的情况。

这可能是由于配置不当或代码逻辑错误所致。

在遇到问题时,我们可以通过查阅8259中断控制器的手册或技术资料,以及调试工具来进行排查和修复。

通过本实验,我们进一步加深了对8259中断控制器的理解,掌握了其工作原理和使用方法。

在实际应用中,8259中断控制器可以广泛应用于各种计算机系统,提供可靠的中断管理和调度功能。

8259中断控制器实验

8259中断控制器实验

一、实验目的⑴掌握8259中断控制器的接口方法。

⑵掌握8259中断控制器的应用编程。

二、实验内容编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。

三、程序流程四、实验电路五、编程提示⑴8259芯片介绍中断控制器8259A是专业性为控制优先级中断设计的芯片。

它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259A 进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用7号中断源IR7,“SP”插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,满“7”次后显示“P.”继续等待中断。

六、实验连线Dais系列实验箱连线七、实验步骤编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”,继续等待中断。

八、实验参考程序CODE SEGMENTASSUME CS:CODE, DS:CODE, ES:CODEORG 3400HStart: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?Port0 EQU 0FFE0HPort1 EQU 0FFE1HP8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259 ;设置中断向量MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV SI,0000HSTICON8: CALL DISJMP CON8;------------------------------------INT8259: CLIMOV BX,OFFSET BUFMOV BYTE PTR [BX+SI],07HINC SICMP SI,0007HJZ X59XX59: MOV AL,20H ;发中断结束命令MOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxcall dispop cxloop xxx59pop cxmov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;==============================FOR8259:MOV AL,13H ;初始化8259MOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;---------------------------WP: MOV BUF,11H ;初始化显示“P.”MOV BUF+1,10HMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRET;--------------------------------DIS: MOV CL,20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]PUSH BXMOV BX,OFFSET LEDXLATPOP BXMOV DX,ZXK ;显示相应数字OUT DX,ALMOV AL,CLMOV DX,ZWK ;选择显示的数码管OUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;--------------------------CODE ENDSEND Start一、实验目的⑴掌握可编程I/O接口芯片8255的接口原理,熟悉对8255初始化编程和输入、输出软件的设计方法。

8259中断实验报告

8259中断实验报告

8259中断实验报告8259中断实验报告概述:8259中断控制器是一种重要的硬件设备,用于管理和处理计算机系统中的中断请求。

本实验旨在通过对8259中断控制器的实际应用,深入理解中断的概念、工作原理和实现方法。

实验目的:1. 了解中断的基本概念和作用;2. 掌握8259中断控制器的工作原理;3. 熟悉8259中断控制器的编程方法;4. 实现一个简单的中断处理程序。

实验设备:1. 计算机;2. 8259中断控制器;3. 开发工具。

实验步骤:1. 硬件连接:将8259中断控制器与计算机主板相连,确保连接正确稳定。

2. 编程准备:打开开发工具,创建一个新的工程,选择适当的编程语言。

3. 初始化8259中断控制器:在程序中调用相应的函数,设置8259中断控制器的工作模式、中断向量表等。

4. 编写中断处理程序:根据实际需求,编写一个简单的中断处理程序,例如键盘输入中断处理程序。

5. 编译、链接和调试:对程序进行编译、链接,生成可执行文件,并进行调试,确保程序的正确性和稳定性。

6. 实验结果分析:运行程序,观察中断处理程序的执行情况,分析中断的触发条件、处理过程和效果。

实验心得:通过本次实验,我深入了解了中断的概念和作用,掌握了8259中断控制器的工作原理和编程方法。

在实际操作中,我遇到了一些问题,例如连接错误、程序调试等,但通过不断尝试和调整,最终成功实现了一个简单的中断处理程序。

这次实验对我来说是一次很好的学习机会,不仅加深了对中断的理解,还提高了我的编程能力和问题解决能力。

总结:中断是计算机系统中一个重要的概念,对于提高系统的响应速度和处理效率具有重要意义。

8259中断控制器作为中断管理和处理的关键设备,其工作原理和编程方法需要我们深入了解和掌握。

通过本次实验,我对中断和8259中断控制器有了更深入的理解,并通过实际操作加深了对中断处理程序的编写和调试的经验。

这对我今后的学习和工作都具有重要的参考价值。

8259中断控制实验报告

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实验
300H 8255B口 8255B口 301H 8255C口 8255C口 302H 8255控制寄存器 8255控制寄存器 303H
初始化
附录3 发送到LED的值 附录3 发送到LED的值

思考题
① 将A口改为B口,应如何修改程序 口改为B
和连线?
② 修改程序,使之向发光二极管输出的同 修改程序, 时,在显示器上同步输出.
附录1 几个DOS 附录1 几个DOS中断 DOS中断
功能01H,07H和 功能01H,07H和08H 功能描述:从标准输入设备(如:键盘) 功能描述:从标准输入设备(如:键盘)读入一个字 符.该中断在处理过程中将一直处于等待状态直 到有字符可读为止.该输入还可被重定向,如果 这样做,则无法判断文件是否已到文件尾 入口参数:AH=01H,过滤掉控制字符,并回显 入口参数:AH=01H,过滤掉控制字符,并回显 =07H,不过滤掉控制字符,不回显 =07H,不过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 出口参数:AL=输入字符的ASCII码 出口参数:AL=输入字符的ASCII码
;LED灯熄灭
MOV AX,3572H INT 21H MOV INT0A_OFF,BX MOV BX,ES MOV INT0A_SEG,BX CLI MOV AX,2572H MOV DX,SEG LEDLIGHT PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI IN AL,0A1H AND AL,0FBH OUT 0A1H,AL IN AL,21H AND AL,0FBH OUT 21H,AL
8259主片和从片简图 8259主片和从片简图

8259中断控制实验

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳大学实验报告课程名称:实验项目名称:学院:专业:指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制实验目的与要求:1. 掌握8259中断控制器的工作原理。

2. 学习8259的应用编程方法。

方法、步骤:(1)按图4.15连接实验线路。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。

实验过程及内容:1. 中断控制器8259简介在Intel 386EX 芯片中集成有中断控制单元(ICU ),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A 是一致的,操作方法也相同。

从片的INT 连接到主片的IR2信号上构成两片8259的级联。

在TD-PITE 实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

8259的内部连接及外部管脚引出如图4.5:主片8259A从片8259A INTINT CAS2:0CAS2:0IR2IR4IR6IR7IR1INTR(内核)串口0MIR6MIR7SIR1图4.5 8259内部连续及外部管脚引出图表4.1列出了中断控制单元的寄存器相关信息。

表4.1 ICU 寄存器列表寄存器 口地址 功能描述ICW1(主) ICW1(从) (只写) 0020H 00A0H 初始化命令字1:决定中断请求信号为电平触发还是边沿触发。

ICW2(主) ICW2(从) (只写) 0021H 00A1H 初始化命令字2:包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。

ICW3(主) (只写) 0021H初始化命令字3:用于识别从8259设备连接到主控制器的IR 信号,内部的从8259连接到主8259的IR2信号上。

ICW3(从) (只写) 00A1H 初始化命令字3:表明内部从控制器级联到主片的IR2信号上。

ICW4(主) ICW4(从) (只写) 0021H 00A1H 初始化命令字4:选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。

OCW1(主) OCW1(从) (读/写) 0021H 00A1H 操作命令字1:中断屏蔽操作寄存器,可屏蔽相应的中断信号。

OCW2(主) OCW2(从) (只写) 0020H 00A0H 操作命令字2:改变中断优先级和发送中断结束命令。

OCW3(主) OCW3(从) (只写) 0020H 00A0H 操作命令字3:使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。

IRR (主) IRR (从) 0020H 00A0H中断请求:指出挂起的中断请求。

(只读) ISR (主) ISR (从) (只读) 0020H 00A0H 当前中断服务:指出当前正在被服务的中断请求。

POLL (主)POLL (从) (只读)0020H 0021H 00A0H 00A1H查询状态字:表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。

初始化命令字1寄存器(ICW1)说明见图4.6所示。

1LS00170:边沿触发1:电平触发ICW1图4.6 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图4.7所示。

T7T6T5T4T37ICW2中断向量地址图4.7 初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图4.8,从片见图4.9。

S7S6S5S4S3S2S17S7-S3:0表示无8259被连接到主片上 1表示有8259被连接到主片上 S2:0表示内部从片没被使用1表示内部从片被级联到主片的IR2上 S1:0表示无8259通过IR1连接到主片上 1表示有8259通过IR1连接到主片上ICW3(主片)图4.8 主片初始化命令字3寄存器17ICW3(从片)图4.9 从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图4.10。

SNFMAEOI17ICW4SNFM :0=选择全嵌套模式1=选择特殊全嵌套模式,仅主8259能够工作在特殊全嵌套模式AEOI :0=禁止中断自动结束1=使能中断自动结束,仅主8259能够工作在中断自动结束方式图4.10 初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图4.11。

M7M6M5M4M3M2M1M07OCW1M7--M0:0=对应IR 信号上的中断请求得到允许 1=对应IR 信号上的中断请求被屏蔽注意:设置屏蔽位不影响各自中断挂起位图4.11 操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图4.12所示。

7OCW2RSLEOIL2L1L0R SL EOI 命令0 0 0 取消优先级自动循环 *0 0 1 一般的中断结束命令0 1 0 无操作0 1 1 特殊的中断结束命令 **1 0 0 中断优先级自动循环 *1 0 1 在一般中断结束方式中优先级循环1 1 0 优先级特殊循环方式 **1 1 1 在特殊中断结束方式中优先级循环 *** 当8259工作在中断自动结束方式下时,这些情况可以改变优先级结构。

** 在这些情况下优先级由L2:L0指定。

L2、L1、L0:在给出特殊的中断结束命令时,L2、L1、L0指出了具体要清除当前中断服务寄存器的哪一位;当给出特殊的优先级循环方式命令时,L2、L1、L0指出了循环开始时哪个中断的优先级最低。

图4.12 操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图4.13所示。

ESMMSMM1PRRRIS7OCW3ESMM SMM 0 0 无影响0 1 无影响1 0 禁止特殊屏蔽模式1 1 使能特殊屏蔽模式P :设置该位使8259工作在中断查询方式RR RIS 0 0 无影响0 1 无影响1 0 读中断请求寄存器IRR 1 1 读当前中断服务寄存器ISR图4.13 操作命令字3寄存器查询状态字(POLL )说明如图4.14所示。

INT----L2L1L07POLLINT :0=无请求1=连接在8259上的设备请求服务L2、L1、L0:当INT 为1时,这些位指出了需要服务的最高优先级的IR ;当INT 为0时这些位不确定。

图4.14 程序状态字寄存器在对8259进行编程时,首先必须进行初始化。

一般先使用CLI 指令将所有的可屏蔽中断禁止,然后写入初始化命令字。

8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。

在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。

系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC 联机的串口通信使用,其它中断源被屏蔽。

中断矢量地址与中断号之间的关系如下表所示:主片中断序号 0 1 2 3 4 5 6 7 功能调用 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 矢量地址 20H ~23H 24H ~27H 28H ~2BH 2CH ~2FH 30H ~33H 34H ~37H 38H ~3BH 3CH ~3FH 说明 未开放 未开放 未开放 未开放 串口 未开放 可用 可用 从片中断序号 0 1 2 3 4 5 6 7 功能调用 30H 31H 32H 33H 34H 35H 36H 37H 矢量地址 C0H ~C3H C4H ~C7H C8H ~CBH CCH ~CFH D0H ~D3H D4H ~D7H D8H ~DBH DCH ~DFH 说明未开放 可用 未开放 未开放 未开放 未开放 未开放 未开放2. 8259单中断实验实验接线图如图4.15所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

图4.15 8259单中断实验接线图实验程序清单(INT1.ASM )SSTACK SEGMENT STACKDW 32 DUP(?) SSTACK ENDS CODE SEGMENTASSUME CS:CODE START: PUSH DSMOV AX, 0000H MOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址MOV SI, 003EH MOV [SI], AX;填IRQ7的段地址矢量CLI系统总线单次脉冲单元MIR7KK1+主8259POP DS;初始化主片8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4MOV AL, 6FH ;OCW1OUT 21H, ALSTIAA1: NOPJMP AA1MIR7: STICALL DELAYMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETDELAY: PUSH CXMOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START数据处理分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以, PUSH DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用POP DS 指令返回现场. 这个实验是关于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这矢量地址.所以在程序开始的候,就采用MOV AX, OFFSET MIR7,MOV SI, 003CH,MOV [SI], AX这三句来获得偏移地址IP,接着高址位置又用MOV AX, CS,MOV SI, 003EH,MOV [SI], AX这三条指令来获得CS. CPU根据CS,IP就能转入正确的中断程序执行中断了. 而中断程序结尾处,用了MOV AL, 20H OUT 20H, AL以及IRET这三条指令, 是为了说明这是正常的EOI,可以通知8259A此次服务结束.深圳大学学生实验报告用纸实用标准文案实验结论:中断的思想在程序的设计中无疑占有重要的位置.采取中断的方法,大大提高程序的有效和CPU的高效率工作. 因此,8259中断控制实验在微机的几个实验中,就显得尤其重点.掌握8259中断控制器的工作原理和应用编程方法,需要对课本上那些对8259的系统介绍一个深入的了解,以及级联方式下各个寄存器相应的控制和操作方法,这些,都是我们学习重点,我们应该熟练掌握.指导教师批阅意见:成绩评定:指导教师签字:年月日备注:注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

相关文档
最新文档