51单片机驱动能力(拉电流_灌电流)及上拉电阻

news/2024/7/16 9:10:04

看来很多网友都搞不清灌电流和拉电流的概念,下面就此解释一下,希望看过本文后不再就此困扰。

一个重要的前提:灌电流和拉电流是针对端口而言的。

名词解释——灌:注入、填充,由外向内、由虚而实。渴了,来一大杯鲜榨橙汁,一饮而尽,饱了,这叫“灌”。

                 灌电流(sink current) ,对一个端口而言,如果电流方向是向其内部流动的则是“灌电流”,比如一个IO通过一个电阻和一个LED连接至VCC,当该IO输出为逻辑0时能不能点亮LED,去查该器件手册中sink current参数。

名词解释——拉:流出、排空,由内向外,由实而虚。一大杯鲜橙汁喝了,过会儿,憋的慌,赶紧找卫生间,一阵“大雨”,舒坦了,这叫“拉”。

                 拉电流(sourcing current),对一个端口而言,如果电流方向是向其外部流动的则是“拉电流”,比如一个IO通过一个电阻和一个LED连至GND,当该IO输出为逻辑1时能不能点亮LED,去查该器件手册中sourcing current参数。


http://bbs.21ic.com/viewthread.php?tid=219138&highlight=%2Byezhubenyue

单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”(sink current)
单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载“(source current)

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

分析一下 TTL 的输入特性,就可以发现,51 单片机基本上就没有什么驱动能力。
它的引脚,甚至不能带动当时的 LED 进行正常发光。

记得是在 AT89C51 单片机流行起来之后,做而论道才发现:单片机引脚的能力大为增强,可以直接带动 LED 发光了。
看看下图,图中的 D1、D2 就可以不经其它驱动器件,直接由单片机的引脚控制发光显示。

虽然引脚已经可以直接驱动 LED 发光,但是且慢,先别太高兴,还是看看 AT89C51 单片机引脚的输出能力吧。
从 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。
 

http://bbs.21ic.com/viewthread.php?tid=255097&highlight=%2Byezhubenyue 


单片机驱动蜂鸣器-. 


这里驱动蜂鸣器电阻为14k 如果电压为3V的时候需要电流为21ma,但是单片机提供的电流最大也就10ma左右,所以需要三极管来放大电流

如图P26高电平的时候蜂鸣器工作,P26低电平的时候断开。 蜂鸣器工作电压3V,所以取RES2为2v / 21ma为100欧左右。先需要21ma二极管的放大倍数将近100倍,所以基极电流最小为0.21ma,现E点电压为3v所以R=U/A   电阻最大需要取2V/0.21ma=10000K   如果电阻取100欧那基极电流就是20ma,单片机驱动不了。最大为10ma可知电阻的最小为200欧姆,放大2倍则蜂鸣器就可以工作了。。(在饱和,放大的临界状态所以可以使用 IB=β*IC,)   


而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢? 有10 mA的驱动能力。

结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。
这个结论是依照手册中给出的数据做出来的。

51 单片机的这些特性,是源于引脚的内部结构,引脚内部结构图这里就不画了,很多书中都有。
在芯片的内部,引脚和地之间,有个三极管,所以引脚具有下拉的能力,输出低电平的时候,允许灌入 10mA 的电流;而引脚和正电源之间,有个几百K的“内部上拉电阻”,所以,引脚在高电平的时候,能够输出的拉电流很小。特别是 P0 口,其内部根本就没有上拉电阻,所以 P0 口根本就没有高电平输出电流的能力。

 

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

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

 

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

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

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

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

有些网友对上拉电阻情有独钟,有用没用的,都想在引脚上安装个上拉电阻,甚至还能说出些理由:稳定性啦、速度啦...。
其实,“上拉电阻”和“拉电流负载”电路,是会对单片机系统造成不良后果的。

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

 

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

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

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


http://www.niftyadmin.cn/n/3823394.html

相关文章

Poj 1463 Strategic game 【树形DP】

http://poj.org/problem?id1463 题目大意:有若干节点,节点之间有路相连,构成树形结构,如果在一个节点上放置一个士兵,与这个节点相连的路就可以被监视,现在要监视所有的路,问至少要多少士兵。 …

灌电流和拉电流的概念及记忆方法

看来很多网友都搞不清灌电流和拉电流的概念,下面就此解释一下,希望看过本文后不再就此困扰。一个重要的前提:灌电流和拉电流是针对端口而言的。名词解释——灌:注入、填充,由外向内、由虚而实。渴了,来一大…

几个电子技术方面的名词

操作系统的缩写是OS 非操作系统 叫裸奔 集电极开路简称oc 漏极开路简称OD 还有个端口灌电流和拉电流在另一篇上。 TTL和CMOS的区别?太累了。看不动了。.....明天查。

在uboot中查看uboot信息

在uboot中查看uboot信息 [fulinuxs3c2440]# bdinfo arch_number 0x000007CF env_t 0x00000000 boot_params 0x30000100 DRAM bank 0x00000000 -> start 0x30000000 -> size 0x04000000 ethaddr 08:00:3e:26:0a:11 ip_addr 192.168…

java+selenium元素定位和元素操作

1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: findElement(By.xpath(“”)); 通过元素的标签名称定位元素: findElement(By.tag…

2019.2.27 Eclipse中的Tomcat设置Tomcat服务器手动重启

1.打开Tomcat的设置界面 2.找到Modules界面 3.去掉,就改为手动了 转载于:https://www.cnblogs.com/qichunlin/p/10443665.html

[小红猪]头脑练功房:冥想真的有效吗?

本期译者:Glauren Glauren对大家说:大家好,我是Glauren。我是某岛国某医学院的二年级医学生。我的兴趣和阅读范围主要在临床医学与相关科研,伦理学,政治学和经济学。当翻译票友已经有了两三年的历史。几个月前接触科学…

Excel VBA遍历文件

休息日,无聊的上Excel Home看看有啥东东可学习,有啥问题能帮帮忙。看到很多帖子都是求助遍历特定文件夹下文件的实现方法。有朋友说03版Excel有FileSearch对象可以遍历文件夹下文件,07版中没有了FileSearch对象,不知如何遍历文件。…