使用8259A单级中断控制实验.docx

上传人:b****5 文档编号:4424685 上传时间:2022-12-01 格式:DOCX 页数:26 大小:211.79KB
下载 相关 举报
使用8259A单级中断控制实验.docx_第1页
第1页 / 共26页
使用8259A单级中断控制实验.docx_第2页
第2页 / 共26页
使用8259A单级中断控制实验.docx_第3页
第3页 / 共26页
使用8259A单级中断控制实验.docx_第4页
第4页 / 共26页
使用8259A单级中断控制实验.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

使用8259A单级中断控制实验.docx

《使用8259A单级中断控制实验.docx》由会员分享,可在线阅读,更多相关《使用8259A单级中断控制实验.docx(26页珍藏版)》请在冰豆网上搜索。

使用8259A单级中断控制实验.docx

使用8259A单级中断控制实验

实验五使用8259A的单级中断控制实验

一、实验目的

1、掌握中断控制器8259A与微机接口的原理和方法。

2、掌握中断控制器8259A的应用编程。

二、预备知识

1、8259A的内部结构

8259A是专为控制优先级中断而设计的芯片。

它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。

b5E2RGbCAP

如图5-19所示,它由中断请求寄存器(IRR>、优先级分析器、中断服务寄存器(ISR>、中断屏蔽寄存器(IMR>、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。

p1EanqFDPw

图5-19

中断请求寄存器:

寄存所有要求服务的请求IR0~IR7。

中断服务寄存器:

寄存正在被服务的中断请求。

中断屏蔽寄存器:

存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。

DXDiTa9E3d

数据总线缓冲器:

是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。

RTCrpUDGiT

读写控制电路:

用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。

5PCzVD7HxA

级联缓冲器/比较器:

用于多片8259A的连接,能构成多达64级的矢量中断系统。

2、8259A编程及初始化

(1>写初始化命令字

*写初始化命令字ICW1(A0=0>,以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。

jLBHrnAILg

*写初始化命令字ICW2,以定义中断向量的高五位类型码。

*写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。

xHAQX74J0X

第i位=0,表明IRi引脚上无从片

第i位=1,表明IRi引脚上有从片

*写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。

LDAYtRyKfE

(2>写控制命令字

*写操作命令字0CW1,用来设置或清除对中断源的屏蔽。

第i位=0,对应的中断请求IRi开放

第i位=1,对应的中断请求IRi屏蔽

注:

OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。

*操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。

注:

8259A复位时自动设置IR0优先权最高,IR7优先权最低。

*操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态。

(3>8259A查询字

通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,有则转入相应的中断服务程序。

Zzz6ZB2Ltk

三、实验内容

本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表5-3所示。

dvzfvkwMI1

表5-3

根据实验原理图5-20<见下页),8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有2个端口地址,本系统中为20H、21H。

20H用来写ICW1,21H用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。

OCW2、OCW3用口地址20H,OCW1用口地址21H。

图5-14中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。

如果中断源电平信号不符规定要求则自动转到7号中断,显示“Err”。

CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示“8259Good”。

rqyn14ZNXI

四、实验线路连接

8259A的IR3插孔和SP插孔相连。

SP插孔初始电平为低电平。

图5-20

五、实验软件框图

六、实验软件清单

CODESEGMENT

ASSUMECS:

CODE

INTPORT1EQU0020H

INTPORT2EQU0021H

INTQ3EQUINTREEUP3

INTQ7EQUINTREEUP7

CONTPORTEQU00DFH

DATAPORTEQU00DEH

DATA0EQU0580H

DATA1EQU0500H

DATA2EQU0508H

DATA3EQU0518H

DATA4EQU0520H

ORG1800H

START:

JMPTint1

Tint1:

CALLFORMAT

CLD

MOVDI,DATA0

MOVCX,08H

XORAX,AX

REPSTOSW

MOVSI,DATA3

CALLLEDDISP。

DISP8259-1

MOVAX,0H

MOVDS,AX

CALLWRINTVER。

WRITEINTRRUPT

MOVAL,13H

MOVDX,INTPORT1

OUTDX,AL

MOVAL,08H

MOVDX,INTPORT2

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVAL,0F7H

OUTDX,AL

MOVBYTEPTRDS:

[0601H],01H。

TIME=1

STI

WATING:

JMPWATING

WRINTVER:

MOVAX,0H

MOVES,AX

MOVDI,002CH

LEAAX,INTQ3

STOSW

MOVAX,CS

STOSW

MOVDI,003CH

LEAAX,INTQ7

STOSW

MOVAX,CS

STOSW

RET

INTREEUP3:

CLI

MOVAL,DS:

[0601H]

CALLCONVERS

MOVSI,DATA0

CALLLEDDISPD

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

ADDBYTEPTRDS:

[0601H],01H

CMPBYTEPTRDS:

[0601H],06H

JNAINTRE1

MOVSI,DATA4

CALLLEDDISP

INTRE3:

JMPINTRE3

CONVERS:

MOVBH,0H

ANDAL,0FH

MOVBL,AL

MOVAL,CS:

[BX+DATA2]

MOVBX,DATA0

MOVDS:

[BX],AL

RET

INTRE1:

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

STI

IRET

INTREEUP7:

CLI

MOVSI,DATA1

CALLLEDDISP

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

IRET

LEDDISP:

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00

LED1:

CMPBYTEPTRDS:

[0600H],07H

JALED2

MOVBL,DS:

[0600H]

MOVBH,0H

MOVAL,CS:

[BX+SI]

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H

JNZLED1

LED2:

RET

LEDDISPD:

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00

LEDD1:

CMPBYTEPTRDS:

[0600H],07H

JALEDD2

MOVBL,DS:

[0600H]

MOVBH,0H

MOVAL,DS:

[BX+SI]

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H

JNZLEDD1

LEDD2:

RET

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+0500H],5050H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],0079H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],063FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4F5BH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D66H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],077DH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6F7FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7C77H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],5E39H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7179H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4006H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D6FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],3F5EH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],5C3FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D6FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

