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

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

3天内不再提示

p0口为什么接上拉电阻

工程师 来源:网络整理 作者:h1654155205.5246 2018-08-22 17:16 次阅读

单片机P0端口的结构及工作原理

P0端口8位中的一位结构图见下图:

p0口为什么接上拉电阻

由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

单片机端口上拉电阻的作用

顾名思义,上拉就是把电平拉高(一般到电源),下拉就是拉低(一般到地)。上拉主要是为了提高灌电流驱动能力,相当于从电源借点儿功率到IO口,下拉主要是在IO口功率足够的情况下,为了保护IO口,静态时为0电平。

对于不同的单片机和端口,上拉电阻的作用不同,最常见的由于内部结构的问题,不能处于悬空状态。我就以51单片机进行叙述,以其P0口为例,P0口是集电极开路输出,也就是OC门,这种结构没有输出高电平的能力就相当于一个一端接地的开关, 按下去就输出低电平0V,断开就没有电压,是悬空状态。至于用不用上拉电阻,取决于外部电路,如果要输出高电平控制一个器件,而这个器件本身又没有内置上拉,就必须自己接一个上拉电阻,如果要用低电平控制一个器件,则可以不用加上拉。一般来讲,做板子时都会在P0口放一个排阻,10Kohm就可以了。

P0口作为I/O口输出的时候时,输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态,也就是说P0 口不能真正的输出高电平)。给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。P0作输入时不需要上拉电阻,但要先置1。因为P0口作一般I/O口时上拉场效应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。因此在输入前置1,使下拉场效应管截止,端口会处于高阻浮空状态,才可以正确读入数据。

单片机p0口为什么要加上拉电阻

P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。

P0口和其它三个口的内部电路是不同的,如下图:

p0口为什么接上拉电阻

P0口是接在两个三极管D0和D1之间的,而P1-P3口的上部是接一个电阻的。P0口的上面那个三极管D0是在进扩展存储器或扩展总线时使用MOVX指令时才会控制它的导通和截止,在不用此指令时都是截止的。在平常我们使用如:P0_1=0P0_1=1这些语句时控制的都是下面那个三极管D1。

我们先假设P1口接一个74HC373,来看一看它的等效图

p0口为什么接上拉电阻  

当AT89S51的P1口上接了74HC373后就等于接了一个负载,如上图右边。一般来说这些数字电路的输入阻抗都很大,都在几百K到上兆欧姆,而P1口内的电阻R一般在几十K以内。

p0口为什么接上拉电阻

如上图,当我们发出指令P1=0时,三极管D导通,见中间的等效图,这时P1点的电位为0。

当发出P1=1的指令后,三极管D截止,见右边等效图,因为Rx的阻值要比R的阻值大得多,因此P1点的电位是接近电源电压的。即高电平。

我们再来看看P0口接负载时的图

p0口为什么接上拉电阻

当P0=0时,等效图是中间的,三极管D1导通,P0点的电位为0。

而当P0=1时,等效图是右边的,三极管D1截止,而上面的三极管D0始终是截止的,这样P0点就等效于悬空了,它处在不稳定状态,P0点又是RX的高阻抗输入点,很容易受到外界和周围电路的干扰从而直接影响到74HC373的输出状态。因此就得加上个电阻。如下图

p0口为什么接上拉电阻

加上电阻Rc后,电路的状态就和P1口一样了,这个电阻Rc就是上拉电阻。

但你如果只是为了让P0口驱动个发光管,那电路可以直接简化成下图那样。S51内部的电流最好不超过15mA,如果发光管的电压为2.2V那电阻就是(5-2.2)÷15=0.18K,也就是180欧姆。

p0口为什么接上拉电阻

当P0=0时P0点为低电位,发光管亮起,流过D1的电流约为15mA。

当P0=1时,P0点为悬空,但发光管和180欧电阻都是低阻抗元件,P点电位就为高电位,再说也无任何输出影响,因此这样电路是可以的

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

    关注

    6035

    文章

    44554

    浏览量

    634668
  • 上拉电阻
    +关注

    关注

    5

    文章

    359

    浏览量

    30609
