总结
P0:无内置上拉电阻漏极开路双向I/O口,可作为高阻抗输入端使用。P0口做普通 I/O
时,需外接10KΩ上拉电阻。作低8位地址/数据总线时,不用外接上拉电阻。P1 ~ P3:内置上拉电阻的双向I/O口,各端口缓冲器可接收、输出4个TTL门电路。
P0 ~ P3做输入端时必须将P0 ~ P3口先置1。使内部场效应管截止,从而不影响输入电平。
P0 ~ P3均可位操作。
下面的图个乐,没基础的看这玩意就是挥刀自宫
1. P0
1个输出锁存器(D型触发器)
2个三态缓冲器(控制读引脚或读锁存器)
1个输出驱动电路(1对场效应晶体管FET构成)
1个输出控制端(1个与门、1个反相器、1个转换开关MUX组成)
1.1 做输入口
P0口的输入信号既送到下面的三态缓冲器,又送到V2的漏极。如果锁存器之前锁存为0,即Q=0,Q’=1,则V2导通,通过P0端口的外接上拉电阻,P0口被钳在0电平上,1无法送入P0口。所以在数据输入P0口前,必须先通过内部总线向锁存器写1,即Q=1,V2截止,P0口输入的1就可以送到三态门的输入端。此时再给三态门的读引脚送一个读控制信号(高电平),1就可以通过三态门送到内部总线。
1.2 做输出口
此时单片机内部的CPU会发出一个0到与门的控制端。控制端的0一方面关闭与门,使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开关与锁存器的 Q’ 端接通,此时若给写锁存器端CP送入写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器,并从Q和 Q’ 端输出,如果D端输入1,则 Q’ 端输出0,该0使场效应管V2截止,通过P0口的外接上拉电阻,可使P0口输出高电平1。
2. P1
1个输出锁存器
2个三态输入缓冲器
输出驱动电路
2.1 输入功能
此时Q=0,非Q=1,场效应管导通,通过P1口的内部上拉电阻,P1口被钳在0电平上,1无法送入P1口。所以与P0口一样,在数据输入P1口之前,先要通过内部总线向锁存器写1,让非Q=0,场效应管截止,P1口输入的1就可以送到输入三态缓冲器的输入端,此时再给三态门的读引脚送一个读控制信号,1就可以通过三态缓冲器送到内部总线。
2.2 输出功能
先给锁存器的CP端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和非Q端输出,如果DUAN输入1,则非Q=0,0送到场效应管的栅极,场效应管截止,从P1输出1。
3. P2
1个输出锁存器
1个转换开关MUX
2个三态输入缓冲器
1个反相器
输出驱动电路
3.3 输入功能
同样需要先通过内部总线向锁存器写1,让Q=1,场效应管截止,P2引脚输入的1才能送到三态门的输入端。此时,再给读引脚送一个读控制信号,1就可以通过三态门送到内部总线。
3.2 输出功能
此时给锁存器的CP端送写脉冲信号,内部总线上的数据就被锁存进锁存器并从Q端输出,再通过MUX开关、非门和场效应管从P2口输出。
4. P3
1个输出锁存器
3个输入缓冲器
输出驱动电路(包括1个与非门、1个场效应管T、上拉电阻R)
4.1 输入输出
用法与 P1、P2类似。
4.2 复用功能
此时该端口可输入外部设备送到的中断请求信号。