购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 并行I/O口电路结构

MCS-51共有4个8位的并行I/O口,分别记做P0、P1、P2、P3。每个口都由一个锁存器、一个输出驱动器和两个输入缓冲器所组成。CPU通过4个并行I/O端口的任何一个输出数据时,都可以被锁存,输入数据时可以得到缓冲。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。

MCS-51还有一个全双工的可编程串行I/O端口,可以将8位的并行数据转换成串行数据一位一位地从发送数据线TXD发送出去,也可以将接收线RXD串行接收到的数据转换成8位并行数据送给CPU。发送和接收可以同时进行,也可以单独进行。

MCS-51单片机在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。4个I/O口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍。

2.3.1 P0口结构

P0口的口线逻辑电路如图2-5所示。

图2-5 P0口的口线逻辑电路

由图2-5可见,P0口的一个位电路中,包含有一个数据输出锁存器、两个三态数据输入缓冲器;一个数据输出的驱动电路和一个输出控制电路。其中,输出驱动电路由一对场效应管(FET)V1和V2组成,其工作状态受输出控制电路的控制。

P0口为三态双向口,它可作为输入/输出端口使用,也可作为系统扩展时的低8位地址/8位数据总线使用。P0口内部有一个2选1的MUX开关,当单片机应用系统工作方式不需要外部扩展时,内部控制信号将使MUX开关接通到锁存器,此时P0口作为双向I/O端口使用。当单片机应用系统需要进行外部扩展时,内部控制信号将使MUX开关接通到内部地址/数据线,此时P0口在ALE信号的控制下分时输出低8位地址和8位数据信号。

在访问外部存储器时,P0口是一个真正的双向数据总线口,并分时送出数据和地址的低8位。当从P0口输出地址或数据时,控制信号为高电平“1”,模拟转换开关(MUX)将地址/数据信息经反相器和下拉FET(V2)接通,同时与门开锁。输出地址或数据信号既通过与门去驱动上拉FET(V1),又通过反相器去驱动下拉FET(V2)。例如,若地址/数据信息为0,该0信号一方面通过与门使上拉FET截止,另一方面经反相器使下拉FET导通,从而使引脚上输出相应的0信号。反之,若地址/数据信息为1,将会使上拉FET导通而下拉FET截止,引脚上将出现相应的1信号。在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址数据线使用的,这要比作为一般I/O口应用简单。

若P0口作为一般I/O口使用,当CPU向端口输出数据时,对应的输出控制信号应为0,此时,模拟转换开关将把输出端与锁存器Q端接通。同时,因为与门输出为0,使V1处于截止状态,所以输出极是漏极开漏的开漏电路。当写脉冲加在触发器时钟端CP上时,与内部总线的D端数据取反后出现在 端,再经FET反相,在P0口上出现的数据正好是内部总线的数据。但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须拉电阻才能有高电平输出。

当从P0口引脚上输入数据时,V1应一直处于截止状态。引脚上的外部信号既加在下面一个三态缓冲器的输入端,又加在V2的漏极。假定在此之前曾输出锁存过数据0,则FET是导通的,这样,引脚上的电位就始终被箝位在0电平,使输入高电平无法读入。因此,当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。

2.3.2 P1口结构

P1口的口线逻辑电路如图2-6所示。

因为P1口通常是作为通用I/O口,专门供用户使用,所以在电路结构上与P0口有一些不同之处。首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,因而无须再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。

图2-6 P1口的口线逻辑电路

2.3.3 P2口结构

P2口的口线逻辑电路如图2-7所示。P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用的,此时多路转接电路开关应倒向相反方向。

图2-7 P2口的口线逻辑电路

2.3.4 P3口结构

P3口的口线逻辑电路如图2-8所示。

图2-8 P3口的口线逻辑电路

P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑电路。由于第二功能信号有输入和输出两类,因此分两种情况说明。

①P3口作为通用I/O口使用。

当CPU对P3口进行SFR寻址(位或字节)访问时,自动将第2功能输出线置1,此时与非门打开,P3口作为通用的I/O口。输出锁存器的状态通过与非门送至输出FET。

当P3口作为输入使用时,应预先对P3口置“1”使输出FET场效应管截止。P3端口可作为高阻输入。输入信息经端口和两个缓冲器,在“读引脚”信号有效时,送内部总线。

②P3口用做第2功能使用。

8个引脚功能可按位独立定义。各功能详见表2-1。

当P3口某一位用于第2功能作为输出时,由内部硬件将该位锁存器置“1”使与非门对第2输出功能端是畅通的。如TXD、 经与非门,送至输出FET场效应管,再输出到引脚端口。

但对输入而言,无论该位是做通用输入口或做第二功能输入口,相应的输出锁存器和选择输出功能端都应置“1”。实际上由于8051单片机所有口锁存器在上电复位时均置为“1”自然满足了上述条件,所以用户不必做任何工作,就可以直接使用P3口的第二功能。

图2-8下方的输入通道中有两个缓冲器,第二功能的专用输入信号取自第一个缓冲器输出端,通用输入信号取自读引脚缓冲器的输出端。 p6zaa48fPRyuKBJuZPXsXN8LLwD7HQjhJHte24f7t4ohZ3Dc8lYQQJ30idSANfDg

点击中间区域
呼出菜单
上一章
目录
下一章
×