物理与机电工程系(2015——2016学年第一学期)中断响应—8259A芯片的使用上机实验报告专业:电子信息工程学号:278272777772姓名:与贸易任课教师:不同一实验地点:实验楼9727项目编号:实验六一、实验目的1.学习可编程中断控制器8259的应用;2.进一步掌握汇编语言程序的编写。二、实验内容已知8259A采用上升沿触发,单片,全嵌套、非缓冲、普通中断结束方式,需要设置ICW4,中断类型号为80H—87H,在8259A的IR2端(INT2端)输入一个中断请求信号(该信号由单脉冲提供),74LS273的输出接LED0指示灯。编写程序实现题目要求:74LS273接8个指示灯,要求第一次中断LED0亮,第二次中断LED1亮,以此重复,直到10次计数到为止。【已知8259A采用上升沿触发,单片,全嵌套、非缓冲、普通中断结束方式,需要设置ICW4,中断类型号为80H—87H,在8259A的IR2端(INT2端)输入一个中断请求信号(该信号由开关提供),74LS273的输出接LED指示灯。三、实验过程1.实验接线示意图(Proteus仿真):硬件(1)74HC138译码电路如图所示,A15为1,E2、E3接地保证74HC138正常工作,此时Y0、Y1对应地址分别为8000H、9000H(2)8086有16位数据总线,其低8位作为偶存储体来传输数据,8086的A0要一直为0,所以8259的A0要接8086的A18259的IR2端接开关,用来输入中断请求信号(3)74LS273的片选地址为8000H,且需要向其写入LED灯的状态,则Y0和WR经或非门后接入CLK。注:实际实验中使用8088芯片,故8259的A0引脚与8088的A0端相连。2、软件部分:程序源代码见附录3、链接好电路图如下:3、利用Source-Add/RemoveSourcefiles中添加源程序EX-138.ASM(在实验包中已提供),该程序向240H端口写任意数据。如果是第一次运行,SourceCodeFilename这一项选New来调入源程序。如图4.打开ISIS7Professional,在Source菜单下点击“DefineCodeGenerationTools”,并单击“New”按钮;5.点击“Browse”按钮,找到masm32.bat所在的位置;设置代码生成规则;6.添加源代码,选择对应的编译工具;7.在Source菜单下点击“BuildAll”,编译源代码;8.运行仿真。在Source菜单下点击“BuildAll”,汇编源代码(全部编译);执行程序,查看Y0~Y7中是否Y4#脚输出为有效(管脚出的有颜色的小方块为红色是高电平,蓝色为低电平)。按下开关按键,LED等依次序第点亮,到最后一个等亮后,再继续按键,第一个LED灯又重复点亮,反复循环。四、实验结论1、通过本次实验,熟悉了8259A中断控制器编程方法和硬件的使用。2、编写程序,进一步了解8259A的中断的原理和过程。3、要多加练习,熟悉在汇编环境和实验箱硬件的使用的过程。4、本实验有主程序和中断服务程序等两个程序,要加载到不同的地址。5、在理解原有程序的基础上,学会了中断处理程序的编写。五、实验中存在问题及解决方法1、实验中一开始一直无法运行,经过多次反复的排查发现,由于在链接电路图时的粗心,对一些电路元件的参数的修改不对或没有修改,导致实验无法进行。2、实验中用到的程序代码存放位置和调用路径设置上的不一致,导致程序调用有误让实验发生错误不能运行,LED灯不能点亮,经过一系列的排查修改,最终顺利完成了实验。六、教师评语