实验二中断控制电路实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
WORD格式
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
WORD格式
四. 出现的问题
4.无法理清电路元件之间的关系。
5.编译中断控制程序出现大量错误。
五. 对问题的解决方法
3.通过查阅书籍知道了电子元件之间基本的信息传递。
4.通过参考其他程序,不断修正错误。