8259中断控制器实验报告
- 格式:doc
- 大小:918.50 KB
- 文档页数:4
8259中断控制器实验报告
作者:
一实验目的
1,掌握8259A的工作原理。
2,掌握编写中断服务程序方法。
3,掌握初始化中断向量的方法。
二,实验设备
CPU挂箱,8086CPU模块
图1-cpu挂箱
三,实验内容
用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74LS273输出一个数据,以点亮于中断源对应位置的LED灯。
四,实验原理
1.本实验用到三部分电路:电平开关电路、简单I/O扩展电路和8259中断控制器电路;
2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内
存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;
3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;
4.中断类型的高5位由8359寄存器ICW2决定,低3位由中断源IRx的编码自动填充,IRO~IR7的编码分别是000,001,010,011,100,101,110,111。
五,实验步骤
1,实验接线
CS0-CS8259 CS1-CS273 00~07-LED1~LED8 K1~K8-IR0~IR7 INT-INT(8086CPU板) INTA-INTA(8086CPU板)
2,编译调试程序
3,全速运行程度,拨动某一电平开关,观察LED的亮灭情况。
六,实验结果
全速运行程序,由上向下拨动开关时,相应位置的LED灯点亮,其余LED灯全灭
七,源代码
ASSUME CS:CODE
CODE SEGMENT PUBLIC
ORG 100H
START: MOV CX,0
START1:CLI
MOV DX,04A0H MOV AX,13H OUT DX,AX MOV DX,04A2H MOV AX,80H OUT DX,AX MOV AX,01H OUT DX,AX MOV AX,00H OUT DX,AX NOP
MOV AX,0
MOV DS,AX
MOV DI,200H ;初始化中断向量表
MOV AX,OFFSET int0
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int1
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int2
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int3
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int4
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int5
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int6
MOV DS:[DI],AX
ADD DI,2
MOV DS:[DI],100H
ADD DI,2
MOV AX,OFFSET int7
MOV DS:[DI],AX
ADD DI,2 ;上述程序为芯片8259的初始化程序MOV DS:[DI],100H
MAIN:
MOV AX,0
STI
WAITING: CMP AX,0H
JE WAITING
MOV DX,04B0H
OUT DX,AX
MOV CX,0
DELAY: LOOP DELAY
JMP START1
Int0:CLI
NOP
MOV AX,OFEH
IRET
Int1:CLI
NOP
MOV AX,OFDH
IRET
Int2:CLI
NOP
MOV AX,OFBH
IRET
Int3:CLI
NOP
MOV AX,OF7H
IRET
Int4:CLI
NOP
MOV AX,OEFH
IRET
Int5:CLI
NOP
MOV AX,ODFH
IRET
Int6:CLI
NOP
MOV AX,OBFH
IRET
Int7:CLI
NOP
MOV AX,O7FH
IRET。