1.8255A芯片介绍
8255A是Intel公司生产的可编程的并行I/O接口芯片,它具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8255A的引脚及内部的结构如图6-35和图6-36所示。
图6-35 8255A引脚
(1)引脚说明
由图6-35可以看出,8255A共有40个引脚,采用双列直插式封装,各引脚功能如下:
D7~D0:三态双向数据线,与单片机数据总线连接,用来传送数据信息。
片选信号线,低电平有效,表示芯片被选中。
读出信号线,低电平有效,控制数据的读出。
写入信号线,低电平有效.控制数据的写入。
VCC:+5V电源。
PA7~PA0:A口输入/输出线。
PB7~PB0:B口输入/输出线。
PC7~PC0:C口输入/输出线。
RESET:复位信号线。
A1~A0:地址线,用来选择8255A内部端口。
(2)内部结构
8255A内部结构见图6-36,其中包括3个并行数据输入/输出端口,两个工作控制电路,一个读/写控制逻辑电路和8位数据总线缓冲器。各部分功能如下:
1)端口A、B、C。8255A有3个8位并行口,PA、PB和PC。都可以选择作为输入输出工作模式,但在功能和结构上有些差异。
PA口:一个8位数据输出锁存器和缓冲器;一个8位数据输入锁存器。
PB口:一个8位数据输出锁存器和缓冲器;一个8位数据输入缓冲器(输入不锁存)。
PC口:一个8位数据输出锁存器;一个8位数据输入缓冲器(输入不锁存)。
通常PA口、PB口作为输入输出口,PC口既可作为输入输出口,也可在软件的控制下,分为两个4位的端口,作为端口A、B选通方式操作时的状态控制信号。
图6-36 8255A内部结构
2)A组和B组控制电路。这是两组根据CPU写入的“控制字”来控制8255A工作方式的控制电路。A组控制PA口和PC口的上半部(PC7~PC4);B组控制PB口和PC口的下半部(PC3~PC0),并可根据“控制字”对端口的每一位实现按位“置位”或“复位”。
3)数据总线缓冲器。数据总线缓冲器是一个三态双向8位缓冲器,作为8255A芯片与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。
4)读/写控制逻辑电路。读/写控制逻辑电路接收CPU发来的控制信号RESET、地址信号A1~A0等,然后根据控制信号的要求,将端口数据读出,送往CPU,或者将CPU送来的数据写入端口。
各端口的工作状态与控制信号的关系见表6-14。
表6-14 8255A端口工作状态选择表
(3)工作方式选择控制字及C口置位/复位控制字
8255有3种基本工作方式:
方式0:基本输入输出。
方式1:选通输入输出。
方式2:双向传送。
1)工作方式选择控制字。3种工作方式由写入控制字寄存器的方式控制字来决定。方式控制字的格式如图6-37所示。3个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组。其中A口可工作于方式0、1和2,而B口只能工作在方式0和1。
图6-37 8255A芯片的方式控制字
例如:写入工作方式控制字95H,可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7~PC4)输出,C口的下半部分(PC3~PC0)输入。
2)C口按位置位/复位控制字。C口8位中的任一位,可用一个写入控制口的置位/复位控制字来对C口按位置“1”或清“0”。这个功能主要用于位控。C口按位置位/复位控制字的格式如图6-38所示。
例如,07H写入控制口,是PC3置“1”;08H写入控制口,PC4清“0”。
(4)8255A的3种工作方式
1)方式0。方式0是一种基本的输入/输出工作方式。在这种方式下,3个端口都可以由程序设置为输入或者输出,没有固定的用于应答的联络信号。方式0基本功能如下:
具有两个8位端口(A、B)和两个4位端口(C口的上半部分和下半部分)。
任何一个端口都可以设定为输入或者输出,各端口的输入、输出可构成16种组合;数据输出时锁存,输入时不锁存。
图6-38 C口按位置位/复位控制字格式
8255A的A口、B口和C口均可设定为方式0,并可根据需要规定各端口为输入方式或输出方式。例如:设8255A的控制字寄存器地址为0FF7FH,则令A口和C口高4位工作在方式0输出以及B口和C口低4位工作于方式0输入,初始化的程序为:
在方式0下,MCS-51可对8255A进行I/O数据的无条件传送,例如,读一组开关的状态,控制一组指示灯的亮、灭。实现这些操作,并不需要应答联络信号。外设的I/O数据可在8255A的各端口得到锁存和缓冲,也可以把其中的某几位指定为外设的状态输入位,CPU对状态位查询便可实现I/O数据的异步传送。因此,8255A的方式0属于基本输入/输出方式。
2)方式1。方式1是一种选通式输入/输出工作方式。A口和B口皆可独立地设置成这种工作方式。在方式l下,8255A的A口和B口通常用于传送和它们相连外设的I/O数据,C口用作A口和B口的应答联络线,以实现中断方式传送I/O数据。C口的PC7~PC0应答联络线是在设计8255A时规定的,其各位分配见图6-39和图6-41,图中标有I/O各位仍可用作基本输入/输出,不作应答联络线用。
方式1输入/输出时的应答联络信号和工作原理如下。
方式1输入:当任何一个端口按照工作方式1输入时,应答联络信号如图6-39所示。
各应答联络信号的功能如下:
选通输入,低电平有效。是由输入设备送来的输入信号。(www.daowen.com)
IBF;输入缓冲器满,高电平有效。表示数据已送入输入锁存器,它由信号的下降沿置位,由RD信号的上升沿复位。
图6-39 方式1输入联络信号
INTR:中断请求信号,高电平有效,由8255A输出,向CPU发中断请求。
INTE A:A口中断允许信号,由PC4的置位/复位来控制,INTE B由PC2的置位/复位来控制。
下面以A口的方式1输入为例(A口方式1输入工作示意图见图6-40),介绍方式1输入的工作过程以及各控制联络信号的功能。
图6-40 A口方式1输入的工作示意图
①当输入设备输入一个数据并送到PA7~PA0上时,输入设备自动在选通输入线上发送一个低电平选通信号。
②8255A收到上负脉冲后自动做两件事:一是把PA7~PA0上输入数据存入A口的输入数据缓冲/锁存器;二是使输入缓冲器输出线IBFA变为高电平,以通知输入设备8255A的A口已收到它送来的输入数据。
③8255A同时检测到变为高电平、IBFA为高电平时使INTRA变为高电平,向CPU发出中断请求。
④CPU响应中断后,可以通过中断服务程序从A口的“输入数据缓冲/锁存器”读取输入设备送来的输入数据。当输入数据被CPU读走后,8255A撤消INTRA上中断请求,并使IBFA变为低电平,以通知输入设备可以送下一个输入数据。
方式1输出:当任何一个端口按照工作方式1输出时,应答联络信号如图6-41所示。
图6-41 方式1输出联络信号
各联络信号的功能如下:
输出缓冲器满信号,低电平有效。是8255A输出给输出设备的联络信号。表示CPU已把输出数据送到指定端口,外设可以将数据取走。它由WR信号的上升沿置“0”(有效),由信号的下降沿置“1”(无效)。
外设响应信号,低电平有效。表示CPU输出给8255A的数据已由输出设备取走。
INTR:中断请求信号,高电平有效。表示数据已被外设取走,请求CPU继续输出数据。中断请求的条件是和INTE(中断允许)为高电平,中断请求信号由的下降沿撤消。
INTE A:由PC6的置位/复位来控制。
INTE B:由PC2的置位/复位来控制。
图6-42为B口工作在方式1选通输出示意图。
图6-42 B口工作在方式1选通输出示意图
B口在方式1输出的工作过程如下:
①8031可以通过MOVX@Ri,A指令把输出数据送到B口的输出数据锁存器,8255A收到后便令输出缓冲器满引脚线变为低电平,以通知输出设备输出数据已到达B口的PB7~PB0上。
②输出设备收到OBFB上低电平后做两件事:一是从PB7~PB0上取走输出数据;二是使变为低电平,以通知8255A输出设备已收到输出数据。
③8255A从回答输入线收到低电平后就对和中断允许触发器QINTEB状态进行检测,若它们皆在高电平,则INTRB变为高电平而向CPU请求中断。
④CPU响应上中断请求后便可通过中断服务程序把下一个输出数据送到B口的输出数据锁存器,并重复上述过程,完成下一个数据的输出。
3)方式2。方式2只有A口才能设定。图6-43为A口在方式2下的工作示意图。在方式2下,PA7~PA0为双向I/O总线。当作为输入总线使用时,PA7~PA0受STBA和IBFA控制,其工作过程和方式1输入时相同;当作为输出总线使用时,PA7~PA0受和控制,其工作过程和方式1输出时相同。
图6-43 A口在方式2下的工作示意图
方式2特别适用于键盘、显示等终端外部设备,因为有时需要把键盘上输入的编码信号通过A口送给CPU,有时又需要把数据通过A口送给终端显示。
2.8031单片机和8255A的接口
(1)硬件电路及连线
8255A和单片机的接口十分简单,只需要一个8位的地址锁存器即可。锁存器用来锁存P0口输出的低8位地址信息。如图6-44所示是8031单片机扩展一片8255A的电路图。
图6-44 8031单片机与8255A的接口电路
数据线:8255的8根数据线D0~D7直接和P0口一一对应相连就可以了,即D0~D7接于P0.0~P0.7。
控制线:8255的复位线RESET与8031的复位端相连,都接到8031的复位电路上。8255的和与8031的和一一对应相连。
寻址线:8255的CS和A1、A0分别由P0.7和P0.1、P0.0经地址锁存器74LS373后提供,当然的接法不是唯一的。当系统要同时扩展外部RAM时,就要和RAM芯片的片选端一起经地址译码电路来获得,以免发生地址冲突。其他地址线悬空。
I/O口线:可以根据用户需要连接外部设备。
(2)8255A地址口确定
图6-44中8255A只有3根线接于地址线。片选地址选择端A1、A0。分别接于P0.7、P0.1、P0.0其他地址线全悬空。显然只要保证P0.7为低电平时,选中该8255A,若P0.1、P0.0再为“00”选中8255A的A口,同理P0.1、P0.0为“01”、“10”、“11”分别选中B口、C口及控制口。若地址用16位表示,其他无用端全设为“1”,则8255A的A、B、C及控制口地址分别可为FF7CH、FF7DH、FF7EH、FF7FH。
如果无用位取为“0”,则4个地址为0000H、0001H、0002H、0003H,只要保证A1、A0的状态,无用位设为“0”或“1”无关,见表6-15。掌握了确定地址的方法,使用者可灵活选择地址。
表6-15 8255A的A、B、C及控制口地址确定
根据上述接法,8255的A、B、C以及控制口的地址分别为0000 H、0001 H、0002 H和0003H(假设无关位都取0)。
(3)软件编程
在实际的应用系统中,必须根据外围设备的类型选择8255A的操作方式,并在初始化程序中把相应控制字写入控制口。下面根据图6-44,举例说明8255A的编程方法。
【例6-7】 要求8255A工作在方式0,且A口作为输入,B口、C口作为输出。
解 程序如下:
【例6-8】 对端口C的置位/复位。
8255A芯片的C口8位中的任一位,均可用指令来置位或复位。例如,如果想把C口的PC5置1.相应的控制字为:0000101B=0BH(关于8255A的C口置位/复位的控制字说明如图6-40所示),程序如下:
如果想把C口的第6位PC5复位,相应的控制字为:00001010B=0AH,程序如下:
8255A芯片在MCS-51单片机应用系统中广泛用于连接外部设备,如打印机、键盘、显示器以及数字信息的输入、输出口。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。