实验六 8259外部中断实验

2020-02-21 15:45

实验四 8259外部中断实验

姓名: 学号: 班级:

1、实验要求:

用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果显示在LED数码管上。

2、实验目的:

(1)学习8088/86与8259的连接方法。 (2)学习8088/86对8259的控制方法。

3. 实验器材:

(1)G2010+实验平台 1 台 (2)G6W仿真器 1 台

(3)连线 若干 根 (4)8259芯片 1 片 (5)万用表 1 块 (6)Lab8088板 1 块

4、实验电路:

5、实验说明:

编程时注意:(1)正确地设置可编程中断控制和工作方式。(2)必须正确地设置中断服务程序地址。8259可外接8个中断源,本实验只响应INT0中断,8259也可以多级连接以响应多个中断源。实验时,将单脉冲信号接到8259的INT0脚。每次中断时,可看到LED显示会加1。 6、实验框图: 输出计数值 设置中断服务程序地开 计数值加1 中断入口 设置中断控制器工作方式 中断允许 输出中断结束命令 等待中断 中断返回 主程序框图 EXTINT中断子程序框图 7、程序清单:(IN8088A/B04.ASM) OUTBIT equ 0e101h ; 位控制口

CLK164 equ 0e102h ; 段控制口(接164时钟位) DAT164 equ 0e102h ; 段控制口(接164数据位)

ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4 ICW2 equ 00100000b ; 中断号为20H

ICW4 equ 00000001b ; 工作在8086/88 方式 OCW1 equ 11111110b ; 只响应INT0 中断 CS8259A equ 0A000h ; 8259地址 CS8259B equ 0A001h

data segment

LEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayT db 1 dup(?)

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h CNT db 0 data ends

code segment

assume cs:code, ds: data

Delay proc near

push ax ; 延时子程序 push cx

mov al, 0 mov cx,ax loop $

pop cx pop ax ret Delay endp

DisplayLED proc near

mov bx, offset LEDBuf

mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示 DLoop:

mov dx, OUTBIT mov al, 0

out dx,al ; 关所有八段管 mov al, [bx]

mov ch, 8 ; 送164 DLP:

push ax mov ah, 0 test al, 80h jz GN1 mov ah, 1 GN1:

mov dx, DAT164 ; 输出数据位 mov al, ah and al,0fdh out dx, al

mov dx, CLK164 ; 送出时钟脉冲 ;mov al, 1 or al,02h out dx, al

;mov al, 0 and al,0fdh out dx, al

pop ax shl al, 1 dec ch jnz DLP

mov dx, OUTBIT mov al, ah

out dx, al ; 显示一位八段管

push ax mov ah, 1 call Delay

pop ax

shr ah, 1 inc bx dec cl jnz DLoop

mov dx, OUTBIT mov al, 0

out dx,al ; 关所有八段管 ret

DisplayLED endp

IEnter proc near push ax push dx

inc CNT

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 cli

mov ax, data 实验截图:

实验总结:

通过这个实验,我基本了解了如何用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。这个实验时本学期实验课的最后一节,实验过程还是比较简单,按照实验步骤就能做完这个实验,并且在能够在LED数码管上显示,前面四位显示8259芯片号,后面两位显示计数器的值,这个数值是两位的16进制数。通过老师的讲解更加了解整个程序的具体操作。


实验六 8259外部中断实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省汕头市第四中学2013届高三第五次月考数学理试题 Word版含

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: