实验六 8259中断控制(1)

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

星期二1-2节序号:1

实验六8259中断控制(1)

12120771 易远明

一、电路图

二、程序框图

三、实验程序及注释

ASSUME CS:CODE

INTPORT1 EQU 0060H

INTPORT2 EQU 0061H

INTQ3 EQU INTREEUP3

INTCNT DB ?

ORG 1200H

START: CLD

MOV DX,0FF2BH

MOV AL,80H ;设置8255方式字:A口出

OUT DX,AL

CALL WRINTVER ;WRITE INTRRUPT

MOV AL,13H ;ICW1=00010011B,边沿触发、单8259、需ICW4

MOV DX,INTPORT1

OUT DX,AL

MOV AL,08H

MOV DX,INTPORT2

OUT DX,AL

MOV AL,09H ;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOI

OUT DX,AL

MOV AL,0F7H ;OCW1=11110111B

OUT DX,AL

MOV INTCNT,01H ;延时

STI

WATING: MOV DX,0FF28H ;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)MOV AL,0F0H

OUT DX,AL

JMP WA TING

WRINTVER:

MOV AX,0H

MOV ES,AX

MOV DI,002CH ;中断向量地址2CH=0BH*4

LEA AX,INTQ3

STOSW ;送偏移地址

MOV AX,0000h

STOSW ;送段地址

RET

INTREEUP3:CLI ;中断服务子程序开始

MOV DX,0FF28H ;中断服务子程序执行红灯亮

MOV AL,0FH ;低四位为1则绿灯灭,高四位为0故红灯亮

OUT DX,AL

CALL DELAY1S

MOV AL,20H ;OCW2=001 00 000B非特殊EOI命令,结束命令,用于完全嵌套方式的中断结束

MOV DX,INTPORT1

OUT DX,AL

STI ;开系统中断

IRET

DELAY1S:

MOV CX,0FFFFH

MOV BX,5

L:DEC CX

JNZ L

DEC BX

JNZ L

RET

CODE ENDS

END START

四、实验结果

运行程序后,绿色LED灯点亮,按下AN开关按钮,应当红色LED灯亮,绿色LED 灯灭,过一会儿红灯熄灭了,绿灯又亮了起来。

六、调试过程:

1. 按连线图连接好,检查无误后打开实验箱电源。

2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。

3. 运行程序后,绿色LED灯点亮表面程序运行在主程序。按下AN开关按钮,应当红色LED灯亮,绿色LED灯灭,表明在执行中断服务程序;过一会儿红灯熄灭了,绿灯又亮了起来,表明中断服务程序已返回了主程序。

4. 如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。

七、心得体会:

通过本次实验,我对中断的的过程有了更加深入的认识,清楚了8259中断控制的原理。编程能力也有了一些提高。

相关文档
最新文档