实验3 8259A单级中断控制实验
- 格式:doc
- 大小:36.50 KB
- 文档页数:2
实验三 8259A中断控制器实验
一、实验目的
1、认识TDS86/88微机的中断特性。
2、掌握8259A中断控制器的工作原理。
3、掌握8259A中断控制器的应用编程。
4、学习并掌握8259中断控制器的级连方式的使用方法。
二、实验设备
1、TDS86/88实验箱一台。
2、排线、单导线若干。
3、微机一台。
三、实验内容
在实验箱上面,主片8259已被初始化,可直接使用,从片8259全开放给用户使用,但需用户根据实验要求自行设计连接线路个初始化编程。
单片单中断源8259实验
按图六所示实验线路,编写程序,使每响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。
图六
实验参考程序如下:(P4.ASM)
code segment
assume cs:code,ds:code
org 100h
start: push cs
pop ds
cli
push ds
push ds
mov ax,0 ; 设置中断服务程序对应的中断向量表,
mov ds,ax ; 段地址设定在内存的最低端
mov dx, offset intserve ;取中断服务程序段内偏移地址
add dx, 1000h
sub dx, 100h
mov bx, 003ch ;设置中断号,指定存放中断服务程序入口地址的地址
mov word ptr[bx],dx ;将BX所指存储单元临时设置为字类型,并将 ;中断服务程序段内偏移地址放入
pop dx ;将原来入栈的DS出栈,放入DX中
mov word ptr[bx+2],dx ;将BX+2所指存储单元临时设置为字类型,并将 ;中断服务程序段的段地址放入
pop ds
in al, 21h
and al,7fh
out 21h,al
mov cx,10
ag: sti ;中断标志位置1指令
cmp cx,0
jnz ag
hlt ;停及指令
intserve proc far ;定义INTSERVE代码段为FAR属性
push ax
mov ah,01h
mov al,"7"
int 10h
mov al," "
int 10h
dec cx
mov al, 20h
out 20h,al
pop ax
iret
intserve endp
code ends
end start
运行程序,按动KK2微动开关键,显示器上将显示字符“7”,重复按动KK2直到中断10次后,程序退出。