并行IO接口的扩展实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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