目录
1.概述
单片机的I/O端口是输入信号和输出信号的通道。8051单片机有P0、P1、P2、P3四组I/O 端口,每组端口有8个引脚。
2.P0端口 2.1 概述
P0端口有P0.0~P0.7共8个引脚,这些引脚除了可用作输入引脚和输出引脚外,在外接存储器时,还可用作地址/数据总线引脚。P0端口每个引脚的内部电路结构都相同,其内部电路结构如图1所示。

图1 P0端口的内部电路结构图
2.2 P0端口用作输出端口的工作原理
下面讲解单片机需要从P0.x 引脚输出高电平“1”。如图1所示,单片机内部相关电路通过控制线送出“0(低电平)”到与门的一个输入端和电子开关的控制端,控制线上的“0”一方面使与门关闭(即与门的一端为“0”时,不管另一端输入何种信号,输出都为“0”),晶体管VT1栅极为“0”处于截止,地址/数据线送来的信号无法通过与门和晶体管VT1;控制线上的“0”另一方面控制电子开关,让电子开关与锁存器的
端连接。CPU 再从内部总线送高电平“1”到锁存器的D端,同时往锁存器的CL端送写锁存器信号,D端的“1”马上存入锁存器并从Q和
端输出,D 端输入“1”,Q 端输出“1”,
端则输出“0”,
端输出“0”经电子开关送到晶体管VT2的栅极,VT2截止,由于VT1也处于截止,P0.x引脚处于悬浮状态,因此需要在P0.x引脚上接上拉电阻,在VT2截止时,P0.x引脚输出高电平。
下面讲解单片机需要从P0.x 引脚输出高电平“0”。如图1所示,单片机内部相关电路通过控制线送出“0(低电平)”到与门的一个输入端和电子开关的控制端,控制线上的“0”一方面使与门关闭(即与门的一端为“0”时,不管另一端输入何种信号,输出都为“0”),晶体管VT1栅极为“0”处于截止,地址/数据线送来的信号无法通过与门和晶体管VT1;控制线上的“0”另一方面控制电子开关,让电子开关与锁存器的
端连接。CPU 再从内部总线送高电平“0”到锁存器的D端,同时往锁存器的CL端送写锁存器信号,D端的“0”马上存入锁存器并从Q和
端输出,D 端输入“0”,Q 端输出“0”,
端则输出“1”,
端输出“1”经电子开关送到晶体管VT2的栅极,VT2导通,由于VT1处于截止,P0.x引脚处于悬浮状态,因此需要在P0.x引脚上接上拉电阻,在VT2导通时,P0.x引脚输出低电平。
总的来说,当单片机需要将P0端口用作输出端口时,内部CPU会送控制信号“0”到与门和电子开关,与门关闭(上晶体管VT1同时截止,将地址/数据线与输出电路隔开),电子开关将锁存器与输出电路连接,然后CPU通过内部总线往P0端口锁存器送数据和写锁存器信号,数据通过锁存器、电子开关和输出电路从P0端口的引脚输出。在P0端口用作输出端口时,内部输出电路的上晶体管处于截止(开路),下晶体管的漏极处于开路状态(称为晶体管开漏),因此需要在P0端口引脚接外部上拉电阻,否则无法可靠输出“1”或“0”。
2.3 P0端口用作输入端口的工作原理




