计算机接口技术实验报告
实验五 8259中断控制器实验
一、实验目的
1、掌握8259A的工作原理。
2、掌握编写中断服务程序方法。
3、掌握初始化中断向量的方法。
二、实验设备
CPU挂箱、8086CPU模块。
三、实验内容
用电平开关的输出作为中断源,每个开关对应于一个中断源。在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED。
四、实验原理
本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。8259的使用说明请详细阅读教科书。8086的中断系统是向量中断方式。内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。中断类型由8259通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。请仔细研读8259的工作时序。中断类型的高5位由8259寄存器ICW2决定,低3位由中断源IRx的编码自动填入。IR0~IR7的编码分别为000,001,010,011,100,101,110,111。
五、实验步骤
1、实验接线
CS0 (CS8259 CS1 (CS273 O0~O7(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:movcx,0
start1: cli
mov dx,04a0h
mov ax,13h
out dx,ax;ICW1, ICW4 NEEDED
movdx,04a2h
mov ax,80h
out dx,ax ;ICW2 中断类型80h
mov ax,01
out dx,ax ;ICW4
mov ax,00h
out dx,ax ;OCW1, 开放所有中断
mov ax,0
mov ds,ax
mov si,200h ;初始化中断向量表
mov ax,offset hint
mov ds:[si],ax
add si,2
mov ds:[si],100h
mov ax,0
;jmpstart
sti
waiting:
cmp ax,55h
nop
nop
nop
nop
nop
nop
nop
nop
jne waiting;没发生中断,则等待
nop
nop
mov dx,04b0h
xorcx,0ffh
mov ax,cx
outdx,ax;LED灯亮灭一次
jmpstart1
nop
hint: cli
nop
nop
nop
nop
nop
nop
nop
nop
mov ax,55h
nop
iret
code ends
end start
九.实验分析:通过实验连线及程序运行没有得到预期的结果,可是仔细检查连线与程序代码没有发现错误,后来经过老师分析,没有出现预期的效果是因为机器的问题。虽然实验没有成功,但是还是有收获,加深了对理论的理解。
实验六 存储器读写实验
一、实验目的
1.掌握PC机外存扩展的方法。
2.熟悉6264芯片的接口方法。
3.掌握8086十六位数据存储的方法 。
二、实验设备
CPU挂箱、8086CPU模块。
三、实验内容
向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。
四、实验原理
本实验用到存储器电路。RAM区的地址为02000H,编程时可将地址设为01000H,则偏移地址为1000H。 如果按字节进行存储,则