8259外部中断实验

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

河 北 科 技 大 学

实 验 报 告

11 级 专业 软件 班L112 学号11L0352037 14年4月29日 姓 名 李国栋 同组人 指导教师 陈义峰 实验名称 实验三十五 8259外部中断实验 成 绩 实验类型 设计型 批阅教师

实验三十五 8259外部中断实验

一、实验要求

用8088/86控制8259可编程中断控制,实现对外部中断的响应和处理,要求程序中对每次中断进行计数,并将计数结果用8255的PA 口输出到LED 。

二、实验目的

1、学习8088/86与8259可编程中断控制的连接方法。

2、学习8088/86对8259可编程中断控制的控制方法。

三、实验电路及连线

单脉冲

连线 连接孔1 连接孔2 1 右8259_CS CS1 2 右8259的IR0 单脉冲 3 右8259的INT 8088的INTR (在CPU 板左侧) 4 8255_CS CS0 5 PA0 L0 6 PA1 L1 7 PA2 L2 8 PA3 L3 9 PA4 L4 10 PA5 L5 11 PA6 L6 12 PA7 L7

四、实验说明

8088/86需要外接中断控制器才能对外部中断进行处理。在编程时应注意:

1. 正确地设置可编程中断控制和工作方式。

2. 必须正确地设置中断服务程序地址。

8259可外接8个中断源,本实验只响应INT0中断,8259也可以多级连接以响应多个中断源。将单脉冲信号接到8259的INT脚,每次中断时,会看到LED的显示加1。

五、实验参考程序、框图

mode equ 82h ; 8255 工作方式

PA8255 equ 8000h ; 8255 PA口输出地址

CTL8255 equ 8003h

ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4

ICW2 equ 00100000b ; 中断号为20H

ICW4 equ 00000001b ; 工作在8086/88 方式

OCW1 equ 11111110b ; 只响应INT0 中断

CS8259A equ 09000h ; 8259地址

CS8259B equ 09001h

data segment

CNT db 0

data ends

code segment

assume cs:code, ds: data

IEnter proc near

push ax

push dx

mov dx, PA8255

inc CNT

mov al, CNT

out dx, al ; 输出计数值

mov dx, CS8259A

mov al, 20h ; 中断服务程序结束指令

out dx, al

pop dx

pop ax

iret

IEnter endp

IInit proc

mov dx, CS8259A

mov al, ICW1

out dx, al

mov dx, CS8259B

mov al, ICW2

out dx, al

mov al, ICW4

out dx, al

mov al, OCW1

out dx, al

ret

IInit endp

start proc near

mov dx, CTL8255

mov al, mode

out dx, al

cli

mov ax, 0

mov ds, ax

mov bx, 4*ICW2 ; 中断号

mov ax, code

shl ax, 4 ; x 16

add ax, offset IEnter ; 中断入口地址(段地址为0) mov [bx], ax

mov ax, 0

inc bx

inc bx

mov [bx], ax ; 代码段地址为0

call IInit

mov ax, data

mov ds, ax

mov CNT, 0 ; 计数值初始为0

mov al, CNT

mov dx, PA8255

out dx, al

sti

LP: nop ; 等待中断,并计数。

jmp LP

start endp

end start

开始

设置中断服务程序地址

设置中断控制器工作方式

中断允许等待中断

中断入口

计数值加1

输出计数值

输出中断结束命令中断返回

主程序中断服务程序

六、实验步骤

(1) 在实验箱断电的情况下连好线。

(2) 输入程序并检查,保存程序。

(3) “编译”程序。

(4) “全速执行”程序。

(5) 按“单脉冲”按键,观察LED的显示。

七.实验结果

实验现象:按下“单脉冲“,会有灯亮,但是每次按下之后,所亮的灯号和灯数有不同。

实验分析:按下“单脉冲”,电路出现一个中断脉冲信号,进入中断入口,计数值CNT加1,每加一次,CNT的值变化,对应的LED也就发生变化(灯亮或灯灭),每次加上1。

八.实验感受

通过实验连线及程序运行没有得到预期的结果,可是仔细检查连线与程序代码没有发现错误,后来经过老师分析,没有出现预期的效果是因为机器的问题,后来换了台机器终于成功完成了实验,通过这次实验很有收获,加深了对理论的理解。

相关文档
最新文档