理论教育 单片机原理及8255A接口技术

单片机原理及8255A接口技术

时间:2023-11-05 理论教育 版权反馈
【摘要】:图6-368255A内部结构2)A组和B组控制电路。数据总线缓冲器是一个三态双向8位缓冲器,作为8255A芯片与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。图6-38C口按位置位/复位控制字格式8255A的A口、B口和C口均可设定为方式0,并可根据需要规定各端口为输入方式或输出方式。

单片机原理及8255A接口技术

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:三态双向数据线,与单片机数据总线连接,用来传送数据信息。

img片选信号线,低电平有效,表示芯片被选中。

img读出信号线,低电平有效,控制数据的读出。

img写入信号线,低电平有效.控制数据的写入。

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发来的控制信号imgRESET、地址信号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所示。

各应答联络信号的功能如下:

img选通输入,低电平有效。是由输入设备送来的输入信号。(www.daowen.com)

IBF;输入缓冲器满,高电平有效。表示数据已送入输入锁存器,它由img信号的下降沿置位,由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上时,输入设备自动在选通输入线img上发送一个低电平选通信号。

②8255A收到img上负脉冲后自动做两件事:一是把PA7~PA0上输入数据存入A口的输入数据缓冲/锁存器;二是使输入缓冲器输出线IBFA变为高电平,以通知输入设备8255A的A口已收到它送来的输入数据。

③8255A同时检测到img变为高电平、IBFA为高电平时使INTRA变为高电平,向CPU发出中断请求。

④CPU响应中断后,可以通过中断服务程序从A口的“输入数据缓冲/锁存器”读取输入设备送来的输入数据。当输入数据被CPU读走后,8255A撤消INTRA上中断请求,并使IBFA变为低电平,以通知输入设备可以送下一个输入数据。

方式1输出:当任何一个端口按照工作方式1输出时,应答联络信号如图6-41所示。

图6-41 方式1输出联络信号

各联络信号的功能如下:

img输出缓冲器满信号,低电平有效。是8255A输出给输出设备的联络信号。表示CPU已把输出数据送到指定端口,外设可以将数据取走。它由WR信号的上升沿置“0”(有效),由img信号的下降沿置“1”(无效)。

img外设响应信号,低电平有效。表示CPU输出给8255A的数据已由输出设备取走。

INTR:中断请求信号,高电平有效。表示数据已被外设取走,请求CPU继续输出数据。中断请求的条件是img和INTE(中断允许)为高电平,中断请求信号由img的下降沿撤消。

INTE A:由PC6的置位/复位来控制。

INTE B:由PC2的置位/复位来控制。

图6-42为B口工作在方式1选通输出示意图。

图6-42 B口工作在方式1选通输出示意图

B口在方式1输出的工作过程如下:

①8031可以通过MOVX@Ri,A指令把输出数据送到B口的输出数据锁存器,8255A收到后便令输出缓冲器满引脚线img变为低电平,以通知输出设备输出数据已到达B口的PB7~PB0上。

②输出设备收到OBFB上低电平后做两件事:一是从PB7~PB0上取走输出数据;二是使img变为低电平,以通知8255A输出设备已收到输出数据。

③8255A从回答输入线img收到低电平后就对img和中断允许触发器QINTEB状态进行检测,若它们皆在高电平,则INTRB变为高电平而向CPU请求中断。

④CPU响应img上中断请求后便可通过中断服务程序把下一个输出数据送到B口的输出数据锁存器,并重复上述过程,完成下一个数据的输出。

3)方式2。方式2只有A口才能设定。图6-43为A口在方式2下的工作示意图。在方式2下,PA7~PA0为双向I/O总线。当作为输入总线使用时,PA7~PA0受STBA和IBFA控制,其工作过程和方式1输入时相同;当作为输出总线使用时,PA7~PA0受imgimg控制,其工作过程和方式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的imgimg与8031的imgimg一一对应相连。

寻址线:8255的CS和A1、A0分别由P0.7和P0.1、P0.0经地址锁存器74LS373后提供,当然img的接法不是唯一的。当系统要同时扩展外部RAM时,img就要和RAM芯片的片选端一起经地址译码电路来获得,以免发生地址冲突。其他地址线悬空。

I/O口线:可以根据用户需要连接外部设备。

(2)8255A地址口确定

图6-44中8255A只有3根线接于地址线。片选img地址选择端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,只要保证imgA1、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单片机应用系统中广泛用于连接外部设备,如打印机、键盘、显示器以及数字信息的输入、输出口。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