单片机输出低电平时,将答应外部器材,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”;单片机输出高电平时,则答应外部器材,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。
这些电流一般是多少?最大极限是多少? 这便是常见的单片机输出驱动才能的问题。
前期的 51 系列单片机的带负载才能,是很小的,仅仅用“能带动多少个 TTL 输入端”来阐明的。P1、P2 和 P3口,每个引脚能够都带动 3 个 TTL 输入端,只要 P0 口的才能强,它能够带动 8 个!
剖析一下 TTL 的输入特性,就能够发现,51 单片机基本上就没有什么驱动才能。它的引脚,乃至不能带动其时的 LED 进行正常发光。记住是在 AT89C51 单片机流行起来之后,做而论道才发现:单片机引脚的才能大为增强,能够直接带动 LED 发光了。
看
看下图,图中的 D1、D2 就能够不经其它驱动器材,直接由单片机的引脚操控发光显现。
尽管引脚现已能够直接驱动 LED 发光,可是且慢,先别太高兴,仍是看看 AT89C51 单片机引脚的输出才能吧。
从 AT89C51 单片机的 %&&&&&% 手册文件中能够看到,稳态输出时,“灌电流”的上限为:
Maximum IOL per port pin: 10 mA;
Maximum IOL per 8-bit portort 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。
定论便是:单片机输出低电平的时分,驱动才能尚可,而输出高电平的时分,就没有输出电流的才能。
这个定论是按照手册中给出的数据做出来的。
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 通路上会有灌电流;输出高电平的时分,那就什么电流都没有,此刻就不发生额定的耗电。
综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会发生很大的无效电流,这种电路不合理。