0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于51单片机IO引脚的驱动能力与上拉电阻

倩倩 来源:电子开发网 2020-09-18 16:08 次阅读

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

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

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

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

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

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

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

分析一下 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。

而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢?可以说是太差了,竟然不到 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),都不应该加上拉电阻,特别是输出低电平有效的时候,外接器件就有上拉的作用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44528

    浏览量

    633605
  • 上拉电阻
    +关注

    关注

    5

    文章

    359

    浏览量

    30585
  • 引脚
    +关注

    关注

    16

    文章

    1186

    浏览量

    50324
收藏 人收藏

    评论

    相关推荐

    51单片机驱动

    电子发烧友网站提供《51单片机驱动.exe》资料免费下载
    发表于 09-20 11:46 3次下载

    单片机基本io功能调试过程

    所使用的单片机型号以及需要调试的IO口。不同型号的单片机IO口的配置和特性可能有所不同。 查阅单片机
    的头像 发表于 09-14 14:38 485次阅读

    单片机io口怎么配置成输出口

    单片机IO口配置成输出口的过程通常涉及对单片机内部寄存器的操作。不同型号的单片机在寄存器配置和编程方式可能有所不同,但基本原理是相似的。以
    的头像 发表于 09-14 14:33 668次阅读

    单片机io口输出电流多大

    IO口的输出电流一般在10mA左右。 现代单片机 :如STM32等,其IO口的输出电流能力有所提升,通常可以达到20-25mA。然而,需要注意的是,多个
    的头像 发表于 09-14 14:29 1361次阅读

    单片机引脚悬空是什么电平

    ,其电平状态通常有两种可能:高电平或低电平。具体取决于单片机的内部结构和外部环境因素。 1.1 内部结构因素 单片机的I/O引脚内部结构通常包括一个
    的头像 发表于 08-28 09:51 1537次阅读

    电路设计基础:电阻、下拉电阻分析

    的最低高电平 (一般为3.5V),这时就需要在TTL的输出端接上电阻,以提高输出高电平的值。 2、OC门电路必须加上电阻,才能使用。 3、为加大输出
    发表于 08-22 13:59

    单片机复位电路电阻电容如何取值

    单片机系统中,复位电路是非常重要的组成部分,它确保了单片机在启动时能够可靠地进入初始状态,以及在异常情况下能够进行复位操作。复位电路通常由一个
    的头像 发表于 08-06 10:28 722次阅读

    如何让单片机IO口利用最大化

    首先,LED亮起时完全由单片机的GPIO输出电流,所以对于GPIO的电流驱动能力有一定的要求。设计电路时要注意查询自己使用的MCU的电流驱动能力
    发表于 04-29 14:29 1720次阅读
    如何让<b class='flag-5'>单片机</b>的<b class='flag-5'>IO</b>口利用最大化

    请问如何扩展单片机IO口?

    的引出,这个不是哪个单片机能直接实现的吧!其实扩展IO口也很容易转换电压,如从STM32的3.3V转换到5V,驱动能力也强大了很多,很容易扩展较大电流。 今天大家讨论一下,你们是如何扩展IO
    发表于 04-24 06:30

    请为cx3的io口没有内部电阻或下拉电阻吗?

    ,CyU3PGpioSetValue,在配置参数里CyU3PGpioSimpleConfig_t的结构里,没有看到此io口是否可以配置内部或下拉电阻。请为cx3的
    发表于 02-28 06:25

    IO内置电阻的阻值是多少?所有IO都有内置电阻么,阻值是否一样?

    IO内置电阻的阻值是多少?所有IO都有内置
    发表于 02-21 06:17

    MS51FC0AE单片机IO口损坏的原因?

    请问大家一下: 我使用的是“MS51FC0AE单片机”,输入IO口 使用外置5V然后接外置输入电平,用于输入电平检测,发现
    发表于 01-17 08:22

    51单片机8位数码管显示学号程序编写思路

    码管与51单片机进行连接。数码管通常由8个LED灯组成,其引脚分别是A、B、C、D、E、F、G和DP。当我们将数码管的8个引脚51
    的头像 发表于 01-04 15:21 7288次阅读

    基于51单片机的正弦信号发生器的设计

    的正弦信号发生器。 一、51单片机简介 51单片机是以英特尔公司的MCS-51单片机为核心的一族
    的头像 发表于 12-07 16:20 1709次阅读

    WT2605C蓝牙音频语音芯片:具备大功率IO驱动能力,引领音频技术新纪元

    在当今的电子科技时代,功率强大的IO驱动能力成为音频设备性能的重要指标。近日,一款名为WT2605C的蓝牙音频语音芯片,以其最高可直接驱动64mA的大功率IO
    的头像 发表于 12-05 08:47 504次阅读
    WT2605C蓝牙音频语音芯片:具备大功率<b class='flag-5'>IO</b><b class='flag-5'>驱动能力</b>,引领音频技术新纪元