实验六---8255并行输入输出

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

实验六---8255并行输入输出

一、实验目的

1.了解并熟悉8255并行输入输出控制器的功能和工作原理;

二、实验原理

1.8255芯片介绍

8255是一种常用的并行输入/输出接口芯片,可用于微处理机系统中的输入/输出控制输出,根据中文名可以看出,8255有三种工作方式即口A、口B和控制口。8255所有的输入/输出都是双向的,它可以通过输入输出口的命令字来在不同的模式下工作。

在输出模式下,82555可以通过端口A、B控制外围设备的输出操作,在输入模式下,8255可以通过端口A、B实现对外围设备的输入操作。控制口是用来控制8255写作模式或读作状态字,并对端口进行初始化操作。8255在不同的模式下有不同的编程方法和操作方法,因此需要在实际应用中选择不同的工作模式。

8255有三个I/O端口A、B、C,每个端口都有8位。这里解释一下控制端口的意义,地址为0B4H的控制端口是连续读或写8255内部状态寄存器的地址,而后面的一个读或写就表示读或写操作的类型,如果该端口被写入了“控制字”则8255按照控制字工作,否则会在该端口读出输入状态字。在读或写操作的时候向控制端口写入的二进制数在图3-8中给出了。

表3-2:8255访问口定义

地址

口分类

名称

端口A

0B0H

输出

Port A

输入

Control

Cout端口

Cin端口

2.8255的编程方式

方式0:即I/O挂接方式,这种方式下A、B、C三个端口为并行I/O口时,其与MCU

的接线和编程方式与单片机内部I/O端口的连接和编程方式相同。

方式1:即输入输出口不一样。在这种片内Ram中的地址空间0~7地址单元内写入相应的端口或方式的控制字后,该8255工作在相应的方式。即:

方式0:读出的是8位端口A的状态,写操作为将数据送到端口A;

方式2:是把C口分配为两部分——高4位为输入,低4位为输出,它与方式1类似。端口C的所有状态和很多控制功能都由C口寄存器存储。

方式2:“端口C字符型输入输出方式”,在这种方式下,端口C的8个位分成两部分,4个位作为输入的,4个位作为输出的。8位输入端口是内部编码的转移产生,直接使用CPU总线的控制线读取。8位输出端口是用于实现一些离散设备控制位的输出,例如,可现场显示输出信号,也可送给某些离散输出设备,而且不必再通过其他硬件解码。对于一些

控制输出位,在方案上还要特别留几个灵敏输入端口来读进来(一些“手操作”)。因此,C端口某些位可能既有输入功能也有输出功能。

3.8255的寄存器与状态字

8255有3个I/O端口A、B、C,每个端口都有8位。8255有一些特殊的寄存器如下:

(1)控制字寄存器(Control Word Register):它用于设置所有三个端口的工作模式,及数据方向控制。

它在设置模式的时候,向控制寄存器中写入的二进制或十六进制数据必须与芯片的三

个工作寄存器有关。控制寄存器的格式如下:

OFFSET D7 D6 D5 D4 D3 D2 D1 D0

P2 P1 D E C B A

其中,D7、D6为端口 C 的双向寄存器中的双向输入寄存器(CIN)、双向输出寄存器(COUT)选择位。AC为启动功能选择位。D启动65536Hz定时器,E启动分频器。选择模式如下表:

BC A D E

0 0 方式0 方式0

0 1 方式1 方式1

1 0 方式

2 方式2

1 1 8255失效 8255失效

P1、P2为端口 A 和 B 的方向控制寄存器,其应与 PAPA 中指定的地址相对应。A1、

A0、B1、B0 的工作模式如表所示:

A1 A0 B1 B0 口A 端口B

出入口出入口出入口出入口

0 0 0 0 顺序交叉

0 0 0 1 分别出入

0 0 1 0 外部中断(INTE、INED)

0 0 1 1 串行输入/输出

0 1 0 0 简单输出

0 1 0 1 简单输入

0 1 1 0 扫描输出

0 1 1 1 扫描输入

1 0 0 0 储存

1 0 0 1 读写像存储器

1 0 1 0 双相输入

1 0 1 1 不用

1 1 X X 同上同下

(2)状态字寄存器(Status Word Register):它反映了端口的各种状态信息,其状态由读写控制寄存器的指令所决定,这些状态包括输出模式下的端口输出驱动电路状态、

输入模式下的输入端状态、输入/输出方式中C口的指令寄存器状态,及自动位集复位(AOC)标志。

三、实验内容

本实验的目的是使用按键自发生器程序的按键状态,通过8255将其输出到LED端口。

硬件连接如下:

PPI8255 单片机Adr 单片机I/O口

A0~A2 P2.2~P2.0 A口

B0~B2 P2.5~P2.7 B口

C0~C7 P2.7~P2.0 C口

实验程序接口定义如下:

void InitDevice(void);

void Write8255(unsigned char pPort, unsigned char nData);

以下是8255模式0(I/O模式)的实验程序,可以将按键状态显示在LED上。

四、实验结果

将实验程序下载到单片机后,使用按键自发生器程序按下或放开按键,LED就会对应点亮或熄灭。

本次实验主要学习了8255并行输入输出控制器的功能和工作原理,并成功实现了将按键状态通过8255并行输出到LED端口。8255是常用的外接I/O控制芯片,将MCU与外设连接起来,可以给嵌入式设备带来更加丰富的功能和更强的扩展性。

同时本次实验也进一步提高了我们的实验动手能力,培养了我们的实际操作能力和编程能力。

相关文档
最新文档