微处理器接口芯片设计实例
8255A可编程并行输入、输出接口芯片,是标准外围接口电路。它采用NMOS工艺制造,用单一+5V电源供电,珍有40条引脚,采用双列直手插式封装。它有A、B、C三个端口共24条I/0线,可以通过编程的方法来设定端口的各种I/0功能。由于它功能强,又能方便地与各种微机系统相接,而且在连接外部设备时,通常不需要再附加外部电路所以得到了广泛的应用。
1、8255A的内部结构与引脚
8255A的内部结构图
1-1 8255A的内部结构
(1) 数据端口A、B、C
8255A有3个8位数据端口,即端口A端口B和端口C。编程人员可以通过软件将它们分别作为输入端口或输出端口,3个端口在不同的工作方式下有不同的功能接及特点。
说明:
1、 A口有一个8位数据输出缓冲、锁存器,一个8位数据输入缓冲、锁存器。
2、 B口C口有一个8位数据输出缓冲、锁存器、一个8位数据输入缓冲器(无锁存器)。
(2) A组和B组控制电路
这是两组根据CPU的命令字控制8255A工作方式的电路。它们的控制寄存器先接受CPU送出的命令字,然后根据命令字分别决定两组的工作方式,也可根据CPU的命令字对端口C的每1位实现 按位“复位”或“置位”。
A组控制电路控制端口A和端口C的上半部(PC7---PC4)。
B组控制电路控制端口B和端口C的下半部(PC3—PC0)。
(3)数据缓冲器
这是双向8位缓冲器,用于传送MCS—51和8255间的控制字、状态字和数据字。
(3) 读写控制逻辑
(4) 这部分电路可以接收MCS—51送来的读写命令各选口地址,用于控制对8255A的读写。
8255A的内部结构图
1-2 8255A的芯片引脚
8255A是一种有40个引脚的双列直插式标准芯片,其引脚排列如图所示。除电源(+5V)和地以外,其它信号可以分为两组。
.(1)与外设相连接的有:
.PA7-PA0: A口数据线
.PB7-PB0: B口数据线
.PC7-PC0: C口数据线
(2)与CPU相连接的有:
D7-D0: 8255A的数据线,和系统数据总线相连。
RESET:复位信号,高电平有效。当RESET有效时,所有内部寄存器都被清除。同时,3个数据端口被自动设为输入方式。
/CS: 片选信号,低电平有效。只有当/CS有效时,芯片才被选中,允许8255A与CPU交换信息。
/RD:读信号,低电平有效,当/RD有效时,CPU可以从8255A中读取输入数据。
/WR:写信号,低电平有效。当/WR有效时,CPU可以往8255A中写入控制字或数据。
A1、A0:端口选择信号:
8255A内部有3个数据端口和1个控制端口,当:
A1A0=00时选中端口A;
A1A0=01时选中端口B;
A1A0=10时选中端口C;
A1A0=11时选中控制口。
8255A端口选择表如下:
1.3 8255A的控制字
.8255A为可编程接口芯片,以控制字形式圣其工作方式和C口各位的状态进行设置。
.用户可以通过程序控制字送到8255A的控制寄存器(A1A0=11)。
.有两种控制字:工作方式控制字和C口置位/复位控制字。以控制字的最高位来区分两种控制字。
(1) 工作方式控制字
8255A控制字格式:工作方式控制字
工作方式控制字用于确定各口的工作 方式及数据传送方向
说明:
(1) A组有3种工作方式,而B组只有2种工作方式。
(2) A组包括A口与C口的高4位(上口),
B组包括B口与C口的低4位(下口)。
(3) 最高位(D7位)为标志位, D7=1为方式控制字。
方式0:普通输入/输出方式。 (简单的I/O扩展)
方式1:选通输入/输出方式。
方式2:A组双向输入/输出方式,B组无方式2
(2) C口置位/复位控制字
8255A控制字格式:C口置位/复位控制字
利用C口置位/复位控制字可以很方便地使C口8位中的任 一位清0或置1。
说明:
(1) 在使用中,该控制字每次只能对C口中的一位进行置位或复位。
(2) 应注意,在方式1或方式2时,C口各位作为联络线使用,不能采用置位/复位来操作。其数值由外界因素决定。
(3) D7位为该控制字的标志位,D7=0为C 口置位/复位控制字。
1.4 8255的方式0(基本输入/输出方式)
不需要任何选通信号,A口、B口及C口的高4位各低4位都可以设定为输入或输出。
.作为输出口时,输出的数据均被锁存;
.作为输入口时,A口的数据能锁存,B口与C口的数据不能锁存。
.C口具有按位复位与置位功能。
2 8255芯片的VHDL描述
2.1 8255结构设计
8255结构上由三种逻辑电路构成:锁存器、组合逻辑电路和三态缓冲器。
8255有7个锁存器:
Pa_latch---A口输出锁存器,8位;
Pb_latch---B 口输出锁存器,8位;
Pcl_latch---C口低4位输出锁存器,4位;
pch_latch---c口高4位输出锁存器,4位;
8255有7个锁存器:
ctrreg---方式控制字寄存器,8位;
bctrreg---C口位控制字寄存器,4位;
ctrregF---选择标志寄存器,1位;
=1数据存入方式控制寄存器,
=0数据的低4位存入C口控制字寄存器。
缓冲器
数据线D0-D7、端口PA、PB、PC都可以双向传输数据,因此,这4个端口与外电路相连时都必须是三态的,这些引脚都必须是三态双向引脚。
组合逻辑电路
主要由选择电路和译码电路构成。
2.2 8255芯片的VHDL描述
8255的工作过程:
1、 写控制字
2、 读或写数据