实验二 中断控制电路实验
- 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
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.通过参考其他程序,不断修正错误。