C51引脚结构通俗解释(准双向口结构) 前言C51单片机被广泛用于教学演示通常在学习中C51的P1,P2,P3,P4这四组引脚被称作准双向口而P0组引脚用作开漏输出相信你一定见过这样检测按键是否被按下void main() { P1_1 1; while (1) { if (P1_1 0) { // P1_1被按下 } } }是否有这样的疑惑为什么P1_1被内部设置为1后又能被外部置为0或者为什么P0组引脚本身不能输出高电平需要外接电源与电阻在本篇文章中我们来探究C51的引脚的内部结构解决这些疑惑前置知识P1/P2/P3/P4 引脚内部结构乍一看准双向口结构复杂难以理解实际上简化一下就是下面这个样子实际上就是有两部分晶体管当控制信号为1时上方晶体管打开引脚与内部电源连接当控制信号为0时下方晶体管打开引脚与内部接地链接所以当控制信号变化时引脚也可以同样变化其中因为弱上拉晶体管的等效阻值很大所以如果内部拉高外部接地就会使引脚拉低因为此时构成通路电压被弱上拉晶体管消耗这就是为什么准双向口可以置1然后被外部拉到0的原因本质就是内部接到电源外部接地形成通路此时的电压被弱上拉晶体管分压引脚的电压就是低电平了如果内部接到电源但外部什么也不接就无法形成通路自然不存在集体管分压引脚的电压仍是电源电压而原设计中的强上拉,极弱上拉则是应对不同状态时切换保证引脚稳定工作而对于当控制信号为0时下方晶体管打开引脚与接地直接相连因为这是强下拉晶体管(等效阻值小)所以导通时等效直接与接地相连外部不可直接连接电源必须存在电阻等分压否则短路造成元件损坏P0引脚内部结构相比于准双向口P0的开漏输出要简单当控制信号为1时引脚悬空(既没接电源也没接地)当控制信号为0时晶体管打开引脚与内部接地链接所以如果想用P0口输出高电平一般外接电源