8051单片机的GPIO
2021/06/23
个人笔记,未免错漏,欢迎指正,随时更新
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,使内部场效应管截止,从而不影响输入电平。

浙公网安备 33010602011771号