实验报告四 中断系统实验.docx

上传人:b****8 文档编号:9909108 上传时间:2023-02-07 格式:DOCX 页数:15 大小:383.17KB
下载 相关 举报
实验报告四 中断系统实验.docx_第1页
第1页 / 共15页
实验报告四 中断系统实验.docx_第2页
第2页 / 共15页
实验报告四 中断系统实验.docx_第3页
第3页 / 共15页
实验报告四 中断系统实验.docx_第4页
第4页 / 共15页
实验报告四 中断系统实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验报告四 中断系统实验.docx

《实验报告四 中断系统实验.docx》由会员分享,可在线阅读,更多相关《实验报告四 中断系统实验.docx(15页珍藏版)》请在冰豆网上搜索。

实验报告四 中断系统实验.docx

实验报告四中断系统实验

信息工程学院实验报告

成绩:

指导老师(签名):

课程名称:

微机原理与接口技术

实验项目名称:

中断系统实验实验时间:

2016.11.24

班级:

姓名:

学号:

一、实验目的

1.掌握8259中断控制器的工作原理。

2.掌握系统总线上中断请求的应用编程方法。

二、实验设备

PC微机一台、TD-PITD+实验系统一套。

3、实验原理

1.中断控制器8259简介

中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需增加其他电路的情况下,通过多片8259的级连,能构成多达64级的矢量中断系统。

它的管理功能包括:

1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。

8259的内部结构和引脚如图4-1所示。

8259的命令共有7个,一类是初始化命令字,另一类是操作命令。

8259的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。

ICW1-ICW4各命令字格式如图4-2所示,OCW1-OCW3各命令字格式如图4-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。

2.8259寄存器及命令的控制访问

在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。

对寄存器和命令的访问控制如表4-1所示。

图4-18259内部结构和引脚图

图4-2(a)ICW1格式

图4-2(b)ICW2格式

图4-2(c)ICW3格式

图4-2(d)ICW4格式

图4-3OCW命令字格式

表4-18259寄存器及命令的访问控制

A0

D4

D3

读信号

写信号

片选

操作

0

0

1

0

读出ISR,IRR的内容

1

0

1

0

读出IMR的内容

0

0

0

1

0

0

写入OCW2

0

0

1

1

0

0

写入OCW3

0

1

×

1

0

0

写入ICW1

1

×

×

1

0

0

写入OCW1,ICW2,ICW3,ICW4

3.PC微机系统中的8259

在80x86系列PC微机系统中,系统中包含了两片8259中断控制器,通过级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表4-2示。

两片8259的端口地址为:

主片8259使用20H和21H两个端口;从片使用A0H和A1H两个端口。

系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级~15级,然后是3级~7级。

在实验平台上系统总线单元的INTR1和INTR2两个信号对应的是两路中断请求线。

在Tdpit集成操作环境中,INTR1对应的是PC机内部主片8259中断的IRQ7,INTR2对应的是IRQ6。

PC机内部8259已经在PC启动时初始化好,在使用时主要是将其中断屏蔽位打开,修改中断向量,程序结束时还原中断向量。

表4-2PC微机系统中的硬件中断

中断号

功能

中断向量号

中断向量地址

主8259IRQ0

日时钟/计数器0

08H

0020H~0023H

主8259IRQ1

键盘

09H

0024H~0027H

主8259IRQ2

接从片8259

0AH

0028H~002BH

主8259IRQ3

串行口2

0BH

002CH~002FH

主8259IRQ4

串行口1

0CH

0030H~0033H

主8259IRQ5

并行口2

0DH

0034H~0037H

主8259IRQ6

软盘

0EH

0038H~003BH

主8259IRQ7

并行口1

0FH

003CH~003FH

从8259IRQ8

实时钟

70H

01C0H~01C3H

从8259IRQ9

保留

71H

01C4H~01C7H

从8259IRQ10

保留

72H

01C8H~01CBH

从8259IRQ11

保留

73H

01CCH~01CFH

从8259IRQ12

保留

74H

01D0H~01D3H

从8259IRQ13

协处理器中断

75H

01D4H~01D7H

从8259IRQ14

硬盘控制器

76H

01D8H~01DBH

从8259IRQ15

保留

77H

01DCH~01DFH

四、实验内容与步骤

1.单中断应用实验

在前面已经介绍了实验平台上系统总线单元的INTR1中断请求信号已经是对应到PC机内部主片8259的IRQ7。

INTR1产生一个上升沿的中断请求,PC机内部相应的IRQ7中断处理就会得到响应。

