实验二:8259 中断控制器实验
微机原理8259A实验报告

实验二8259A中断控制器应用实验分析报告一、填写补充实验1-2中以下两段代码,并简述其意义:第1段:IN AL,21H_ AND AL, 0F7H _____________OUT 21H,ALIN AL,0A1H__AND AL, 0FBH______________OUT 0A1H,AL第2段:MOV AL,20HOUT 0A0H,ALOUT 20H,AL二、简述实验1-2的实验现象,分析解释其原因;结合本实验,简述中断嵌套和中断优先级的意义以及正确形成中断嵌套的基本要求。
答:实验1现象:按下一次单脉冲,显示一次字符,十次中断后停机,不再显示字符串实验2现象:分别按下两个单脉冲显示一串3和一串10,在3未显示完全时按下显示10的脉冲键,可发生中断,相反则不能发生中断,需等待一串10显示完后再显示一行3。
原因:IRQ10的中断级别高于IRQ3,所以可以在3还没有执行完时中断IRQ3,中断原程序执行IRQ10 。
中断嵌套的意义:为了让CPU及时响应更高级别的中断请求。
中断优先级的意义: CPU只能响应一个中断请求,在中断源较多的情况下,当有多个中断源同时发起中断请求时,CPU需要对多个中断源的优先级进行判断,判断出优先级最高的中断请求进行响应。
中断嵌套要求是:被中断程序的优先级低于请求程序中断的优先级。
三、抄写实验1-2中要求填写的“显示‘10’和‘空格’”的代码段NEXT10_1:MOV AX,SEG MESS10MOV DS,AXMOV DX,OFFSET MESS10MOV AH,09INT 21H ;使用INT21 – 09H实现字符串的输出‘10’CALL DELAY1 ;调用延时子程序LOOP NEXT10_1MOV DX,0DH ;调用DOS的中断功能,回车MOV AH,02HINT 21HMOV DX,0AH ;调用DOS的中断功能,换行MOV AH,02HINT 21H四、用文字简述或流程图方式,说明实验1-3中“以查询方式检测处理多中断请求”的过程。
8259中断实验报告

8259中断实验报告8259中断实验实验报告实验报告实验名称8259A中断控制器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在TPC-USB平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、??、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。
1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。
实验前根据实验流程图,写出对应代码;(2) 要了解8259A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。
熟悉8259A芯片的命令字,对其进行编程;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 连接PC与TPC-USB平台,用微机实验软件运行程序,每按一次TPC-USB平台上的单脉冲开关产生一次中断,要在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、??、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。
二、实验原理与硬件连线2.1 实验原理8259A是一种可编程中断控制器,可协助CPU进行中断管理。
8259A 的内部结构如图1所示。
单片8259A工作时,每次中断处理过程如下:(1) 当IR7 ~ IR0 上有中断请求,则IRR 相应的位置1;(2) 对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求;(3) 控制逻辑接收中断请求,向CPU发INT 信号;(4) 若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。
8259中断控制 实验报告

深圳大学实验报告课程名称:微机原理与接口技术
实验项目名称:8259中断控制实验
学院:信息工程学院
专业:电子信息工程
指导教师:
报告人:学号:201019 班级:电子
实验时间:2012.5.18
实验报告提交时间:2012.6.9
教务处制
实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以,PUSH DS就起到这样的作用.在中断程序结束后
程序入口,还得用POP DS 指令返回现场.
这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可以了
时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化字
ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个控制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对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中断控制完整实验报告

实验5 8259中断控制实验实验时间2019年11月27日
实验类型■验证性□设计性□综合性
1. 实验目的
掌握8259中断控制器的工作原理
2. 实验内容及过程(主要内容、操作步骤)
利用系统总线上中断请求信号MIR6,设计一个单一中断实验3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
1.显示字符“7”时,前面的“0137H”中的“37H”是“7”的ASCII码,若要改变显示的字符,就更改ASCII码。
2.中断服务程序的入口地址有段基址和段内偏移,故有32位,一个中断在中断向量表里面占4个字节,这4个字节就是中断服务程序的入口地址。
实验第一步就是在初始化中断向量表,就是告诉系统中断服务程序在哪里,填上IQR6的段基址和段内偏移(38H-3BH)。
其次就是对8259A主从片进行初始化,很多东西可以不初始化,就用到了主片,8259A从片上也接了一个中断。
再下面就是中断服务程序,实验中中断服务程序有延时,但是在正常编程情况下中断服务程序决不允许有延时,中断服务程序要快进快出
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。
实验二:8259 中断控制器实验

