1. P0
1.1 构成
1.2 做输入端口
1.3 做输出端口
2. P1
2.1 构成
2.2 做输入端口
2.3 做输出端口
3. P2
3.1 构成
3.2 做输入端口
3.3 做输出端口
4. P3
4.1 构成
4.2 做输入输出端口
5. 总结
51单片机并行GPIO,按其特性分为
单一的准双向口
多功能复用准双向口
地址总线输出准双向口
地址/数据总线口的三态双向
P0 ~ P3口都有各自的用法:
P0:常作系统数据或低8位地址复用口,第二功能:用于系统扩展
P1:常作通用I/O口使用
P2:常作系统高8位地址,第二功能:用于系统扩展
P3:常用第二功能
1. P0
1.1 构成
1个输出锁存器(D型触发器)
2个三态缓冲器(控制读引脚或读锁存器)
1个输出驱动电路(1对场效应晶体管FET构成)
1个输出控制端(1个与门、1个反相器、1个转换开关MUX组成)
1.2 做输入端口
P0口的输入信号既送到下面的三态缓冲器,又送到V2的漏极。如果锁存器之前锁存为0,即Q=0, 非Q=1,则V2导通,通过P0端口的外接上拉电阻,P0口被钳在0电平上,1无法送入P0口。所以在数据输入P0口前,必须先通过内部总线向锁存器写1,即Q=1,V2截止,P0口输入的1就可以送到三态门的输入端。此时再给三态门的读引脚送一个读控制信号(高电平),1就可以通过三态门送到内部总线。
1.3 做输出端口
此时单片机内部的CPU会发出一个0到与门的控制端。控制端的0一方面关闭与门,使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开关与锁存器的 端接通,此时若给写锁存器端CP送入写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器,并从Q和非Q端输出,如果D端输入1,则非Q端输出0,该0使场效应管V2截止,通过P0口的外接上拉电阻,可使P0口输出高电平1。
2. P1
2.1 构成
1个输出锁存器
2个三态输入缓冲器
输出驱动电路
2.2 做输入端口
此时Q=0,非Q=1,场效应管导通,通过P1口的内部上拉电阻,P1口被钳在0电平上,1无法送入P1口。所以与P0口一样,在数据输入P1口之前,先要通过内部总线向锁存器写1,让非Q=0,场效应管截止,P1口输入的1就可以送到输入三态缓冲器的输入端,此时再给三态门的读引脚送一个读控制信号,1就可以通过三态缓冲器送到内部总线。
2.3 做输出端口
此时应给锁存器的写锁存器CP端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和非Q端输出,如果DUAN输入1,则非Q=0,0送到场效应管的栅极,场效应管截止,从P1输出1。
【回到目录】
3. P2
3.1 构成
1个输出锁存器、1个转换开关MUX、2个三态输入缓冲器、输出驱动电路、1个反相器。
3.2 做输入端口
此时同样需要先通过内部总线向锁存器写1,让Q=1,场效应管截止,P2口输入的1才能送到三态门的输入端。此时,再给读引脚送一个读控制信号,1就可以通过三态门送到内部总线。
3.3 做输出端口
此时给锁存器的CP端送写脉冲信号,内部总线上的数据就被锁存进锁存器并从Q端输出,再通过电子开关、非门和场效应管从P2口输出。
4. P3
4.1 构成
1个输出锁存器、3个输入缓冲器、输出驱动电路。
输出驱动电路包括1个与非门、1个场效应管T、上拉电阻R。
4.2 做输入输出端口
与P1、P2作用类似。
5. 总结
P0口地址为80H,可进行位操作。
P0驱动NMOS输入时需外接上拉电阻。
P0可作通用I/O口,作低8位地址/数据总线时,无需外接上拉电阻。
P0可做为高阻态输入端使用。
P0 ~ P3做输入时,端口必须先置1,使内部场效应管截止,从而不影响输入电平。