所以,使用INTR1中断请求信号,就相当在使用PC机内部IRQ7中断。

本实验要求使用总线上INTR1(IRQ7)中断请求线完成一次单中断应用实验。

用单次脉冲上升沿模拟中断源,中断处理程序完成在屏幕上的显示字符“7”。

参考程序流程如图4-4所示。

实验步骤如下。

(a)主程序(b)中断处理程序

图4-48259单中断应用实验参考程序流程图

(1)实验接线图如图4-5所示,按图接线。

图4-5(a)8259单中断实验参考接线图

图4-5(b)8259单中断实验实物接线图

(2)运行Tdpit集成操作软件,进入编辑调试集成环境。

(3)根据程序设计使用语言不同,在“语言设置”菜单项中设置所使用的语言。

如图4-6所示。

该项一经设置,会再下次启动后仍保持不变。

图4-6设置语言环境

(4)开始新建文件进行编程。

点击“文件”菜单项中的“新建”,可以新建一个空白文档。

默认名为Td-pit1。

如图4-7所示。

图4-7新建空白文档

(5)编写程序,如图4-8所示,并保存,此时软件会提示输入新的文件名,输入文件名后点击保存。

图4-88259单中断实验程序编辑界面

(6)点击

,编译文件,若程序编译无误,然后再点击

,连接程序。

编译连接成功会在输出信息栏显示输出信息,如图4-9所示。

图4-9编译连接输出信息

(7)编译连接成功后可以点击

,运行程序,查看运行结果。

五、实验结果及分析:

(1)编译连接成功后,使用运行命令运行程序,重复按单次脉冲开关KK1+,查看结果。

图4-10结果显示窗口

分析:

重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。

(2)编译连接成功后,在程序编辑界面点击

,调试程序,进入调试界面,进行程序的调试,如图4-11所示。

图4-11调试界面

分析:

通过设置断点并运行,查看对应寄存器情况。

六、实验总结:

通过本实验,我初步了解了存储器扩展的方法和存储器的读/写,以及学会了如何检查硬件连线是否出错。

初步掌握CPU对32位和8位存储器的访问方法。

同时对实验系统配套操作软件的使用也更加熟练。

通过本次实验加深了对理论编程的知识的理解,巩固了我的理论知识。

附录:

;T8259-1.asm

;8259单中断应用实验

;查看端口资源分配情况,记录实验系统I/O端口始地址

INTR_IVADDEQU003CH;INTR对应的中断矢量地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATASEGMENT

MESDB'Pressanykeytoexit!

',0AH,0DH,0AH,0DH,'$'

CS_BAKDW?

;保存INTR原中断处理程序入口段地址的变量

IP_BAKDW?

;保存INTR原中断处理程序入口偏移地址的变量

IM_BAKDB?

;保存INTR原中断屏蔽字的变量

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMES;显示退出提示

MOVAH,09H

INT21H

CLI

MOVAX,0000H;替换INTR的中断矢量

MOVES,AX

MOVDI,INTR_IVADD

MOVAX,ES:

[DI]

MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址

MOVAX,OFFSETMYISR

MOVES:

[DI],AX;设置当前中断处理程序入口偏移地址

ADDDI,2

MOVAX,ES:

[DI]

MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址

MOVAX,SEGMYISR

MOVES:

[DI],AX;设置当前中断处理程序入口段地址

INAL,21H

MOVIM_BAK,AL;保存INTR原中断屏蔽字

ANDAL,7FH

OUT21H,AL

STI

WAIT1:

MOVAH,1;判断是否有按键按下

INT16H

JZWAIT1;无按键则跳回继续等待,有则退出

QUIT:

CLI

MOVAX,0000H;恢复INTR原中断矢量

MOVES,AX

MOVDI,INTR_IVADD

MOVAX,IP_BAK;恢复INTR原中断处理程序入口偏移地址

MOVES:

[DI],AX

ADDDI,2

MOVAX,CS_BAK;恢复INTR原中断处理程序入口段地址

MOVES:

[DI],AX

MOVAL,IM_BAK;恢复INTR原中断屏蔽寄存器的屏蔽字

OUT21H,AL

STI

MOVAX,4C00H;返回到DOS

INT21H

MYISRPROCNEAR;中断处理程序MYISR

PUSHAX

MOVAL,37H

MOVAH,0EH

INT10H

MOVAL,20H

INT10H

OVER:

MOVAL,20H

OUT20H,AL

POPAX

IRET

MYISRENDP

CODEENDS

ENDSTART

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1