并行IO接口的扩展实验报告

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

并行IO接口的扩展实验报告

一、实验目的

1、了解并行IO接口的扩展方法

2、掌握可编程接口芯片8255A的工作原理、编程方式和使用方法

二、实验条件

1、DOS操作系统平台

2、8255A接口芯片

三、实验原理

1、并行IO口的扩展方法:

(1)通过通用的IO扩展芯片实现

(2)通过TTL、CMOS 锁存器、缓冲器芯片实现。如74LS377、74LS273、74LS244、74LS245 等。

(3)通过串行通信口扩展并行I/O 口。

2、8255A 扩展I/O 端口:

(1)8255A 具有三种基本工作方式,即方式0、方式1、方式2。各端口的工作方式及输入输出方向都由方式控制字设定(通过写入控制寄存器)。8255A 的控制字有方式控制字和C 口置位/复位控制字两种。

3、8255A 的工作方式:

(1)方式0 是一种基本I/O 方式。在这种工作方式下,三个端口都可由程序设定为输入或输出,这种方式不使用联络信号,其基本功能为:

a. 两个8 位端口(A、B) 和两个4 位端口(C)。

b. 任一个端口可以作为输入或输出。

c. 输出锁存,输入不锁存。

d. 在方式0 时,各端口都可以作为数据端口,CPU 用简单的输入或输出指令来进行读或写。

(2)方式1 是一种选通I/O 方式。在这种方式下,端口A 和B 可作为数据端口,但C 口的某口的其它位仍可工作于方式0。方式1 的基本功能为:

a. 用作一个或两个选通端口。

b. 每个选通端口包含有:8 位数据瑞口,3 条控制线,提供中断逻辑。

c. 任一端口可输入或输出。

d. 若只有一个端口工作于方式1,余下的13 位可以工作于方式0。

e. 若两个端口工作于方式1,C 口余下2 位可以工作于方式0。

(3)方式2 是一种双向I/O 方式,只有端口 A 具有这种工作方式,其基本功能为:

a. 一个8 位双向数据端口(A)和一个5 位控制端口(C)。

b. 输入和输出锁存。

c. 5 位控制端口用作端口A 的状态和控制信息。

四、实验内容

1、8255A 工作于方式0,A 口输出,接七段数码管;C 口输入,接开关

K0-K3,用七段数码管循环显示从C口低4 位输入的数据。程序运行中如有键按下就返回DOS,实验代码如下:

DATA SEGMENT

LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H

DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H, 71H DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA

START: MOV AX, DATA

MOV DS, AX ;初始化DS

MOV DX, 0E48BH ;设置8255A工作方式

MOV AL, 89H

OUT DX, AL

INOUT: MOV DX, 0E488H

IN AL, DX ;C口输入

AND AL, 0FH

MOV BX, OFFSET LED

XLAT ;换码AL<-DS:[BX+AL]

MOV DX, 0E488H

OUT DX, AL ;A口输出字形码

MOV AH, 1

INT 16H

JZ INOUT ;无按键转移

MOV AH, 4CH ;有按键则返回DOS

INT 21H

CODE ENDS

END START

2、8255A 工作于方式0,A 口输入,接开关K0∼K7;C 口输出接LED

L0∼L7。用LED 以二进制数显示出K0∼K7 中置高电平的个数,程序运行中如有键按下就返回DOS。实验代码如下:

DATA SEGMENT

LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H

DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H, 71H

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA

START: MOV AX, DATA

MOV DS, AX

MOV AL, 89H ;方式字

MOV DX, 0E48BH ;控制端口地址

OUT DX, AL;给控制端口地址写入方式字为0型

INOUT: MOV DX, 0E48AH ;DX=C端口

IN AL, DX ;C口输入

MOV CH, AL ;CL=AL

MOV CL, 04H ;CL=4用于后面的位移

SHR AL, CL ;AL右移4位表示高4位

AND AL, 0FH ;置低4位有效

AND CH, 0FH ;置CH低4位有效

ADD AL, CH ;求和

DAA ;变为BCD码

MOV DX, 0E488H ;DX=A端口地址

OUT DX, AL ;A口输出

MOV AH, 1 ;读键盘缓冲区的BIOS调用

INT 16H

JZ INOUT ;无按键跳转到INOUT

MOV AH, 4CH ;有按键返回DOS

INT 21H

CODE ENDS

END START

3、8255A 工作于方式0,A 口输出,C 口输入。从C 口的高4 位和低4 位分别输入一个8421BCD 码表示的十进制数,求和后仍以8421BCD 码十进制数形式在LED 上显示。键盘上有键按下就返回DOS,实验代码如下:

DATA SEGMENT

LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H

DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H, 71H

DATA ENDS

STACK SEGMENT PARA STACK

相关文档
最新文档