实验七-8259中断控制器实现

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

计算机科学与技术系

实验报告

专业名称计算机科学与技术

课程名称微机原理与接口技术

项目名称 8259A中断控制实验

班级

学号

姓名

同组人员无

实验日期 2016/06/28

一、实验目的与要求

1、了解8259的内部结构,工作原理;了解8259A与8088的接口逻辑;掌握对8259A 的初始化编程方法,了解8088是如何响应中断、退出中断的。

二、实验逻辑原理图与分析(汇编—流程图)

2.1 画实验逻辑原理图

2.2 逻辑原理图分析

实验原理与分析:由于实验中需拨动单脉冲开关,送给8259A的IR0,触发中断,8088计数中断次数,显示于G5区的数码管上。故8259中断控制实验需要8259A芯片,8282地址锁存器,用于8086CPU与8259A芯片地址线的连接,8286收发器用于8086CPU与8259A 芯片数据线的连接,通过地址译码器实现片选信号(CS)的选通。

三、程序分析

3.1程序代码分析

.MODEL TINY

EXTRN Display8:NEAR ;装入外部程序块

IO8259_0 EQU 0F000H

IO8259_1 EQU 0F001H

.STACK 100

.DATA

BUFFER DB 8 DUP(?)

Counter DB ?

ReDisplayFlag DB 0

.CODE

START: MOV AX,@DATA

MOV DS,AX

MOV ES,AX

NOP

CALL Init8259

CALL WriIntver

MOV Counter,0 ;中断次数

MOV ReDisplayFlag,1 ;需要显示

STI ;开中断

START1: CMP ReDisplayFlag,0

JZ START1

CALL LedDisplay

MOV ReDisplayFlag,0

JMP START1

Init8259 PROC NEAR

MOV DX,IO8259_0

mov al,13h ;ICW1:0001 0011 上升沿触发,间隔为8,单片工作故没有ICW3,写ICW4

out dx,al

mov dx,IO8259_1

mov al,08h ;ICW2:0000 1000 中断类型码为:00001,用的中断请求为IR0

out dx,al

mov al,09h ;ICW4:0000 1001 000为ICW4的标识码,采用一般嵌套,缓冲方式,正常EOI,8086/8088系统

out dx,al

mov al,0feh ;OCW1:1111 1110 屏蔽其他IR,允许IR0发送中断请求

out dx,al

RET

Init8259 ENDP

WriIntver PROC NEAR

PUSH ES

MOV AX,0

MOV ES,AX

MOV DI,20H ;20H~23H是IR0的矢量地址

LEA AX,INT_0

STOSW ;把INT_0的偏移地址写到ES:DI指向的内存单元中

MOV AX,CS

STOSW ;把段基址存入ES:DI的内存单元中

POP ES

RET

WriIntver ENDP

LedDisplay PROC NEAR

MOV AL,Counter

MOV AH,AL

AND AL,0FH ;0000 0001和0000 1111相与为0000 0001

MOV Buffer,AL ;第八位

AND AH,0F0H ;0000 0001和1111 0000想与为0000 0000

ROR AH,4 ;0000 0000

MOV Buffer + 1,AH ;高八位

MOV Buffer + 2,10H ;高六位不需要显示

MOV Buffer + 3,10H

MOV Buffer + 4,10H

MOV Buffer + 5,10H

MOV Buffer + 6,10H

MOV Buffer + 7,10H

LEA SI,Buffer

CALL Display8

RET

LedDisplay ENDP

INT_0: PUSH DX

PUSH AX

MOV AL,Counter

ADD AL,1

DAA

MOV Counter,AL

MOV ReDisplayFlag,1

MOV DX,IO8259_0

MOV AL,20H

OUT DX,AL

POP AX

POP DX

IRET

END START

初始化8259,初始化命令字ICW1(设置8259的工作方式),ICW2(设置中断类型码),ICW4(方式控制初始化命令字,设置中断结束方式):

Init8259 PROC NEAR

;初始化命令字ICW1,

D

0 D

1

D

2

D

3

D

4

D

5

D

6

D

7

1 1 0 0 1 0 0 0 写ICW4 单片工作上升沿触发特征位

MOV DX,IO8259_0

相关文档
最新文档