实验六 8259A硬件中断实验

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

实验六8259A硬件中断实验

一.实验要求

编写中断程序,在请求8259A中断1时,能够响应8259A的硬件中断,并在数码管上显示“Irq0…”字样,中断结束时,显示“E..IRQ”。

二.实验目的

1. 了解8259A中断控制器的工作原理。

2. 了解PC机中断的原理和过程。

3. 学会中断处理程序的编写。

三.实验电路及连线

20模块中的+PLUSE接第8模块中的INT_0,第8模块中的INT接模块中的88INTR,第8模块中的INTA接实验机内核模块中的88/INTA 。CS8259接200H,CS8279已固定接至238H。

四.实验说明

1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例,先加载8259A主中断程序(注意加载地址为8100:0),然后再加载中断程序IRQ0程序(加载地址为8200:0)。然后进入TALK WITH 88ET选项下,键入SW 0:0020↙0000,8200↙,再执行G8100:0↙Y即可。这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

五.实验程序框图

六.实验程序如下:

(2)8259A主程序:

;ORG 8100:0

INT00 EQU 200h

INT01 EQU 201h

Z8279 EQU 239H

D8279 EQU 238H

LEDMODE EQU 00H

SCANFRQ EQU 38H

data segment

data ends

stack segment

sta dw 50 dup(?)

top equ length sta

stack ends

CODE SEGMENT

ASSUME CS:CODE,DS:data,SS:stack

START:

CLI ;关中断

MOV AL,13H ;ICW1:边沿触发,单片,要ICW4

MOV DX,INT00

OUT DX,AL

NOP

NOP

MOV AL,8 ;中断号从8开始

MOV DX,INT01

OUT DX,AL

NOP

NOP

MOV AL,3 ;全嵌套方式,86/88系统9

MOV DX,INT01

OUT DX,AL

NOP

NOP

MOV DX,INT01

MOV AL,00H ;八个中断全部开放

OUT DX,AL

NOP

NOP

MOV DX,INT00

MOV AL,20H ;非特殊EOI结束中断

OUT DX,AL

NOP

NOP

MOV DX,Z8279 ;8279左边输入,八位显示,外部译码MOV AL,LEDMODE

OUT DX,AL

MOV AL,SCANFRQ ;设置扫描频率

OUT DX,AL

MOV AL,0D0H

OUT DX,AL

MOV CX,0FFH

L2: LOOP L2

MOV AL,90H ;写显示缓冲区RAM命令字

OUT DX,AL

MOV DX,D8279

MOV AL,67H ;显示中断前字样"IRQ"

OUT DX,AL

MOV AL,50H

OUT DX,AL

MOV AL,0FH

OUT DX,AL

STI ;开中断

x2: hlt ;等待硬件中断

mov cx,5

x1: push cx

mov cx,0

loop $

pop cx

loop x1

mov dx,z8279

mov ax,0d0h

out dx,al

mov cx,0ffh

l5: loop l5

mov al,90h

out dx,al

mov dx,d8279

mov al,67h ;中断返回,显示"E...IRQ0"字样

out dx,al

mov al,50h

out dx,al

mov al,0fh

out dx,al

mov al,80h

out dx,al

out dx,al

mov al,79h

out dx,al

jmp short x2

code ends

end start

(2)IRQ0.ASM 中断子程序

;ORG 8200:0

Z8279 EQU 239H

D8279 EQU 238H

data segment

data ends

stack segment

stack ends

CODE SEGMENT

ASSUME CS:CODE,DS:data,SS:stack START:

STI

MOV DX,Z8279

MOV AL,0D0H

OUT DX,AL

MOV CX,0FFH

l1: loop l1

MOV AL,90H

OUT DX,AL

MOV DX,D8279

mov al,80h

out dx,al

out dx,al

out dx,al

MOV AL,3FH

OUT DX,AL

MOV AL,67H

OUT DX,AL

MOV AL,50H

OUT DX,AL

MOV AL,0FH

OUT DX,AL

IRET

CODE ENDS

END START

相关文档
最新文档