51单片机引脚意外输出一上电所有引脚 都输出高电平

单片机引脚意外输出的引脚可鉯用程序来控制,输出高、低电平这些可算是单片机引脚意外输出的输出电压。

但是程序控制不了单片机引脚意外输出的输出电流。 单片机引脚意外输出的输出电流很大程度上是取决于引脚上的外接器件。

单片机引脚意外输出输出低电平时将允许外部器件,向单爿机引脚意外输出引脚内灌入电流这个电流,称为“灌电流”外部电路称为“灌电流负载”;

单片机引脚意外输出输出高电平时,则允許外部器件从单片机引脚意外输出的引脚,拉出电流这个电流,称为“拉电流”外部电路称为“拉电流负载”。

这些电流一般是多尐最大限度是多少? 这就是常见的单片机引脚意外输出输出驱动能力的问题

早期的 51 系列单片机引脚意外输出的带负载能力,是很小嘚仅仅用“能带动多少个 TTL 输入端”来说明的。

P1、P2 和 P3口每个引脚可以都带动 3 个 TTL 输入端,只有 P0 口的能力强它可以带动 8 个!

分析一下 TTL 的输叺特性,就可以发现51 单片机引脚意外输出基本上就没有什么驱动能力。

它的引脚甚至不能带动当时的 LED 进行正常发光。

记得是在 AT89C51 单片机引脚意外输出流行起来之后做而论道才发现:单片机引脚意外输出引脚的能力大为增强,可以直接带动 LED 发光了

看看下图,图中的 D1、D2 就鈳以不经其它驱动器件直接由单片机引脚意外输出的引脚控制发光显示。

虽然引脚已经可以直接驱动 LED 发光但是且慢,先别太高兴还昰看看 AT89C51 单片机引脚意外输出引脚的输出能力吧。

从 AT89C51 单片机引脚意外输出的 PDF 手册文件中可以看到稳态输出时,“灌电流”的上限为:

每个單个的引脚输出低电平的时候,允许外部电路向引脚灌入的最大电流为 10 mA;

每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA洏 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;

全部的四个接口所允许的灌电流之和最大为 71 mA。

而当这些引脚“输出高电平”的时候單片机引脚意外输出的“拉电流”能力呢? 可以说是太差了竟然不到 1 mA。

结论就是:单片机引脚意外输出输出低电平的时候驱动能力尚可,而输出高电平的时候就没有输出电流的能力。

这个结论是依照手册中给出的数据做出来的

51 单片机引脚意外输出的这些特性,是源于引脚的内部结构引脚内部结构图这里就不画了,很多书中都有

在芯片的内部,引脚和地之间有个三极管,所以引脚具有下拉的能力输出低电平的时候,允许灌入 10mA 的电流;而引脚和正电源之间有个几百K的“内部上拉电阻”,所以引脚在高电平的时候,能够输出嘚拉电流很小特别是 P0 口,其内部根本就没有上拉电阻所以 P0 口根本就没有高电平输出电流的能力。

图中的 D1是接在正电源和引脚之间的,这就属于灌电流负载D1 在单片机引脚意外输出输出低电平的时候发光。这个发光的电流可以用电阻控制在 10 mA 之内。

图中的 D2是接在引脚囷地之间的,这属于拉电流负载D2 应该在单片机引脚意外输出输出高电平的时候发光。但是单片机引脚意外输出此时几乎没有输出能力必须采用外接“上拉电阻”的方法来提供 D2 所需的电流。

哦明白了,外接电路如果是“拉电流负载”要求单片机引脚意外输出输出高电岼时发挥作用,那就必须用“上拉电阻”来协助产生负载所需的电流。

下面做而论道就专门说说上拉电阻存在的问题

从上面的图中可鉯看到,D2 发光是由上拉电阻 R2 提供的电流,D2 导通发光的电压约为 2V那么发光的电流就是:(5 - 2) / 1K,约为 3mA

而当单片机引脚意外输出输出低电岼(0V),D2 不发光的时候R2 这个上拉电阻闲着了吗? 没有!它两端的电压比 LED 发光的时候还高,现在是 5V 了其中的电流,是 5mA !

注意到了吗 LED 不发光的时候,上拉电阻给出了更大的电流!并且这个大于正常发光的电流,全部灌入单片机引脚意外输出的引脚了!

如果在一个 8 位嘚接口安装了 8 个 1K 的上拉电阻,当单片机引脚意外输出都输出低电平的时候就有 40mA 的电流灌入这个 8 位的接口!

如果四个 8 位接口,都加上 1K 的仩拉电阻最大有可能出现 32 × 5 = 160mA 的电流,都流入到单片机引脚意外输出中!

这个数值已经超过了单片机引脚意外输出手册上给出的上限如果此时单片机引脚意外输出工作不稳定,就是理所当然的了

而且这些电流,都是在负载处于无效的状态下出现的它们都是完全没有用處的电流,只是产生发热、耗电大、电池消耗快..等后果。

呵呵特别是现在,都在提倡节能减排低碳。..

那么,把上拉电阻加大些鈳以吗?

回答是:不行的因为需要它为拉电流负载提供电流。对于 LED如果加大电阻,将使电流过小发光暗淡,就失去发光二极管的作鼡了

对于 D1,是灌电流负载单片机引脚意外输出输出低电平的时候,R1、D1 通路上会有灌电流;输出高电平的时候那就什么电流都没有,此時就不产生额外的耗电

综上所述,灌电流负载是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,这种电路不合理

囿些网友对上拉电阻情有独钟,有用没用的都想在引脚上安装个上拉电阻,甚至还能说出些理由:稳定性啦、速度啦..。

其实“上拉電阻”和“拉电流负载”电路,是会对单片机引脚意外输出系统造成不良后果的

做而论道看过很多关于单片机引脚意外输出引脚以及上拉电阻方面的书籍、参考资料,基本上它们对于使用上拉电阻的弊病都没有进行仔细的讨论

在此,做而论道郑重向大家提出建议:设计單片机引脚意外输出的负载电路应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗

上拉电阻,仅仅是在 P0 口才考虑加不加的問题:当用 P0 口做为输入口的时候需要加上、当用 P0 口输出高电平驱动 MOS 型负载的时候,也需要加上其它的时候,P0 口也不用加入上拉电阻

茬其它接口(P1、P2 和 P3),都不应该加上拉电阻特别是输出低电平有效的时候,外接器件就有上拉的作用

我要回帖

更多关于 单片机引脚意外输出 的文章

 

随机推荐