实验四 中断及8259A编程(1)_第1页
实验四 中断及8259A编程(1)_第2页
实验四 中断及8259A编程(1)_第3页
实验四 中断及8259A编程(1)_第4页
实验四 中断及8259A编程(1)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验四 中断及8259A编程(1)一、 实验目的1掌握PC机中断系统的基本工作原理。2学会编写中断服务程序。二、 实验预习要求1 复习教材中有关中断的内容,了解PC机的中断处理过程。2 复习8259中断控制器中中断屏蔽寄存器的功能。3 预先编写好实验程序。三、 实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259可编程中断控制器(PIC)管理。PIC用于接收外部的中断请求信号,经过优先级判别以及排队等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内只使用了一片8259中断控制器,可以支持8个外部中断源,如表3-1所示:表3-1 PC、PC/XT机的中断分配中断源中断类型号中

2、断功能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ30BH串行口2IRQ40CH串行口1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机8个中断源的中断请求信号线IRQ0IRQ7在主机的总线插座中可以引出,操作系统已设定中断请求信号为“边沿触发”,普通结束方式。286以上的微机在PC、PC/XT的单一的8259中断控制器基础上又扩展了一片8259中断控制器,扩展的8259与主8259通过IRQ2进行级连,两片8259共支持15级外部中断。考虑到通用性,在本实验台接口卡上设有一个跳线开关(JP),可以选择把IRQ2、IRQ3、IRQ4、IRQ7其中的一个引到实验台上的

3、IRQ插座上,跳线方法前面已介绍(安装部分),出厂设置的是IRQ7。四、 实验内容图3-1 中断实验电路实验电路如图3-1,用手揿压微动开关K产生单脉冲作为中断请求信号(只需连接一根导线,把单脉冲信号引到中断请求线IRQ上)。要求每按一次开关就产生一次中断,由中断服务程序在屏幕上显示“This is an IRQ7 interrupt!”,中断10次后程序退出。五、 实验习题修改本实验的程序,改为每按一次单脉冲按钮K,就在屏幕上显示一次中断产生的时间,格式为 ”Current Time: HH:MM:SS”,共10次。取当前时间的方法请参考汇编语言编程实验七中的提示。六、 实验报告要求1 整理

4、出实验中的完整程序。2 总结一下中断程序的编写方法以及应注意哪些方面。3 (选做)完成实验习题。实验四 Windows中断(2)一、实验目的 、了解Windows下中断处理过程 、比较中断和查询两种数据交换方法的效率差别二、实验内容图1 查询方法用查询和中断方式分别实现控制指示灯,实验电路如图。要求直接用手动产生的单脉冲作为中断请求信号,每按一次单脉冲产生一次中断,让指示灯显示一秒钟的0x55,否则让指示灯显示0xAA。然后在任务栏比较中断和查询方式下CPU利用率的差别。1、用查询方法将8255的A口设为输出接指示灯,C口设为输入,将PC0接正脉冲输入,线路连接如下图1所示:2、用中断方法将8

5、255的A口设为输出,IRQ直接接到正脉冲,如图2示图2 中断方式三、参考编程提示1查询方式流程图(略)/*/* (查询方式) */*/#include<stdio.h>#include<conio.h>#include ".ApiEx.h"#pragma comment(lib,".ApiEx.lib")void main()BYTEdata;if(!Startup()/*打开设备*/printf("ERROR: Open Device Error!n");return;printf("Please

6、 Press DMC! Press any key to exit!n");PortWriteByte(0x28b,0x8b);/*设8255为方式0,C口输入,A口输出*/while(!kbhit()PortReadByte(0x28a,&data);if(data&0x01)PortWriteByte(0x288,0x55);Sleep(1*1000);/*延迟*/PortWriteByte(0x288,0xaa);Cleanup();/*关闭设备*/2中断方式流程图(略)/*/* (中断方式) */*/#include<stdio.h>#includ

7、e<conio.h>#include ".ApiEx.h"#pragma comment(lib,".ApiEx.lib")int i;void MyISR()PortWriteByte(0x288,0x55);Sleep(1*1000);printf("%dn",i+);void main()if(!Startup()/*打开设备*/printf("ERROR: Open Device Error!n");return;printf("Please Press DMC! Press any

8、key to exit!n");PortWriteByte(0x28b,0xa0);RegisterLocalISR(MyISR);/*注册中断程序*/EnableIntr();/*开中断*/while(!kbhit()PortWriteByte(0x288,0xaa);Sleep(1*100);DisableIntr();/*关中断*/Cleanup();/*关闭设备*/实验四 中断特性及8259应用编程实验(3) 一、实验目的 1、 学习在原理实验器上构造连接实验电路的方法。 2、 学习DICE-8086B教学机同外接实验器的连接方法。 3、 认识教学机的中断特性。 4、 掌握8

9、259中断控制器的工作原理。 5、 掌握8259可编程中断控制器的应用编程。 6、 学习掌握8259级连方式的使用方法。 二、实验设备 1、 DICE-8086B教学机一台,DICE-EX组合实验板一块。 2、 74LS00芯片一片,1K电阻器四个,微动开关二个,级连实验用8259芯片(从片)一片,导线若干。 三、8259芯片介绍 (自学部分)1) 8259介绍 中断控制器8259A是专门为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可

10、以由用户编程来设定。同时,在不需要增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。 2) 8259A芯片DICE-8086B教学机中的8259A芯片工作于单片方式,但可由用户扩展接成级连方式。教学机中8259A的线路如图3. 3所示。 教学机系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW1-ICW4来完成的。8259A初始化程序流程图如图3. 4所示。 系统初始化时,规定0#和1#中断源分别提供给实时钟和键盘中断;用户可以使用2-7号中断源,其中6-7两个中断请求线已接到CX&TS实验接口上,其余可用中断源在圆孔信

11、号插座上可引出。在进入监控后,只有1#中断源处于开启状态,其它中断源都被屏蔽了。 中断矢量地址与中断号之间的关系如下表所示。 中断序号 0 1 2 3 4 5 6 7 功能调用 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH   矢量地址   20H 23H 24H 27H 28H 2BH 2CH 2FH 30H 33H 34H 37H 38H 3BH 3CH 3FH 说 明 实时钟 键盘 可用 可用 串行口 可用 可用 可用 四、实验内容及步骤 按图3. 5所示实验线路,编写程序,使主机每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。程序流程图及参考程序如图3. 6所示。

温馨提示

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

评论

0/150

提交评论