所谓可编程的接口芯片是指其功能可由微处理机的指令来加以改变的接口芯片,利用编程的方法,可以使一个接口芯片执行不同的接口功能。目前,各生产厂家已提供了很多系列的可编程接口,MCS-51单片机常用的两种接口芯片是8255以及8155。
8255和MCS-51相连,可以为外设提供三个8位的I/O端口:A口、B口和C口,三个端口的功能完全由编程来决定。
1. 8255的内部结构和引脚排列
下图7为8255的内部结构和引脚图。
(1)A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。
(2) A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。
(3) 数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。
(4) 读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255的读/写。
(5) 数据线(8条):D0~D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。
(6) 控制线和寻址线(6条)。
RESET:复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。
WR和RD: 读/写信号线,输入,低电平有效。当为0时(必为1),所选的8255处于读状态,8255送出信息到CPU。反之亦然。
(6)CS:片选线,输入,低电平有效。
(7) A0、A1:地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。
(8)I/O口线(24条):PA0~PA7、PB0~PB7、PC0~PC7为24条双向三态I/O总线,分别与A、B、C口相对应,用于8255和外设之间传送数据。
(9) 电源线(2条):VCC为+5 V,GND为地线。
2. 8255的控制字
8255的三个端口具体工作在什么方式下,是通过CPU对控制口的写入控制字来决定的。8255有两个控制字:方式选择控制字和C口置/复位控制字。用户通过程序把这两个控制字送到8255的控制寄存器(A0A1=11),这两个控制字以D7来作为标志。
1) 方式选择控制字
方式选择控制字的格式和定义如下图所示。
2) C口置/复位控制字
C口置/复位控制字的格式和定义如下图所示。C口具有位操作功能,把一个置/复位控制字送入8255的控制寄存器,就能将C口的某一位置1或清0而不影响其它位的状态。
3. 8255的工作方式
8255有三种工作方式:方式0、方式1、方式2。方式的选择是通过上述写控制字的方法来完成的。