当前位置:首页 > 利用8259A中断实现交替闪灯实验报告
利用8259A中断实现交替闪灯实验
组员:房皓 13410801 任课教师:李济生
一、
实验目的
该实验能使学生掌握8259A矢量中断方式的硬件连接和软件编程的方法,同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。
二、 实验内容
每按动一次PLUS按钮,产生一次中断信号向8259A发出中断请求,在中断程序里将LED指示等交替点亮和熄灭。选择完成在数码管上显示“8259-A”。
表1:主从片8259A的端口地址如下所示: 用户中断输入引脚 对应8259引脚输入 IRQ5(MIR5) IRQ8(SIR0)
主片IR5 从片IR0 中断屏蔽字 11011111B 11111110B 中断类型号 35H 70H 8259端口地址 20H,21H 0A0H,0A1H 表2:32位微机主8259A的中断类型号与中断源的对应关系是: 中断源 主片中断向量 从片中断向量 IR0 30H 70H IR1 31H 71H IR2 32H 72H IR3 33H 73H IR4 34H 74H IR5 35H 75H IR6 36H 76H IR7 37H 77H 三、 实验接线图
图2-5 实验连线图
四、 实验步骤
1、 根据原理图正确连接实验线路(需要连接粗黑线)。 2、 正确理解实验原理。
3、 编写实验程序,并上机调试,观察实验结果。
五、 六、
实验结果 实验总结
运行程序后,波动开关,LED灯交替闪灯。
通过本次试验,我掌握了8259A中断控制器和微机接口的连接方法,并了解了8259A中断控制器的基本的工作原理和编程方法。
七、 实验代码
.Model small .386
DATA SEGMENT NUM DB 0 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DS,AX
;8259填写中断向量表 CLI ;关中断
CLD ;填写中断入口地址表0 MOV AX,0H
MOV DS,AX ;DS内清零
MOV DI,4*35H ;35H为中断向量号
MOV AX,OFFSET INT_35 ;中断服务程序入口偏移地址送AX MOV [DI],AX
MOV AX,SEG INT_35 ;中断服务程序入口段基址送AX MOV [DI+2],AX
MOV DX,203H ;初始化8255
MOV AL,10000000B ;设置8255控制字,B口输出 OUT DX,AL
IN AL,21H ;读IMR
AND AL,11011111B ;设置OCW1,开放IR5中断 OUT 21H,AL ;写中断屏蔽字OCW1
MOV BL,00000000B ;BL用于计数 STI ;开中断 AGAIN:
JMP AGAIN ;一直等待中断
MOV AX,DATA MOV DS,AX
MOV AH,4CH ;结束,返回DOS INT 21H
INT_35 PROC NEAR ;中断服务程序 PUSH DX ;保护现场 PUSH AX
PUSH CX
CLI ;关中断 MOV AX,DATA MOV DS,AX
XOR BL,11111111B ;反转 MOV AL,BL
MOV DX,201H ;8255B口数据口 OUT DX,AL ;输出到LED
MOV AL,20H ; OUT 20H,AL
STI ; POP CX ; POP AX POP DX
IRET ;INT_35 ENDP
CODE ENDS END START 写OCW2,送中断结束命令EOI 开中断 恢复现场 中断返回
共分享92篇相关文档