在我们刚一开始接触到 51 单片机的时候对 P0 口必须加上上拉电阻,否则 P0 就是高阻态。

 

对这个问题可能感到疑惑,为什么是高阻态?加上拉电阻?今天针对这一概念进行简单讲解。

 

高阻态
高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。

 

如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。

 

高阻态的实质
电路分析时高阻态可做开路理解,你可以把它看作输出(输入)电阻非常大。


它的极限可以认为悬空,也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。

 

高阻态的意义
当门电路的输出上拉管导通而下拉管截止时,输出为高电平,反之就是低电平。


如果当上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制 。

 

典型应用
在总线连接的结构上。总线上挂有多个设备,设备于总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。

 

大部分单片机 I/O 使用时都可以设置为高阻输入。高阻输入可以认为输入电阻是无穷大的,认为 I/O 对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。

 

高阻态常用表示方法:高阻态常用字母 Z 表示。

 

在一个系统中或在一个整体中,我们往往定义了一些参考点,就像我们常常说的海平面,在单片中也是如此,我们无论说是高电平还是低电平都是相对来说的。明确了这一点对这一问题可能容易理解。

 

单片机中的高阻态
 

51 单片机,没有连接上拉电阻的 P0 口相比有上拉电阻的 P1 口在 I/O 口引脚和电源之间相连是通过一对推挽状态的 FET 来实现的,51 具体结构如下图。

 

组成推挽结构,从理论上讲是可以通过调配管子的参数轻松实现输出大电流,提高带载能力,两个管子根据通断状态有四种不同的组合,上下管导通相当于把电源短路了,这种情况下在实际电路中绝对不能出现。

 

从逻辑电路上来讲,上管开 - 下管关开时 IO 与 VCC 直接相连,IO 输出低电平 0,这种结构下如果没有外接上拉电阻,输出 0 就是开漏状态(低阻态),因为 I/O 引脚是通过一个管子接地的,并不是使用导线直接连接,而一般的 MOS 在导通状态也会有 mΩ极的导通电阻。

 

到这里就很清楚了,无论是低阻态还是高阻态都是相对来说的,把下管子置于截止状态就可以把 GND 和 I/O 口隔离达到开路的状态,这时候推挽一对管子是截止状态,忽略读取逻辑的话 I/O 口引脚相当于与单片机内部电路开路,考虑到实际 MOS 截止时会有少许漏电流,就称作“高阻态”。

 

由于管子 PN 节带来的结电容的影响,有的资料也会称作“浮空”,通过 I/O 口给电容充电需要一定的时间,那么 IO 引脚处的对地的真实电压和水面浮标随波飘动类似了,电压的大小不仅与外界输入有关还和时间有关,在高频情况下这种现象是不能忽略的。

 

总之一句话高阻态是一个相对概念。在使用的时候我们只要按照要求去做,让我们加上拉我们就加上,都是有一定道理的。