8259中断控制实验报告docx.docx
- 文档编号:30468762
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:9
- 大小:95.33KB
8259中断控制实验报告docx.docx
《8259中断控制实验报告docx.docx》由会员分享,可在线阅读,更多相关《8259中断控制实验报告docx.docx(9页珍藏版)》请在冰豆网上搜索。
8259中断控制实验报告docx
8259中断控制实验报告
实验六8259中断控制
一、实验目的
1.学习8086/8088CPU中断系统的知识。
2.学习8259中断控制器的使用。
二、实验内容
1.编写程序,使8255的A口控制LED灯。
CPU执行主程序时四个绿灯亮。
用脉冲信号作为8259的IR3的输入信号,向CPU请求中断。
CPU在中断服务程序中熄灭绿灯,并使4个红灯亮。
中断服务程序结束,又返回主程序,再使绿灯亮。
2.编写程序,使8255的A口控制LED灯。
CPU执行主程序时四个绿灯亮。
用脉冲信号作为8259的IR3的输入信号,向CPU请求中断。
CPU在中断服务程序中每中断一次,使4个红色LED灯中每次只亮一个灯,并随每一次中断逐次移动一个灯的位置,中断服务程序结束,又返回主程序,再使绿灯亮。
三、实验区域电路连接图
(1)8259的INT连8088的INTR(Xl5);
(2)8259的INTA连8088的INTA(Xl2);
(3)“”插孔和8259的3号中断IR3插孔相连;(单脉冲与时钟单元);
(4)8259的CS端接EX1(60H);
(5)连JX4→JX17。
(6)IOWR→IOWR;
(7)IORD→IORD;
(8)A0→A0;(9)PA0…PA3→L2,L6,L10,L14;PA4…PA7→L3,L7,L11,L15。
四、程序框图
1.
2.
五、实验步骤
(1)8259的INT连8088的INTR(Xl5);
(2)8259的INTA连8088的INTA(Xl2);
(3)单脉冲插孔和8259的3号中断IR3插孔相连;(单脉冲与时钟单元);
(4)8259的CS端接EX1(60H);
(5)连JX4→JX17。
(6)IOWR→IOWR;
(7)IORD→IORD;
(8)A0→A0;(9)PA0…PA3→L2,L6,L10,L14;PA4…PA7→L3,L7,L11,L15。
六、实验程序
1.
CODESEGMENT
ASSUMECS:
CODE
INTPORT1EQU0060H
INTPORT2EQU0061H
INTQ3EQUINTREEUP3
INTCNTDB?
ORG1200H
START:
CLD
MOVDX,0FF2BH
MOVAL,80H;设置8255方式字:
A口输出
OUTDX,AL
CALLWRINTVER;WRITEINTRRUPT
MOVAL,13H;ICW1=00010011B,边沿触发、单8259、需ICW4
MOVDX,INTPORT1
OUTDX,AL
MOVAL,08H
MOVDX,INTPORT2
OUTDX,AL
MOVAL,09H;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOI
OUTDX,AL
MOVAL,0F7H;OCW1=11110111B
OUTDX,AL
MOVINTCNT,01H;延时
STI
WATING:
MOVDX,0FF28H;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)
MOVAL,0F0H
OUTDX,AL
JMPWATING
WRINTVER:
MOVAX,0H
MOVES,AX
MOVDI,002CH;中断向量地址2CH=0BH*4
LEAAX,INTQ3
STOSW;送偏移地址
MOVAX,0000h
STOSW;送段地址
RET
INTREEUP3:
CLI;中断服务子程序开始
PUSHDX
PUSHAX
MOVDX,0FF28H;中断服务子程序执行红灯亮
MOVAL,0FH;低四位为1则绿灯灭,高四位为0故红灯亮
OUTDX,AL
CALLDELAY1S
MOVAL,20H;OCW2=00100000B非特殊EOI命令,结束命令,用于完全嵌套方式的中断结束
MOVDX,INTPORT1
OUTDX,AL
STI;开系统中断
POPAX
POPDX
IRET
DELAY1S:
MOVCX,0FFFFH
MOVBX,5
L:
DECCX
JNZL
DECBX
JNZL
RET
ENDSTART
2.
CODESEGMENT
ASSUMECS:
CODE
ORG1200H
INTCNTDB0EFH;全局变量INTCNT=11101111B
START:
MOVDX,0FF2BH
MOVAL,80H;设置8255方式字:
A口出
OUTDX,AL
MOVAL,0FFH
MOVDX,0FF28H
OUTDX,AL
CALLY2
MOVAL,13H;
ICW1=00010011B,边沿触发、单8259、需ICW4
MOVDX,60H
OUTDX,AL
MOVAL,08H;
ICW2=00001000B,IR3(ICW2低两位自动跳变为11,即00001011B)进入则中断号=0BH
MOVDX,61H
OUTDX,AL
MOVAL,09H;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOI
OUTDX,AL
MOVAL,0F7H;OCW1=11110111B
OUTDX,AL
MOVINTCNT,0EFH
STI
Y1:
MOVDX,0FF28H;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)
MOVAL,0F0H;D7…D4=1111,D3…D0=0000
OUTDX,AL
JMPY1;循环
Y2:
MOVAX,0H
MOVES,AX
MOVDI,002CH;中断向量地址2CH=0BH*4
LEAAX,INTREEUP3
STOSW;送偏移地址
MOVAX,0000H
STOSW;送段地址
RET
INTREEUP3:
CLI
PUSHAX;保护现场
PUSHDX
PUSHCX
MOVDX,0FF28H;中断服务子程序执行红灯亮
MOVAL,INTCNT
OUTDX,AL
ROLINTCNT,1;循环左移一位
JCY4
MOVINTCNT,0EFH
Y4:
MOVAX,10H;延时服务程序
INTRE0:
MOVCX,10000
LOOP$
DECAX;AX=AX-1
JNZINTRE0
INTER2:
;设置OCW2
MOVAL,20H;D5=EOI=1,发送EOI指令结束中断
MOVDX,60H
OUTDX,AL
POPCX;现场恢复
POPDX
POPAX
STI;开系统中断
IRET
CODEENDS
ENDSTART
七、实验感想
本次实验锻炼的是我们对8259中断控制的理解。
我感觉实验程序比较复杂的。
主程序的编程重点在于8255和8259的初始化,其工作方式要考虑实验箱的实际接线,控制字的确定也需要仔细对照控制字表,以及中断的执行、恢复;中断部分的编程重点在于中断向量的初始化和中断服务子程序的功能实现以及中断的现场恢复等。
通过这两次实验,我更深刻地理解了8259中断控制的工作方式和编程方法,同时也进一步熟悉了8255的工作方式,加深了对理论知识的理解和掌握。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8259 中断 控制 实验 报告 docx