找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 155|回复: 0

51单片机P0口为什么要接上拉电阻?

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105661
发表于 2021-11-26 10:29:08 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mind 于 2021-11-26 11:45 编辑

51单片机P0口为什么要接上拉电阻?

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


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


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

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

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


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



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

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

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


51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。


如果你要驱动数码管,或者让二极管亮,需要的电流是5~10mA ,但是P0口输出电流不到1个毫安,是无法点亮发光二极管的。酱紫数码管二极管之类的就永远亮不起来了

上拉电阻接法如上图,如果接上上拉电阻,阻值为1k,然后数码管下端如果是低电平,5-0=5v

5v除以1k=0.005A,5mA正好可以点亮灯



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-3 14:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表