51系列单片机P0端口具体讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有关单片机P0口具体讲解

图1

(一)在我们讲解P0端口之前我们首先梳理一下各个端口有什

么不同之处:

P0口有三个功能:

1、外部扩展存储器时,当做数据(Data)总线(如图1中的D0~D7为数据总线接口)

2、外部扩展存储器时,当作地址(Address)总线(如图1中的A0~A7为地址总线接口)

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻(后面将详细介绍)。

P1口只做I/O口使用:其内部有上拉电阻。

P2口有两个功能:

1、扩展外部存储器时,当作地址总线使用(如图1中的A8~A15为地址总线接口)

2、做一般I/O口使用,其内部有上拉电阻;

P3口有两个功能:

除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

图2(注:该图只是P0口的一位,也就是说P0口有8个相同的这样的结构)

图3

(二)由图2可以看出每个P0口都有这些元件:

一个锁存器,两个三态输入缓冲器和一个输出驱动电路组成

在访问外部存储器时,P0是一个真正的双向口,当P0输出地址/数据信息时,CPU内部法控制电平“1”来打开上面的与门,又使模拟开关MUX把地址/数据信息经过反相器和T1接通(我们称上面的场效应晶体管FET为T1,下面的场效应管FET为T2);

输出的地址/数据信息既通过与门去驱动T1,又通过反相器去驱动T2,是两个FET构成推拉输出电路;

1.当P0口作为外部扩展存储器的数据地址总线时:

●若地址数据信息为“0”,那么这个信号就使得T1截止,使T2导通(经过反反相器作

用使得T2接收到的信号为“1”,根据场效应晶体管的特性,T2导通),若T2导通,那么T2的上下两个N极就导通,而发射极(下面的N极)接地信号则为“0”,这样P0口就相当于接收到了“0”信号;

●若地址数据信息输入“1”,则该信号使T2截止,使T1导通,在T1导通情况下,T1

的上下N极导通,使得VCC与P0相同,从而输出高电平,即“1”信号;

●若从P0口输入信号,信号从引脚通过输入缓冲器进入内部总线;

2.当P0口作为一般I/O口使用时:

●CPU内部发布控制信号“0”,封锁与门,使得T1截止,同时使模拟开关MUX把锁存

器的非Q端与T2端的栅极接通;

●在P0口作为输出时,由于非Q端和T2的倒相作用,那么内部总线上的信息与到达P0

口上的信息是同相的,只要写脉冲加到锁存器的CL端,内部总线上的信息就会P0的引脚上;

●但是由于此时T2为漏极开路输出,所以要外接上拉电阻。

当P0作为输入时,由于该信号既加到T2又加到下面的三态缓冲器。现在我们假设我们刚刚输出的信号为“0”,也就是输入锁存器的数据为“0”,经过非Q达到T2使T2导通,这样P0引脚上的信号就被T2钳在“0”电平上,这样就使输入的“1”无法读入。那么我们就必须在输入信号前,应该先向锁存器Q端写“1”,非Q就为“0”,使T2截止,这就是所谓的“准双向口”的解释。但是在访问片外存储器时,CPU会自动向锁存器Q写入“1”,所以对用户而言P0口作为数据/地址总线时,是一个真正的双向口。

相关文档
最新文档