单片机灌电流、拉电流区分

1.灌电流、拉电流

单片机的引脚,可以用程序来控制输出高、低电平,这些可算是单片机的输出电压。但是程序控制不了单片机的输出电流。单片机的输出电流,很大程度上是取决于引脚上的外接器件。

1.1简介

如下图1所示:单片机输出低电平时,将允许外部器件向单片机灌入电流,这个电流称为“灌电流”,外部负载电路称为“灌电流负载”;

如下图2所示:单片机输出高电平时,则允许外部器件从单片机拉出电流,这个电流称为“拉电流”,外部负载电路称为“拉电流负载”。

单片机灌电流、拉电流区分

1.2驱动能力

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

Maximum IOL per port pin: 10 mA;
Maximum IOL per 8-bit port:Port 0: 26 mA,Ports 1, 2, 3: 15 mA;
Maximum total I for all output pins: 71 mA.

这里是说:
每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA;
每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA,而 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;
全部的四个接口所允许的灌电流之和,最大为 71 mA。

当这些引脚“输出高电平”的时候,单片机的“拉电流”能力太差了,竟然不到 1 mA。

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

2.灌电流负载、拉电流负载

        图1中,是灌电流负载。单片机输出低电平时,LED亮;输出高电平的时候,那就什么电流都没有,此时就不产生额外的耗电。

        图2中,是拉电流负载。单片机输出低电平的时候,LED不亮,此时VCC通过R2把电流全部灌进单片机IO口,并且电流是5ma;单片机输出高电平的时候,VCC通过R2将电流注入到LED中,LED 亮。LED 不发光的时候,上拉电阻给的电流全部灌入单片机的引脚了!

         如果在一个 8 位的接口,安装了 8 个 1K 的上拉电阻,当单片机都输出低电平的时候,就有 40mA 的电流灌入这个 8 位的接口!如果四个 8 位接口,都加上 1K 的上拉电阻,最大有可能出现 32 × 5 = 160mA 的电流,都流入到单片机中!这个数值已经超过了单片机手册上给出的上限。此时单片机就会出现工作不稳定的现象。而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快...等后果。

综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,并且功耗大

3.上拉电阻

          上拉电阻为拉电流负载提供电流。对于 LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。在图2中,假如单片机输出的高电平是3V,此时R2两端的电压差为5V-3V=2V。经过R2的电流为I=2V/1K=2ma,这一部分电流将全部流入LED。如果加大电阻,上拉电阻提供的电流将会减小。上拉电阻的大小一般选择在1K-10K之间就行。

4.综述

设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗。

单片机灌电流、拉电流区分

上一篇:《中国计量大学现代科技学院第四届“中竞杯”程序设计校赛部分题解》


下一篇:趋势转折的5个重要步骤