51单片机的P0是多功能口,内部结构如图,管脚输出是两个MOS管组成的推拉式结构,是标准的逻辑门结构,不是OC门,由于工作模式多,有时呈现的特征又是OC门的性质。
(1)P0用作I/O口:V1管是截止的,所以P0是漏极开路输出,类似于OC门,需要输出高电平驱动负载时,要外接上拉电阻。实际上不会把P0口作为I/O口用的。
(2)P0用作地址/数据复用口:在输出“地址/数据”时,V1、V2管是交替导通的,负载能力很强,做总线驱动器用。
在读入数据(指令)期间,V1、V2管截止,数据通过三态门输入内部总线。
(3)V1、V2管截止,P0口就是高阻态,输入缓冲器可以忽略不计。
有一个教程说明的很详细,我发私信给你,知道栏目不让贴有广告的网页,可以理解,百度已经很好了。
p0口有三态分别是:高阻,高电平,低电平。
因为p0要作数据总线和地址总线用,所以必须要有三态,在不使用的时候要使p0口呈高阻态,以免干扰总线上的其它信号。
在下之见:
如果说是网络标号不对的 话,就是说8个端口都不对了,那么8个都应该是高阻态
但是实际上有7个是高电平,所以说上拉电阻没问题
出现高阻态的原因,在下认为是跟 U2 有关系,是由于 U2 对应的输出是高阻态
只能想到这个解释了
如图所示为P0口电路图。P0口的输出端是由上下2只场效应管组成。当上管V1导通、下管V1截止时,P0输出高电平;当上管V1截止、下管V2导通时,P0输出低电平;当V1、V2都截止时,就是高阻态。国为场效应管截止时DS间阻抗非常高(近似于开路),两管都截止就近似于P0口悬空。高阻态就是在两只管都截止时产生的。另外,内部电路已设计成两管不会同时导通,因为一但真的同时导通,两只管子会烧坏(至少坏一只),这时这个P0口就坏了。