实验二 8259A中断控制器实验1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断, 8088计数中断次数,显示于G5区的数码管上2、运行程序3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。
.MODEL TINYEXTRN DISPLAY8:NEARIO8259_0 EQU 0F000HIO8259_1 EQU 0F001H.STACK 100.DATABUFFER DB 8 DUP(?)COUNTER DB ?REDISPLAYFLAG DB 0.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL INIT8259CALL WRIINTVERMOV COUNTER,0MOV REDISPLAYFLAG,1STI ;¿ªÖжÏSTART1: CMP REDISPLAYFLAG,0JZ START1CALL LEDDISPLAYMOV REDISPLAYFLAG,0JMP S TART1INIT8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETINIT8259 ENDPWRIINTVER PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP E SRETWRIINTVER ENDPLEDDISPLAY PROC NEARMOV AL,COUNTERMOV AH,ALAND AL,0FHMOV BUFFER,ALAND AH,0F0HROR A H,4MOV BUFFER + 1,AHMOV BUFFER + 2,10H ;¸ßÁùλ²»ÐèÒªÏÔʾMOV BUFFER + 3,10HMOV BUFFER + 4,10HMOV BUFFER + 5,10HMOV BUFFER + 6,10HMOV BUFFER + 7,10HLEA SI,BUFFERCALL DISPLAY8RETLEDDISPLAY ENDPINT_0: PUSH DXPUSH AXMOV AL,COUNTERADD AL,1DAAMOV COUNTER,ALMOV REDISPLAYFLAG,1MOV DX,IO8259_0MOV AL,20HOUT DX,AL POP A XPOP D XIRET ENDSTART。
8259中断控制实验报告材料

深圳大学实验报告课程名称:微机原理与接口技术实验项目名称:8259中断控制实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:201019 班级:电子实验时间:2012.5.18实验报告提交时间:2012.6.9教务处制STIAA1: NOP ;无限循环,等待中断发生JMP AA1MIR7: STICALL DELAYMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETDELAY: PUSH CX ;延时子程序MOV 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此次服务结束.MOV AL, 30HOUT 0A1H, AL ;ICW2MOV AL, 02HOUT 0A1H, AL ;ICW3MOV AL, 01HOUT 0A1H, AL ;ICW4MOV AL, 0FDHOUT 0A1H,AL ;OCW1 = 1111 1101MOV AL, 6BHOUT 21H, AL ;主8259 OCW1STIAA1: NOPJMP AA1MIR7: CALL DELAYMOV AX, 014DHINT 10H ;MMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETSIR1: CALL DELAYMOV AX, 0153HINT 10H ;SMOV AX, 0131HINT 10H ;显示字符1MOV AX, 0120HINT 10HMOV AL, 20HOUT 0A0H, ALOUT 20H, ALIRETDELAY: PUSH CXMOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验结果截图如下,能够正确执行设定功能.。
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中断控制实验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 8259A中断控制器实验
1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断, 8088计数中断次数,显示于G5区的数码管上
2、运行程序
3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,
数码管上显示的次数与拨动开关次数是否对应。
.MODEL TINY
EXTRN DISPLAY8:NEAR
IO8259_0 EQU 0F000H
IO8259_1 EQU 0F001H
.STACK 100
.DATA
BUFFER DB 8 DUP(?)
COUNTER DB ?
REDISPLAYFLAG DB 0
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
CALL INIT8259
CALL WRIINTVER
MOV COUNTER,0
MOV REDISPLAYFLAG,1
STI ;¿ªÖжÏ
START1: CMP REDISPLAYFLAG,0
JZ START1
CALL LEDDISPLAY
MOV REDISPLAYFLAG,0
JMP S TART1
INIT8259 PROC NEAR
MOV DX,IO8259_0
MOV AL,13H
OUT DX,AL
MOV DX,IO8259_1
MOV AL,08H
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0FEH
OUT DX,AL
RET
INIT8259 ENDP
WRIINTVER PROC NEAR
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA AX,INT_0
STOSW
MOV AX,CS
STOSW
POP E S
RET
WRIINTVER ENDP
LEDDISPLAY PROC NEAR
MOV AL,COUNTER
MOV AH,AL
AND AL,0FH
MOV BUFFER,AL
AND AH,0F0H
ROR A H,4
MOV BUFFER + 1,AH
MOV BUFFER + 2,10H ;¸ßÁùλ²»ÐèÒªÏÔʾ
MOV BUFFER + 3,10H
MOV BUFFER + 4,10H
MOV BUFFER + 5,10H
MOV BUFFER + 6,10H
MOV BUFFER + 7,10H
LEA SI,BUFFER
CALL DISPLAY8
RET
LEDDISPLAY ENDP
INT_0: PUSH DX
PUSH AX
MOV AL,COUNTER
ADD AL,1
DAA
MOV COUNTER,AL
MOV REDISPLAYFLAG,1
MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL POP A X
POP D X
IRET ENDSTART。