8259中断控制 实验报告

上传人:第*** 文档编号:31309984 上传时间:2018-02-06 格式:DOC 页数:8 大小:144KB
返回 下载 相关 举报
8259中断控制 实验报告_第1页
第1页 / 共8页
8259中断控制 实验报告_第2页
第2页 / 共8页
8259中断控制 实验报告_第3页
第3页 / 共8页
8259中断控制 实验报告_第4页
第4页 / 共8页
8259中断控制 实验报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《8259中断控制 实验报告》由会员分享,可在线阅读,更多相关《8259中断控制 实验报告(8页珍藏版)》请在金锄头文库上搜索。

1、深 圳 大 学 实 验 报 告课程名称: 微机原理与接口技术 实验项目名称: 8259 中断控制实验 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人:学号:201019 班级: 电子 实验时间: 2012.5.18 实验报告提交时间: 2012.6.9 教务处制实验目的与要求:1. 掌握 8259 中断控制器的工作原理2. 掌握 8259 的应用编程方法3. 掌握 8259 的级联方式的使用方法实验环境:PC机一台,TD-PITE 实验装置或 TD-PITC实验装置一套,过滤器一台实验内容及步骤:1. 中断控制器 8259 简介在 Intel 386EX芯片中集成有中断控制单元

2、(ICU) ,该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的 82C59A是一致的,操作方法也相同。从片的 INT连接到主片的 IR2信号上构成两片 8259的级联。在 TD-PITE实验系统中,将主控制器的 IR6、IR7 以及从控制器的 IR1开放出来供实验使用,主片 8259的 IR4供系统串口使用。8259 的内部连接及外部管脚引出如图 4.5: 主 片 8259A从 片 8259AINTINTCAS2:0CAS2:0IR2I4IR6I7IR1INTR( 内 核 ) 串 口 0MIR6I7SIR1图 4.5 8259内部连续及外部

3、管脚引出图在对 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

4、0BH 0CH 0DH 0EH 0FH矢量地址 20H23H 24H27H 28H2BH 2CH2FH 30H33H 34H37H 38H3BH 3CH3FH说明 未开放 未开放 未开放 未开放 串口 未开放 可用 可用从片中断序号 0 1 2 3 4 5 6 7功能调用 30H 31H 32H 33H 34H 35H 36H 37H矢量地址 C0HC3H C4HC7H C8HCBH CCHCFH D0HD3H D4HD7H D8HDBH DCHDFH说明 未开放 可用 未开放 未开放 未开放 未开放 未开放 未开放2. 8259 单中断实验实验接线图如图 4.15所示,单次脉冲输出与主片82

5、59的 IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7” 。图 4.15 8259单中断实验接线图实验步骤(1)按图 4.15连接实验线路。(2)编写实验程序,经编译、链接无误后装入系统。(3)运行程序,重复按单次脉冲开关 KK1,显示屏会显示字符“7” ,说明响应了中断。实验程序清单(INT1.ASM)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDS CODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入

6、口地址MOV SI, 003CH ;中断矢量地址放在 0000:003c0000:003fMOV SI, AX ;填 IRQ7的偏移矢量MOV AX, CS ;段地址MOV SI, 003EHMOV SI, AX ;填 IRQ7的段地址矢量CLIPOP DS;初始化主片 8259MOV AL, 11HOUT 20H, AL ;A0=0,ICW1为 00010001B,边沿触发,需要 ICW4MOV AL, 08HOUT 21H, AL ;A0=1,ICW2为 00001000B,保持低三位为 0MOV AL, 04HOUT 21H, AL ;A0=1,ICW1中 SNGL=1,ICW3中 D2

7、=1,表示接端口接从属8259MOV AL, 01HOUT 21H, AL ;ICW4,一般嵌套,8086 模式,非自动 EOI方式,非缓冲方式MOV AL, 6FH ;A0=1,寻址 OCW1,01101111B,M=0时清除屏蔽状态OUT 21H, ALMIR7 KK1+8259STI AA1: NOP ;无限循环,等待中断发生JMP AA1MIR7: STICALL DELAYMOV AX, 0137HINT 10H ;显示字符 7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETDELAY: PUSH CX ;延时子程序MOV

8、CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验结果如图所示,能够正确执行设定功能.实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以, PUSH DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用 POP DS 指令返回现场.这个实验是关于 8259的单中断,不牵涉级联问题,所以,8259 的初始化只需要看主片就可以了.初始化的时候,一般先使用 CLI指令将所有的可屏蔽中断禁止,然后写入初始化字.8259 有四个初始化控制字ICW1,IC

9、W2,ICW3,ICW4,由于 8259只有一根地址线,因此对各个控制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对 8259的操作命令字的寻址是通过 8259的地址线 A0和某些数据位结合来进行的. 其初始化控制字和控制命令辽的赋值理由我已经在注释中给出. 另外,在初始化程序中我们用了 STI这条指令打开中断,那么进入 MIR7中断程序中,我们为什么又执行 STI这条指令呢,会不会重复了?经过实验,我们知道这条指令并不是没用的,如果缺少后面这条 STI指令,实验中我们会发现,当按一次 KK1开关的时候,屏幕会显示一个字符 7,但是,再按 KK1的时候,就没有反应

10、了,起初并不知道怎么解释这个现象,后来才知道 8086CPU执行完一次中断后,会自动将相应的中断位屏蔽,所以,如果我们想按一次 KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET 指令是短信返回指令,而 IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU 又是怎样进入中断子程序的呢?这就需要我们正确地设置中断向量表的了.实验板上主中断序号 7可用,也就是我们得利用 3CH-3FH这矢量地址.所以在程序开始的时候,就采用 MOV AX, OFFSET MIR7,MOV SI, 003CH,MOV SI, AX这三句来获得偏移地址 I

11、P,接着高地址位置又用 MOV AX, CS,MOV SI, 003EH,MOV SI, AX这三条指令来获得 CS. CPU根据 CS,IP就能转入正确的中断程序执行中断了.而中断程序结尾处,用了 MOV AL, 20H OUT 20H, AL以及 IRET这三条指令, 是为了说明这是正常的 EOI,可以 通知 8259A 此次服务结束 . 3. 8259 级联实验实验接线图如图 4.16所示,KK1连接到主片8259的 IR7上,KK2连接到从片 8259的 IR1上,当按一次 KK1时,显示屏上显示字符“M7” ,按一次 KK2时,显示字符 “S1”。编写程序。图 4.16 8259级联

12、实验 实验步骤(1)按图 4.16连接实验线路。(2)输入程序,编译、链接无误后装入系统。(3)运行程序,按动 KK1或 KK2,观察实验结果,验证实验程序的正确性。(4)若同时按下 KK1和 KK2,观察实验结果,解释实验现象。实验程序清单(INTCAS1.ASM)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX

13、;填 IRQ7的偏移矢量MOV AX, CS ;段地址MOV SI, 003EHMOV SI, AX ;填 IRQ7的段地址矢量MOV AX, OFFSET SIR1MOV SI, 00C4HMOV SI, AXMOV AX, CSMOV SI, 00C6HMOV SI, AXCLIPOP DS;初始化主片 8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4;初始化从片 8259MIR7 KK1+8259SIR18

14、259 KK2+MOV AL, 11HOUT 0A0H, AL ;ICW1MOV 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, 0120HIN

15、T 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的初始化和操作控制. 从片 8259A的 INT输出端接到主控制器的 IR输入端,由从属控制器的中断请求通过主片 8259向 CP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号