实验二 中断控制电路实验

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

实验二中断控制电路实验

一. 实验目的

1.学习单片机的中断控制原理。

2.编程中断控制器。

二. 实验环境

硬件环境:奔3以上处理器,512MB以上内存空间

软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。

三.实验内容与完成情况

1.实验电路图

2.实验原理

8259中断控制器是专为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。

(1) 写初始化命令字

* 写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。

* 写初始化命令字ICW2,以定义中断向量的高五位类型码。

* 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。

第i位=0,表明IRi引脚上无从片

第i位=1,表明IRi引脚上有从片

* 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。

(2) 写控制命令字

* 写操作命令字0CW1,用来设置或清除对中断源的屏蔽。

第i位=0,对应的中断请求IRi开放

第i位=1,对应的中断请求IRi屏蔽

注:OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。

* 操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。

注:8259A复位时自动设置IR0优先权最高,IR7优先权最低。

* 操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态。

(3) 8259A查询字

通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,有则转入相应的中断服务程序。

3.编程中断控制制器

STACK SEGMENT STACK

DB 200 DUP(0)

STACK ENDS

DA TA SEGMENT

CNT DB 1

DA TA ENDS

code SEGMENT 'code'

assume CS:code,DS:data

start:

MOV AX,DATA

MOV DS,AX

CLI

MOV AX,0

MOV ES,AX

MOV SI,60H*4

MOV AX,OFFSET int0

MOV ES:[SI],AX

MOV AX,CS

MOV ES:[SI+2],AX

MOV AL,00010011b

MOV DX,400H

OUT DX,AL

MOV AL,060h

MOV DX,402h

OUT DX,AL

MOV AL,1bh

OUT DX,AL

MOV DX,402h

MOV AL,00h

OUT DX,AL

MOV AL,20H

OUT 20H,AL

MOV AL,cnt

MOV DX,0200H

OUT DX,AL

STI

li:

MOV DX,400H

MOV AL,60h ;

OUT DX,AL

JMP li

int0: CLI

MOV AL,cnt

ROL AL,1

MOV cnt,AL

MOV DX,0200h

OUT DX,AL

STI

IRET

code

ENDS

END start

四.出现的问题

1.无法理清电路元件之间的关系。

2.编译中断控制程序出现大量错误。

五.对问题的解决方法

1.通过查阅书籍知道了电子元件之间基本的信息传递。

2.通过参考其他程序,不断修正错误。

相关文档
最新文档