RET

CODEENDS

ENDSTART

七、实验步骤

1、按图5-20连好实验线路

2、运行实验程序

在系统显示“DVCC-86H”状态下,按任意键,系统显示命令提示符“-”。

按GO键,显示“1000XX”

输入F000:

B2E0

按EXEC键,在DVCC-8086H上显示“8259-1”。

3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示“8259good”。

EmxvxOtOco

实验六8255A可编程并行口实验(一>

一、实验目的

1、掌握并行接口芯片8255A和微机接口的连接方法。

2、掌握并行接口芯片8255A的工作方式及其编程方法。

二、预备知识

1、8255A结构

8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图5-6是8255A的逻辑框图,内部有3个8位I/O端口:

A口、B口、C口;也可以分为各有12位的两组:

A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。

由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。

SixE2yXPq5

2、8255A端口地址见表5-1

表5-1

图5-12

3、8255A工作方式

8255A芯片有三种工作方式:

方式0、方式1、方式2。

它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。

6ewMyirQFL

方式0:

基本输入/输出

图5-7(a>方式0引脚功能

如图5-13

该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4>和低4位(PC3~PC0>两组,也有控制字决定其输入或输出。

需注意的是:

该方式下,只能将C口其中一组的四位全部置为输入或输出。

kavU42VRUs

方式1:

选通输入/输出

图5-13(b>方式1输入图5-13(c>方式1输出y6v3ALoS89

如图5-13所示。

该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。

数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。

C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

M2ub6vSTnP

方式2:

双向输入输出

图5-13(D>方式2双向输入输出

如图5-13

本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7>作为A口的控制位。

0YujCfmUCw

4、8255A控制字

(1>方式选择控制字

(2>PC口按位置/复位控制字

三、实验内容

1、实验原理

如实验原理图5-14所示,PC口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。

拨动K1~K8,PB口上接的8个发光二极管L1~L8对应显示K1~K8的状态。

eUts8ZQVRd

图5-14

2、实验线路连接

<1)8255A芯片PC0~PC7插孔依次接K1~K8。

<2)8255A芯片PB0~PB7插孔依次接L1~L8。

<3)8255A的CS插孔接译码输出070H-07FH插孔。

四、实验软件框图

五、实验软件清单

CODESEGMENT

ASSUMECS:

CODE

IOCONPTEQU0073H

IOCPTEQU0072H

IOBPTEQU0071H

CONTPORTEQU00DFH

DATAPORTEQU00DEH

DATA1EQU0500H

START:

JMPIOLED

IOLED:

CALLFORMAT

CALLLEDDISP

MOVAL,89H

MOVDX,IOCONPT

OUTDX,AL

NOP

NOP

NOP

IOLED1:

MOVDX,IOCPT

INAL,DX

MOVDX,IOBPT

OUTDX,AL

MOVCX,0FFFFH

DELAY:

LOOPDELAY

JMPIOLED1

LEDDISP:

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00LED1:

CMPBYTEPTRDS:

[0600H],07HsQsAEJkW5T

JALED2

MOVBL,DS:

[0600H]

MOVBH,0H

MOVAL,CS:

[BX+DATA1]

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H

JNZLED1

LED2:

RET

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+0500H],4006H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D6DH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

RET

CODEENDS

ENDSTART

六、实验步骤

1、按图5-14连好线路。

2、运行实验程序。

在系统显示“DVCC-86H”状态下,按任意键,显示器显示“-”。

按GO键,显示“1000XX”

输入F000:

B160

再按EXEC键,在DVCC-8086H显示上显示器“8255-1”,同时拨动K1~K8,L1~L8会跟着亮灭。

GMsIasNXkA

8255A可编程并行口实验(二>

一、实验目的

进一步掌握8255A可编程并行口使用方法。

二、实验内容

1、实验原理

实验原理图如图5-15所示,PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,本实验为模拟交通灯实验。

交通灯的亮灭规律如下:

TIrRGchYzg

设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。

7EqZcWLZNX

图5-15

8255A的PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。

8255A工作于模式0,并置为输出。

由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。

lzq7IGf02E

2、实验线路连接

(1>8255CS插孔连译码输出070H-07FH插孔。

(2>L1—PC4L4—PC5L7—PC6L10—PC7

L2—PB4L5—PB5L8—PB6L11—PB7

L3—PC0L6—PC1L9—PC2L12—PC3

三、实验软件框图

四、实验软件清单

CODESEGMENT

ASSUMECS:

CODE

IOCONPTEQU0073H

IOAPTEQU0070H

IOBPTEQU0071H

IOCPTEQU0072H

IOBDATAEQU0500H

CONTPORTEQU00DFH

DATAPORTEQU00DEH

DATA1EQU0640H

START:

JMPIOLED

IOLED:

CALLFORMAT

CALLLEDDISP

MOVAX,0H

MOVDS,AX

MOVAL,82H

MOVDX,IOCONPT

OUTDX,AL

MOVDX,IOBPT

INAL,DX

MOVBYTEPTRDS:

[0501H],AL

MOVDX,IOCONPT

MOVAL,80H

OUTDX,AL

MOVDX,IOBPT

MOVAL,DS:

[0501H]

ORAL,0F0H

OUTDX,AL

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY1

IOLED0:

MOVAL,10100101B

MOVDX,IOCPT

OUTDX,AL

CALLDELAY1

CALLDELAY1

ORAL,0F0H

OUTDX,AL

MOVCX,8H

IOLED1:

MOVDX,IOBPT

MOVAL,DS:

[0501H]

ANDAL,10101111B

OUTDX,AL

CALLDELAY2

ORAL,01010000B

OUTDX,AL

CALLDELAY2

LOOPIOLED1

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY2

MOVAL,01011010B

OUTDX,AL

CALLDELAY1

CALLDELAY1

ORAL,0F0H

OUTDX,AL

MOVCX,8H

IOLED2:

MOVDX,IOBPT

MOVAL,DS:

[0501H]

ANDAL,01011111B

OUTDX,AL

CALLDELAY2

ORAL,10100000B

OUTDX,AL

CALLDELAY2

LOOPIOLED2

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY2

JMPIOLED0

DELAY1:

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

PUSHCX

MOVCX,8000H

DELA1:

LOOPDELA1

POPCX

RET

LEDDISP:

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00

LED1:

CMPBYTEPTRDS:

[0600H],07H

JALED2

MOVBL,DS:

[0600H]

MOVBH,0H

MOVAL,CS:

[BX+DATA1]

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H

JNZLED1

LED2:

RET

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+0640H],405BH

ADDBX,2

MOVWORDPTRDS:

[BX+0640H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0640H],6D6DH

ADDBX,2

MOVWORDPTRDS:

[BX+0640H],7F5BH

RET

CODEENDS

ENDSTART

五、实验步骤

1、按图5-15连好实验线路

2、运行实验程序

在系统显示“DVCC-86H”状态下,按任意键,系统显示命令提示符“-”。

按GO键,显示“1000XX”

输入F000:

B1B0

按EXEC键,在DVCC-8086H上显示“8255-2”。

同时L1~L12发光二极管模拟交通灯显示。

zvpgeqJ1hk

实验七8253A定时/计数器实验

一、实验目的

学习8253A可编程定时/计数器与8088CPU的接口方法;了解8253A的工作方式;掌握8253A在各种方式下的编程方法。

NrpoJac3v1

二、预备知识

1、8253A内部结构

8253A定时/计数器具有定时、计数双功能。

它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1、计数器2。

每个计数器计数频率为0~2MHZ,其内部结构如图5-16所示。

由于其内部数据总线缓冲器为双向三态,故可直接接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1