(完整word版)东北大学_微机原理实验报告及答案_8259中断控制器 (2)
- 格式:doc
- 大小:697.01 KB
- 文档页数:6
实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。
(2) 掌握可编程控制器8259的应用编程方法。
3 实验内容编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
4 实验原理1. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A 的内部结构和引脚如图6-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
2.8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表6-1所示。
图6-1 8259内部结构和引脚图图6-2(a) ICW1格式图6-2(b) ICW2格式图6-2(c) ICW3格式图6-2(d) ICW4格式图6-3 OCW命令字格式3. PC微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
数字逻辑与CPU实验报告实验内容:8259中断控制器、8253可编程定时/计数器接口实验姓名:班级:学号:实验一8259中断控制器实验一、实验目的1、掌握8259的工作原理。
2、掌握编写中断服务程序的方法。
3、掌握初始化中断向量的方法。
二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。
三、实验方法(1)连线1、单脉冲发生器输出P+与8259的IR0相连;2、8259的片选CS8259与CS0相连;3、8259的INT与8086的INT相连;4、CS273与CS1相连;5、00与LED1相连;其他线均已连好。
(2)在8086实验系统软件中编辑程序,编译链接后,调试程序,程序流程图如图2。
(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。
四、程序源代码CODE SEGMENT PUBLICASSUME CS:CODEORG 100H;设置堆栈起点0100HSTART: 图2 程序流程图 MOV DX,4A0HMOV AX,13H ;写ICW1,单片8259,要写ICW4OUT DX,AXMOV DX,4A2HMOV AX,80H ;写入ICW2,设定IR0中断类型吗为80HOUT DX,AXMOV AX,01 ;写入ICW4,设定一般嵌套,非自动EOI方式 OUT DX,AXMOV AX,0 ;写入OCW1,设定允许中断。
OUT DX,AXMOV AX,0MOV DS,AXMOV SI,200H ;中断向量预存放在0100:0200H(向量码80H) MOV AX,OFFSET HINT;取中断服务程序的入口地址MOV DS:[SI],AXADD SI 2MOV AX,CSMOV DS:[SI],AXSTI;开中断JMP $;原地跳转HINT:;中断服务程序XOR CX,0FFH;CX全部取反(8位)MOV DX,4B0H;CS273接口的地址,与8个LED灯相连MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的的地址MOV AX,20H;写入OCW2,一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSEND START五、实验结果程序调试通过后,当我们按一次单脉冲发生器的输出开关,对应连好的灯就会亮。
竭诚为您提供优质文档/双击可除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中断系统的知识。
微机原理硬件实验报告学号:班级:姓名:***同组成员:林翰文,赵贺时间:2015.1微机硬件实验报告实验一:8259中断控制器实验实验目的1. 掌握8259的工作原理。
2. 掌握编写中断服务程序的方法。
3. 掌握初始化中断向量的方法。
实验设备1.微机实验教学系统实验箱2.8086CPU模块实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。
实验步骤1. 连线2. 编辑程序,编译链接后,调试程序。
3. 调试通过后,在中断服务程序内设置断点,运行程序当接收到中断请求后,程序停在中断服务程序内的断点处。
源程序:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;写ICW1 MOV AX,13HOUT DX,AXMOV DX,4A2H ;写ICW2 MOV AX,80HOUT DX,AXMOV AX,01 ;写ICW4OUT DX,AXMOV AX,02H ;写OCW1OUT DX,AXMOV AX,0MOV DS,AXMOV SI,200HMOV AX,OFFSET HINTMOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXSTIJMP $HINT:XOR CX,0FFH ;中断程序MOV DX,4B0HMOV AX,CXOUT DX,AXMOV DX,4A0HMOV AX,20HOUT DX,AXIRETCODE ENDSEND START运行结果,按一次中断,灯会亮或灭一次。
思考题:1、将P+连线连接到IR1—IR7任意一个;重新编写程序。
修改理由,假设接到IR1上,即中断向量表发生变化,修改中断程序在中断向量表的位置就可以。
源程序:CODE SEGMENT PUBLICASSUME CS:CODEORG 100H START:MOV DX,4A0HMOV AX,13HOUT DX,AXMOV DX,4A2HMOV AX,80HOUT DX,AXMOV AX,03HOUT DX,AXMOV AX,0OUT DX,AXMOV AX,0MOV DS,AXMOV SI,204HMOV AX,OFFSET HINTMOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXSTIJMP $HINT:XOR CX,0FFHMOV DX,4B0HMOV AX,CXOUT DX,AXMOV DX,4A0HMOV AX,20HOUT DX,AXIRETCODE ENDSEND START2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。
实验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中断控制实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号: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可编程中断控制器实验班级:计算12 姓名:学号:上机实践日期:2014.11 上机实践时间:2学时一、实验目的1、了解8259A芯片的工作原理。
学会使用8259A中断控制芯片实现对外部中断的响应和处理;2、了解8259A内部结构和熟悉8086的接口逻辑;3、掌握对8259A的初始化编程方法和8086是如何响应中断、退出中断。
二、实验设备STAR系列试验仪一套、星研集成软件环境、PC机一台三、实验内容1、设计8259A与8086CPU硬件连接图,分配8259A端口地址为9000H,9001H;2、设计8259A的外围连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的数码管LED上;3、中断次数的显示需调用系统给定的显示子程序DISPLAY8。
程序开始处必须设置外部连接,告诉汇编程序该显示程序在何处(即对应单元必须送10H),若要让它显示数字,则把数字值直接送到响应的显示缓冲区单元就可以显示了;4、要保证DISPLAY8能正常显示,必须使得8279键盘/LED控制器能正确运行;5、基于所设计的硬件及其连接,编写程序流程图,并编写程序实现8086对中断次数的计数及显示。
四、实验拓展思考1、从8259A收到上升沿,到8088响应中断,试画出这个过程的时序图。
2、把出发脉冲改为由8253产生,中断时间间隔为1S,设计硬件连接图,编写程序流程图,并设计程序实现。
3、设计一实时时钟。
五、实验步骤1、电路设计2、在STAR系列试验仪上完成连线B3:CS、A0 ——A3:CS7、A0B3:INT、INTA ——ES8088:INTR、INTA B3:IR2 ——C5:OUT1E5:CS、A0 ——A3:A0E5:CLK ——B2:2MHZE5:B、C ——G5:B、CC5:CS、A0、A1 ——A3:CS1、A0、A1C5:CLK0 ——B2:2MC5:OUT0 ——C5:CLK1C5:GATE0、GATE1 ——C1:VCC3、编写程序流程图及汇编程序程序流程图:程序见附录开始8253初始化(计数器0方式2,计数器1方式3)计数器0送入初值1000(1000分频)计数器1送入初值8259初始化(上升沿触发,单片,不需要ICW4)ICW2控制字0AH,ICW3控制字0DHICW控制字0FBH中断服务程序地址放置内存判断中断是否到来结束8259可编程中断开中断是FLAG=1调用中断程序COUNT值BCD加1并进行BCD码调整否FLAG=0调用LED显示子程序IRETSTIJS: CMP FLAG,0JZ JSCMP COUNT2,18HJG l1CALL LEDl1: MOV FLAG,0INT_TO PROCMOV AX,0MOV ES,AXMOV DI,28H ;过程的中断向量在表内的偏移量MOV AX,OFFSET INTACLDSTOSWMOV AX,CS ;中断程序的断地址STOSWRETINT_TO ENDPLED PROCMOV AL,COUNT0DAAMOV AH,ALAND AL,0FHMOV BUFFER,ALAND AH,0F0H ROR AH,4MOV BUFFER+1,AH MOV AL,COUNT1 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+3,AH MOV AL,COUNT2 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+5,AH MOV BUFFER+6,10H MOV BUFFER+7,10H LEA SI,BUFFER CALL DISPLAY8 RETLED ENDPINTA: PUSH DX PUSH AXINC COUNT0CMP COUNT0,3CH JNZ I1INC COUNT1MOV COUNT0,0I1: CMP COUNT1,3CH JNZ I2INC COUNT2MOV COUNT1,0I2: CMP COUNT2,18H JNZ I3MOV COUNT2,0I3: MOV FLAG,1 MOV DX,09000H MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START。
实验五8259中断控制器实验一、实验目的1、掌握8259A的工作原理。
2、掌握编写中断服务程序方法。
3、掌握初始化中断向量的方法。
二、实验设备CPU挂箱、8086CPU模块。
三、实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED。
四、实验原理本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
8259的使用说明请详细阅读教科书。
8086的中断系统是向量中断方式。
内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。
不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。
中断类型由8259通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。
请仔细研读8259的工作时序。
中断类型的高5位由8259寄存器ICW2决定,低3位由中断源IRx的编码自动填入。
IR0~IR7的编码分别为000,001,010,011,100,101,110,111。
五、实验步骤1、实验接线CS0 ↔CS8259 CS1 ↔CS273 O0~O7↔LED1~LED8 K1~K8↔IR0~IR7 INT↔INT( 8086CPU板) INTA↔INTA(8086CPU板)2、编译调试程序3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。
六、实验结果全速运行程序,由上往下拨动开关时,相应位置的LED点亮,其余LED全灭。
七、实验程序框图开始延时A X =00H ?N YA X 输出开中断8259初始化开始关中断AX置数开中断中断返回主程序流程图中断服务程序流程图八、程序源代码 assume cs:codecode segment public org 100h start: mov cx,0 start1: cli mov dx,04a0h mov ax,13h out dx,ax ;ICW1, ICW4 NEEDEDmov dx,04a2h mov ax,80h out dx,ax;ICW2 中断类型80hmov ax,01out dx,ax ;ICW4mov ax,00hout dx,ax ;OCW1, 开放所有中断mov ax,0mov ds,axmov si,200h ;初始化中断向量表mov ax,offset hintmov ds:[si],axadd si,2mov ds:[si],100hmov ax,0;jmp startstiwaiting:cmp ax,55hnopnopnopnopnopnopnopnopjne waiting ;没发生中断,则等待nopnopmov dx,04b0hxor cx,0ffhmov ax,cxout dx,ax ;LED灯亮灭一次jmp start1nophint: clinopnopnopnopnopnopnopnopmov ax,55hnopiretcode endsend start九.实验分析:通过实验连线及程序运行没有得到预期的结果,可是仔细检查连线与程序代码没有发现错误,后来经过老师分析,没有出现预期的效果是因为机器的问题。
实验十一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中断控制器应用实验一、实验目的1.掌握PC机中断处理系统的基本原理。
2. 掌握可编程中断控制器8259的应用编程方法。
二、实验内容1.PC机内中断实验。
使用单次脉冲模拟中断产生。
验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。
2.PC机内中断嵌套实验。
使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。
3.扩展多中断源查询方式应用实验。
利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。
三、实验步骤1.实验1-1:PC机内中断应用实验(1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下:(2)自设计实验。
改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。
(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下:DATA SEGMENTMESS DB 'IRQ10 ',0DH,0AH, '$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, CSMOV DS, AXMOV DX,OFFSET INT10MOV AX,2572H ;设置IRQ10对应的中断向量INT 21HIN AL,21H ;读取中断屏蔽寄存器AND AL,0F3H ;开放IRQ3中断和从片OUT 21H,ALIN AL,0A1H ;从片的中断屏蔽寄存器AND AL,0FBH ;开放IRQ10中断OUT 0A1H,ALMOV CX,10STIWAIT: JMP WAITINT10: MOV AX, DATA ;中断服务程序MOV DS, AXMOV DX, OFFSET MESSMOV AH, 09 ;在屏幕上显示每次中断的提示信息INT 21HMOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, ALLOOP NEXTIN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字OR AL, 08H ;关闭IRQ3中断OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器STI ;置中断标志位MOV AH, 4CH ;返回DOSINT 21HNEXT: IRET ;中断返回CODE ENDSEND START调用程序代码,观察实验现象,屏幕显示截图如下:2.实验1-2:PC机内中断嵌套实验实验要求:(1)按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,观察屏幕显示结果并分析产生该现象的原因:A.按下连接IRQ的单次脉冲按键,屏幕上会显示10个3,在屏幕上10次显示未结束之前,按下连接IRQ10的单次脉冲按键,观察现象;按下IRQ时屏幕上会显示10个3,此时按下IRQ10,会直接在屏幕上显示10个10,然后结束后再显示剩余的3B.按下连接IRQ10的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3的单次脉冲按键,观察现象。
微机原理实验报告姓名:班级:学号:1 8259中断控制器实验31.1 实验目的 (3)1.2 硬件连接 (3)1.3 软件编程 (3)1.4 思考题 (4)2 8255并行接口实验 (5)2.1 实验目的 (5)2.2 硬件连接 (5)2.3 软件编程 (5)2.4 思考题 (6)3 8253可编程定时/计数器 (6)3.1 实验目的 (6)3.2 硬件连接 (6)3.3 软件编程 (6)3.4 思考题 (7)4 8250串行接口实验 (8)4.1 实验目的 (8)4.2 硬件连接 (8)4.3 软件编程 (8)4.4 思考题 (10)5 AD实验 (10)5.1 实验目的 (10)5.2 硬件连接 (10)5.3 软件编程 (11)5.4 思考题 (12)1 8259中断控制器实验1.1 实验目的1. 掌握8259的工作原理。
2. 掌握编写中断服务程序的方法。
3. 掌握初始化中断向量的方法1.2 硬件连接单脉冲发生器输出P+与8259的IR0相连;8259的片选CS8259与CS0相连;8259的INT与8086的INT相连;8259的INTA与8086的INTA相连;CS273与CS1相连;00与LED1相连;1.3 软件编程CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H //由于连接的CS0,初始化ICW1时,A1=0,为偶地址MOV AX,13H //上升沿触发,单片,要写ICW4OUT DX,AXMOV DX,4A2H //初始化ICW2,A1=1,为奇地址MOV AX,80H // 中断向量码为80HOUT DX,AXMOV AX,01 //初始化ICW4,非自动EOIOUT DX,AXMOV AX,0 //允许所有中断OUT DX,AXMOV AX,0 //把中断服务程序的地址放在中断向量表中DS=0,SI=80H*4=200HMOV DS,AXMOV SI,200HMOV AX,OFFSET HINT //先放IPMOV DS:[SI],AXADD SI,2MOV AX,CS //再放CSMOV DS:[SI],AXSTI //打开中断JMP $HINT:XOR CX,0FFH //取反操作,使得灯闪烁MOV DX,4B0H //CS1的地址4B0H,连在了273上MOV AX,CXOUT DX,AXMOV DX,4A0H //访问OCW2,A0=0,标志位D4=0,D3=0。
微机原理_____________ 实验报告专业班级姓名实验题目 ___________ 日期________________实验八:8259中断控制器实验一、实验目的1、掌握8259A的工作原理。
2、掌握编写中断服务程序方法。
3、掌握初始化中断向量的方法。
二、实验设备MU—m型实验箱、8086CPU模块。
三、实验内容用脉冲发生器作为中断源,每按一次脉冲发生器的按键即产生一次中断。
在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED四、实验原理介绍8259中断控制器电路八、参考程序中断服务流程开始org 100hstart: mov cx,0startl: climov dx,04a0hmov ax,13hout dx,ax ;ICW1, ICW4 NEEDEDmov dx,04a2hmov ax,80hout dx,ax ;ICW2中断类型80hmov ax,01out dx,ax ;ICW4mov ax,00hout dx,ax ;OCW1,开放所有中断mov ax,0mov ds,axmov si,200h ;初始化中断向量表mov ax,offset hintmov ds:[si],axadd si,2mov ds:[si],100hmov ax,0stiwait ing: cmp ax,55hnopassume cs:codecode segme nt publicnopassume cs:codecode segme nt publicorg 100hstart: mov cx,0 start1: climov dx,04a0hmov ax,13hout dx,axmov dx,04a2hmov ax,82hout dx,axmov ax,01out dx,axmov ax,00hout dx,axmov ax,0mov ds,axmov si,208hmov ax,offset hintmov ds:[si],axadd si,2mov ds:[si],100hmov ax,0stiwait ing: cmp ax,55hnopnopnopnopnopnopnopnopjne wait ingnopnopmov dx,04b0hxor cx,0ffhmov ax,cxout dx,axjmp start1nophi nt: clinopnopnopnopnopnopnopnopmov ax,55hnopiretcode endsend start。
实验一:8259中断控制器应用实验实验名称PC机内中断应用实验成绩班级通信姓名学号实验目的:1. 学习可编程中断控制器8259的工作原理;2. 掌握可编程中断控制器8259的应用控制方法;实验内容:PC机中断实验。
使用单次脉冲模拟中断产生。
验证中断处理程序,在显示屏幕上显示一行预设定的字符串。
实验步骤:实验结果及分析:DATA SEGMENTMESS DB 'TPCA interrupt! ',0DH,0AH, '$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, CSMOV DS, AXMOV DX,OFFSET INT3 ;采用间接修改法,调用DOS功能,设置中断向量,取得偏移地址MOV AX,SEG INT3 ;通过AX的过渡,得到段首地址。
MOV DS,AXMOV AL,0BH ;设置IRQ3对应的中断向量0BHMOV AH,25HINT 21HIN AL, 21H ;读中断屏蔽寄存器,21H是该寄存器的端口号AND AL,0F7H ;开放IRQ3中断,允许IRQ3的中断申请,11110111OUT 21H, AL ;输出到中断屏蔽寄存器MOV CX, 10 ;记中断循环次数为10次STI ;允许中断发生W AIT: JMP WAITINT3: MOV AX, DATA ;中断服务程序MOV DS, AXMOV DX, OFFSET MESSMOV AH, 09H ;在屏幕上显示每次中断的提示信息INT 21HMOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20HOUT 20H, ALLOOP NEXT ;当CX为0,跳转到NEXTIN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字OR AL,04H ;关闭IRQ3中断,00000100OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器STI ;置中断标志位MOV AH, 4CH ;返回DOSINT 21HNEXT: IRET ;中断返回CODE ENDSEND START收获体会:使用间接法设置中断向量:1.将中断处理程序的段首地址送入DS寄存器,偏移量送入DX寄存器。
微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验四8259A中断控制器实验一、实验目的:1、利用试验箱掌握8259A中断控制器的使用方法。
2、掌握中断的相关知识。
二、实验内容:1、实验连线(微机原理试验箱)⑴连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G 与总线单元上方的GS相连。
⑵将8259CS插孔与译码单元的Y0相连,中断源IR7与单脉冲单元的SP插孔相连。
⑶用8芯扁平电缆将8259中断控制单元的数据总线插座与数据总线单元任一插座相连。
2、 PC机连接好串口线电源线,打开电源,在电脑中打开intel8088微机实验系统选择串口一和 57600 波特率若出现仿真器没有连接的画面则串口线没有连接好如下图:3、LED环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
Ph88/he08.asm代码在软件中自带的,打开软件中的he08.asm 点编译(c)点击编译、连接、装载⑵在“P.”状态下在小键盘键入3400,然后按“EXEC”进入实验项目的运行。
这是输入起始地址,对应代码中的 ORG 3400H4、观察运行结果在连续运行方式下,按动 AN 按钮,LED 数码管从最高位开始依次显示“7”显示满后,最高位显示“P.”继续等待中断。
5、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。
三、程序流程图和程序代码1、流程图2、代码与注释;-------------------硬件实验八 8259单级中断控制器实验------------------- CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HH8: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?Port0 EQU 0FFE0HPort1 EQU 0FFE1HP8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259MOV 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,20HMOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxcall dispop cxloop xxx59pop cxmov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;==============================FOR8259:MOV AL,13HMOV 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,ZXKOUT DX,ALMOV AL,CLMOV DX,ZWKOUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;--------------------------CODE ENDSEND H8四、调试过程及遇到的问题在“P.”状态下键入 3400,然后按“EXEC”进入实验项目的运行。