8259中断实验讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江工业大学计算机学院

实验报告

实验名称 8259A中断实验

姓名李晓峰

学号 ************

班级物联网1301

教师雷艳静

日期 12.18

一、实验内容与要求

1.1 实验内容

利用8259A芯片,实现中断响应程序。要求根据单脉冲按键,输出相应的语句:THIS IS THE xxx INTERRUPT! 。到达中断次数后,屏幕上显示PROGRAM TERMINATED NORMALLY! 1.2 实验要求

(1)第一次按键,输出THIS IS THE 1 st INTERRUPT!;

(2)第二次按键,输出THIS IS THE 2 nd INTERRUPT!;

(3)第十一次按键(特殊),输出THIS IS THE 11 st INTERRUPT!;

(4)以此法继续,直至计数值为零,输出PROGRAM TERMINATED NORMALLY!

二、实验原理与硬件连线

2.1 实验原理

PC用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级别判别等处理后向CPU发出可屏蔽中断请求。IBM PC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源。

中断源中断类型号中断功能

IRQ0 08H 时钟

IRQ1 09H 键盘

IRQ2 0AH 保留

IRQ3 0BH 串行口2

IRQ4 0CH 串行口1

IRQ5 0DH 硬盘

IRQ6 0EH 软盘

IRQ7 0FH 并行打印机

8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级联,对外可以提供16个中断源。

中断源中断类型号中断功能

IRQ8 070H 实时时钟

IRQ9 071H 用户中断

IRQ10 072H 保留

IRQ11 073H 保留

IRQ12 074H 保留

IRQ13 075H 协处理器

IRQ14 076H 硬盘

IRQ15 077H 保留

TPC-USB实验板上,将中断源固定到3号中断IRQ3上,即进行中断实验时,所用中断型号为0BH。

2.2 硬件连线

将TPC-USB实验板上的IQR与8251芯片的IRQ3引脚相连接。

三、设计思路、步骤和程序流程图

3.1 设计思路

要输出“THIS IS THE xxx INTERRUPT!”,必须将字符串分解为3部分,中间部分必须独立输出。后缀分为“th”,“st”,“nd”,“rd”,必须经过判断后进行匹配。

设置中断向量表,并开放IRQ3的中断屏蔽,同时,将DS指向数据段,便于信息的输出。设置中断次数,便于测试。首先,输出中断信息前缀。对于个位数,与1比较.若为1,输出个位数字和对应后缀“st”。若大于1,跳转判断是否等于2。若等于2,输出数字与后缀“nd”。同理,对于4~9可以直接输出数字和后缀“th”。

若数据为二位数,则要先判断个位数。而10~19,数字后缀均为“th”,无需判断(特殊情况)。判断中断计数器的值,为0时屏蔽IRQ3中断,并关中断,结束程序。否则,中断返回,等待硬中断。

3.2 实验步骤

(1)根据电路图,连接各仪器(中断连IRQ3),并进行硬件检测;

(2)设置中断向量表,并开放IRQ3的中断屏蔽。

(3)等待硬中断。判断数据个位数字,若为1,设置后缀为“st”;若为2,设置后缀为“nd”;

若为3,设置后缀为“rd”。特殊情况,11~19时,后缀均为“th”。

(4)判断中断计数器的值,为0时屏蔽IRQ3中断,并关中断,结束程序。否则,中断返回,

等待硬中断。

3.3 程序流程图

3-1 主程序

3-2 中断服务程序

四、程序清单与执行结果

4.1 程序清单

DATAS SEGMENT

MESS1 DB 'THIS IS THE $'

MESS2 DB 'PROGRAM TERMINATED NORMALLY!',0AH,0DH,'$' MESS4 DB 'ST','$'

MESS3 DB ' INTERRUPT!',0AH,0DH,'$'

STR1 DB 'RD','$'

STR2 DB 'ND','$'

STR3 DB 'TH','$'

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DA TAS,SS:STACKS

START:

MOV BX,1

CLI

MOV AX,SEG IRQ3 ;设置中断向量段地址

MOV DS,AX

MOV DX,OFFSET IRQ3 ;设置中断向量偏移地址

MOV AX,250BH ;中断入口地址送中断向量表

INT 21H

IN AL,21H ;读中断屏蔽字

AND AL,0F7H ;开放8259A的IR3中断

OUT 21H,AL

MOV AX,DA TAS

MOV DS,AX ;将DS指向数据段

STI

WIN:

JMP WIN ;等待硬中断

IRQ3:

MOV DX,OFFSET MESS1 ;输出中断信息前缀

MOV AH,9H

INT 21H ;DOS功能调用

CMP BX,9

JA COUT ;中断次数大于9,跳转COUT

相关文档
最新文档