8259中断控制 实验报告材料

上传人:沈*** 文档编号:83855559 上传时间:2022-05-02 格式:DOC 页数:8 大小:137KB
返回 下载 相关 举报
8259中断控制 实验报告材料_第1页
第1页 / 共8页
8259中断控制 实验报告材料_第2页
第2页 / 共8页
8259中断控制 实验报告材料_第3页
第3页 / 共8页
点击查看更多>>
资源描述
word深 圳 大 学 实 验 报 告 课程名称: 微机原理与接口技术 实验项目名称: 8259中断控制实验 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人:学号:201019 班级: 电子 实验时间: 2012.5.18 实验报告提交时间: 2012.6.9 教务处制实验目的与要求:1. 掌握8259中断控制器的工作原理2. 掌握8259的应用编程方法3. 掌握8259的级联方式的使用方法实验环境:PC机一台,TD-PITE实验装置或TD-PITC实验装置一套,过滤器一台实验内容与步骤:1. 中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元ICU,该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也一样。从片的INT连接到主片的IR2信号上构成两片8259的级联。在TD-PITE实验系统中,将主控制器的IR6、IR7以与从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接与外部管脚引出如图4.5:图4.5 8259内部连续与外部管脚引出图在对8259进展编程时,首先必须进展初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对存放器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是一样的。系统启动时,主片8259已被初始化,且4号中断源IR4提供应与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示:主片中断序号01234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH说明未开放未开放未开放未开放串口未开放可用可用从片中断序号01234567功能调用30H31H32H33H34H35H36H37H矢量地址C0HC3HC4HC7HC8HCBHCCHCFHD0HD3HD4HD7HD8HDBHDCHDFH说明未开放可用未开放未开放未开放未开放未开放未开放2. 8259单中断实验实验接线图如图4.15所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7。 图4.15 8259单中断实验接线图实验步骤1按图4.15连接实验线路。2编写实验程序,经编译、无误后装入系统。3运行程序,重复按单次脉冲开关KK1,显示屏会显示字符“7,说明响应了中断。实验程序清单INT1.ASMSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDS CODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址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=1,表示接端口接从属8259MOV AL, 01HOUT 21H, AL;ICW4,一般嵌套,8086模式,非自动EOI方式,非缓冲方式MOV AL, 6FH;A0=1,寻址OCW1,01101111B,M=0时去除屏蔽状态OUT 21H, ALSTI AA1: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 CXRETCODEENDSEND 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此次服务完毕.3. 8259级联实验实验接线图如图4.16所示,KK1连接到主片8259的IR7上,KK2连接到从片8259的IR1上,当按一次KK1时,显示屏上显示字符“M7,按一次KK2时,显示字符“S1。编写程序。 图4.16 8259级联实验 实验步骤1按图4.16连接实验线路。2输入程序,编译、无误后装入系统。3运行程序,按动KK1或KK2,观察实验结果,验证实验程序的正确性。4假如同时按下KK1和KK2,观察实验结果,解释实验现象。实验程序清单INTCAS1.ASMSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填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;初始化从片8259MOV 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, 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 CXRETCODEENDSEND START实验结果截图如下,能够正确执行设定功能.级联实验分析:这是8259的级联实验.其中主片8259的初始化和操作前一个程序已经说了,现在,主要说说级联情况下,从片8259的初始化和操作控制.从片8259A的INT输出端接到主控制器的IR输入端,由从属控制器的中断请求通过主片8259向CPU申请.如果从片8259A的中断被CPU响应,在中断响应周期,主控8259将其对应的IR输入端的编码作为对从属8259进展识别的地址.MOV AL, 20H OUT 0A0H, AL OUT 20H, AL IRET这四句就是实现这样的功能.但是,完毕这两个中断的顺序,是否有要求呢?经过实验,我们知道,两条完毕中断的指令,不管谁先执行,都能达到一样的要求. 另外,当处于这种级联方式下,为了保证从属8259正常的中断请求,主片8259就设置成特殊全嵌套方式,从片8259如此就选用一般全嵌套方式.心得与体会: 中断的思想在程序的设计中无疑占有重要的位置.采取中断的方法,大大提高程序的有效性和CPU的高效率工作.因此,8259中断控制实验在微机的几个实验中,就显得尤其重点.掌握8259中断控制器的工作原理和应用编程方法,需要对课本上那些对8259的系统介绍有一个深入的了解,以与级联方式下各个存放器相应的控制和操作方法,这些,都是我们学习的重点,我们应该熟练掌握.指导教师批阅意见:成绩评定: 指导教师签字: 年 月 日备注:8 / 8
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!