收藏 人收藏

    评论

    相关推荐

    I2C总线为什么要接上电阻

    I2C为什么要接上电阻?因为它是开漏输出。 为什么是开漏输出? I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使用开漏
    的头像 发表于 11-20 10:07 443次阅读
    I2C总线为什么要<b class='flag-5'>接上</b><b class='flag-5'>拉</b><b class='flag-5'>电阻</b>

    混合动力系统构型P0P4介绍

    在混合动力技术的不断演进中,不同的动力系统构型为汽车工业注入了新的活力。每一种构型都具备独特的技术特点和应用场景,从P0P4,本文将深入探讨每种构型的优势与挑战,为读者提供全面而深入的了解。 1
    的头像 发表于 09-16 12:09 857次阅读
    混合动力系统构型<b class='flag-5'>P0</b>到<b class='flag-5'>P</b>4介绍

    如何计算上电阻的值

    I2C总线不仅能够确保信号传输的稳定,还能有效地防止多设备操作中的电气冲突。确定适当的上电阻值对于保证I2C通信的可靠性和效率至关重要。虽然在大多数应用中,使用标准的4.7kΩ电阻通常可以满足需求
    的头像 发表于 09-09 17:20 471次阅读

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

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

    求助,关于GPIO4和GPIO5上电阻问题求解

    无上,其他的 GPIO 均有上。 由于是内部配置上,所以如需下拉,需外部加下拉方式或者加一个三级管的反相电路。 PS: GPIO不能到5V。 GPIO4/5外接1M
    发表于 07-19 14:06

    开漏输出没有外接上电阻,外接个LED结果能闪亮是怎么回事?

    开漏输出,没有外接上电阻 void LCD_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure
    发表于 05-16 06:47

    请问SMT8S003F3P的I2C模块使用时需要外接上电阻吗?

    SMT8S003F3P的I2C模块使用时需要外接上电阻吗?
    发表于 05-08 06:19

    电阻如何实现低功耗设计

    电阻有助于降低系统的总功耗,同时保持电路的功能性和稳定性。那么上电阻如何实现低功耗设计呢? 以下是上
    的头像 发表于 05-02 15:00 970次阅读

    电阻的作用是什么

    电阻是一种用于保证输入信号为预期逻辑电平的电阻元件。上电阻的作用在于通过一个串联的电阻器将
    的头像 发表于 05-02 14:51 3682次阅读
    上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>的作用是什么

    MCU电路上电阻、下拉电阻的概念

    当开关闭合时,MCU IO检测到0,但是当时开关开启时,IO引脚处于floating状态,容易受干扰而处于未知状态。 这时可以在IO口上加一个电阻到Vdd,这样开关断开时就能保证电平是固定的高电平1,这个电阻就叫做上
    发表于 03-29 11:27 1851次阅读
    MCU电路上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>、下拉<b class='flag-5'>电阻</b>的概念

    stm32G031串口外部不接上电阻,导致stm32进入到了硬件中断怎么解决?

    stm32G031使用串口和另一其他芯片交互,外部直连,未接上电阻,导致stm32进入到了硬件中断
    发表于 03-13 07:59

    请问H743的USB硬件连接不需要外部上电阻

    各位好,我在查看USB协议时看到是需要在DP或DM上外接上电阻来选择速度模式的,且F1系列的评估板也是如此,如图 但当我查看H7的评估板时就没看到外部上
    发表于 03-08 06:54

    电阻和下拉电阻是什么

    就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。而下拉电阻是直接接到地上,接二极管的时候电阻末端是低电平,将不确定的信号
    发表于 02-29 12:39 3938次阅读
    上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>和下拉<b class='flag-5'>电阻</b>是什么

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

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

    ADUC7061设置DAC值,P0设置成GPIO和模拟输入,为什么会报错呢?

    ADUC7061如果我设置DAC值,P0设置成GPIO和模拟输入,本来是两个互相没关联的功能模块,居然会出错。 GP0KEY1 = 0x7; GP
    发表于 01-11 07:03