8259中断控制实验报告材料_第1页
8259中断控制实验报告材料_第2页
8259中断控制实验报告材料_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、深圳大学实验报告课程名称:微机原理与接口技术实验项目名称:8259中断控制实验学院专业:电子信息工程指导教师:报告人号号:201019班级:鼻壬实验时间:2012.5.18实验报告提交时间:2012.6.9教务处制实验目的与要求:掌握8259中断控制器的工作原理掌握8259的应用编程方法掌握8259的级联方式的使用方法实验环境:PC机一台,TD-PITE实验装置或TD-PITC实验装置一套,过滤器一台实验容及步骤1.中断控制器8259简介在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准

2、的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的部连接及外部管脚引出如图4.5:图4.58259部连续及外部管脚引出图INTR(内核)串口0MIR6MIR7SIR1在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1

3、、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示:主片中断序号功能调用008H109H20AH30BH40CH50DH60EH70FH矢量地址说明从片中断序号功能调用矢量地址说明20H23H030HC0HC3H未开放24H27H木开放131HC4H-C7H"W28H2BH木开放232HC8HCBH未开放2CH2FH木开放333HCCHCFH未开放2.8259单中断实验实验接线图如图4.15

4、所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生-次外部中断,在显示屏上输出一个字符“7”。实验步骤(1)(2)(3)了中断。按图4.15连接实验线路。编写实验程序,经编译、无误后装入系统。运行程序,重复按单次脉冲开关KK1INT1.ASM)实验程序清单(825930H-33H"W434HD0HD3H未开放34H37H木开放535HD4HD7H未开放38H3BH636HD8HDBH未开放3CH-3FH737HDCHDFH未开放显示屏会显示字符"7”,说明响应SEGMENTSTACKDW32DUPENDSSEGMENTASSUMECS:CODEPUSHD

5、SMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CH;中断矢量地址放在0000:003c0000:003fMOVSI,AX;填IRQ7的偏移矢量MOVAX,CSMOVSI,003EH;段地址MOVSI,AX;填IRQ7的段地址矢量CLIPOPDS;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08H;A0=0,ICW1为00010001B,边沿触发,需要ICW4OUT21H,ALMOVAL,04H;A0=1,ICW2为00001000B,保持低三位为0OUT21H,AL;A0=1,ICW1中SNGL=1,ICW3中D

6、2=1,表示接端口接从属MOVAL,01HOUT21H,AL;ICW4,一般嵌套,8086模式,非自动EOI方式,非缓冲方式MOVAL,6FHOUT21H,AL;A0=1,寻址OCW1,01101111B,M=0时清除屏蔽状态SSTACKSTART:SSTACKCODESTIAA1:NOP;无限循环,等待中断发生JMPAA1MIR7:STICALLDELAYMOVAX,0137HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,AL;中断结束命令IRETDELAY:PUSHCX;延时子程序MOVCX,0F00HAA0:PUSHAXPOPAXLOOPAA0

7、POPCXRETCODEENDSENDSTART实验结果如图所示,能够正确执行设定功能2Tf|W,氐、Hl卜EirrTM*-实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以,PUSHDS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用POPDS指令返回现场.这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可以了.初始化的时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化字.8259有四个初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此

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

9、的中断位屏蔽,所以,如果我们想按一次KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET指令是短信返回指令,而IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU又是怎样进入中断子程序的呢源就需要我们正确地设置中断向量表的了.实验板上主中断序号7可用,也就是我们得利用3CH-3FH这矢量地址.所以在程序开始的时候,就采用MOVAX,OFFSETMIR7,MOVSI,003CH,MOVSI,AX这三句来获得偏移地址IP,接着高地址位置又用MOVAX,CS,MOVSI,003EH,MOVSI,AX这三条指令来获得CS.CPU根据CS,IP

10、就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MOVAL,20HOUT20H,AL以及IRET这三条指令,是为了说明这是正常的EOI,可以通知8259A此次服务结束.3.8259级联实验系MIR7QKK1+单次统总主8259脉冲线SIR1从8259-00KK2+单元图4.168259级联实验实验接线图如图4.16所示,KK1+连接到主片实验步骤(1)(2)(3)(4)8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。编写程序。按图4.16连接实验线路。输入程序,编译、无误后装入系统。运行程序,按

11、动KK1+或KK2+,观察实验结果,验证实验程序的正确性。若同时按下KK1+和KK2+,观察实验结果,解释实验现象。实验程序清单(INTCAS1.ASMSSTACKSEGMENTSTACKDW32DUPSSTACKENDSCODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CH;中断矢量地址MOVSI,AX;填IRQ7的偏移矢量MOVAX,CSMOVSI,003EH;段地址MOVSI,AXMOVAX,OFFSETSIR1MOVSI,00C4HMOVSI,AXMOVAX,C

12、SMOVSI,00C6HMOVSI,AXCLIPOPDS;初始化主片8259MOVAL,11H;填IRQ7的段地址矢量OUT20H,AL;ICW1MOVAL,08HOUT21H,ALMOVAL,04H;ICW2OUT21H,ALMOVAL,01H;ICW3OUT21H,AL;ICW4;初始化从片8259MOVAL,11HOUT0A0H,AL;ICW1MOVAL,30HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALMOVAL,0FDHOUT0A1H,ALMOVAL,6BHOUT21H,ALSTI;ICW2;ICW3;ICW4;OCW1=11111

13、101;主8259OCW1AA1:NOPJMPAA1MIR7:CALLDELAYMOVAX,014DHINT10HMOVAX,0137H;MINT10HMOVAX,0120HINT10HMOVAL,20H;显示字符7OUT20H,ALIRET;中断结束命令SIR1:CALLDELAYMOVAX,0153HINT10HMOVAX,0131H;SINT10HMOVAX,0120HINT10HMOVAL,20HOUT0A0H,ALOUT20H,ALIRET;显示字符1DELAY:PUSHCXMOVCX,0F00HAA0:PUSHAXPOPAXLOOPAA0POPCXRETCODEENDSENDSTA

14、RT实验结果截图如下,能够正确执行设定功能Jnirr广旧.矽TTAL.II4Huurwin*北m.27仁.#iD日工5CP级联实验分析:这是8259的级联实验.其中主片8259的初始化和操作前一个程序已经说了,现在,主要说说级联情况下,从片8259的初始化和操作控制.从片8259A的INT输出端接到主控制器的IR输入端,由从属控制器的中断请求通过主片8259向CPU申请.如果从片8259A的中断被CPU响应,在中断响应周期,主控8259将其对应的IR输入端的编码作为对从属8259进行识别的地址.与主片8259类似,从片8259也需要初始化,以设置其工作状态.其程序与第一个实验程序大体相同.需要注意的是,在级联方式下,中断结束时,要发两次EOI命令,分别使主片和从片执行中断结束命令.程序最后的MOVAL,20HOUT0A0H,ALOUT20H,ALIRET这四句就是实现这样的功能.但是,结束这两个中断的顺序,是否有要求呢?经过实验,我们知道,两条结束中断的指令,不管谁先执行,都能达到相同的要求.另外,当处于这种级联方式下,为了保证从属8259正常的中断请求,主片8259就设置成特殊全嵌套方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论