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

51单片机P0口为什么要接上拉电阻?
该如何接上拉电阻?
不接上拉电阻会怎样?
求大哥大姐用图解析上列问题,满意再加分。

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

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


当AT89S51的P1口上接了74HC373后就等于接了一个负载,如上图右边。一般来说这些数字电路的输入阻抗都很大,都在几百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系列的单片机一般不具备自编程能力。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-05

也不会怎样额额,要看你实现什么功能了。

 

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

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

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

追问

不懂,你不是说 需要的电流是5~10mA ,为什么0.5mA?

追答

我错闹~~~不好意思,打错了 5v除以1k应该等于0.005安,就是5毫安 。。。

本回答被提问者采纳
第2个回答  推荐于2018-02-19

因为51单片机P0口内部是漏极开路型(作I/O口用时)。

上拉电阻一般用10K,一端接P0口中,一端接VCC,通常都用排阻方便些。

不接上拉电阻的话输出会不正常,比如输出高电平时得不到高电平 

追问

不懂P0口内部是怎样的?漏极开路是啥意思呢?

追答

类似于三极管的集电极开路,就是集电极与电源之间那个电阻没接。
其实原理大概知道就可以,主要是编程和外部电路接线。

本回答被网友采纳
第3个回答  2012-08-05
因为P0口内部没有上拉,其它口有,你对比书本上两都的IO结构图就知道了。

51单片机p0口为什么接上拉电阻
简单的说,P0输出高电平时,由于内部结构,只能输出高阻态。所以外接上拉电阻。

单片机p0口为什么要接上拉电阻
单片机p0口要接上拉电阻,是有条件的,条件就是:传统的51单片机,才需要在P0口加上拉电阻。原因是P0是开漏输出的,当输出高电平时,是无输出的,需要用上拉电阻才能拉成高电平。并不是为了提高其驱动能力的。因最初的51单片机是用P0口作数据总线的,需要是准双向口。而现在的51单片机不再需要P0口...

51单片机中P0口作I\/O使用时,为什么要在外部接上拉电阻
单片机每个IO口的输入输出电流十分有限,超过的话会烧坏芯片。加上上拉电阻,可起到限制电流、稳定IO口高地位状态的作用。当P0口接VCC,有上拉电阻限制电流输入单片机,实际上是提高了单片机IO口的驱动能力,就是根据输入电压,设计一个合理的上拉电阻,提高了单片机控制更高电压\/电源等器件工作的能力。另...

51单片机的P0口作输出用途之前必须
必须接上拉电阻保证高电平值。传统51单片机的P0口是双向口,做输入端口使用时,P0口处于高阻输入状态,如果所接外部器件恰好是开漏输出,那么就必须接上拉电阻保证高电平值。当她作为输出口使用时,其结构是开漏输出,此时也需要加上拉电阻才能保证能输出准确的高电平。

51单片机p0口上拉电阻
I\/O的上拉,下拉,主要是给受控器件增加常态时的稳定状态,不会因芯片在开机等操作时I\/O电压不稳定引起受控器件的误触发。另外你说的到从1降到0这个是不会发生的。我们在上拉下拉的时候一般会串一个10KΩ级别的电阻,举例你接的是上啦,I\/O常态是高电平。当你把I\/O口置低的时候,其实上拉电阻...

单片机中上拉电阻的作用是什么?
1.一般51单片机的P0口在作为地址\/数据复用时不接上拉电阻。2.作为一般的I\/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻!!3.当p0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效;4.当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够...

什么是上拉电阻啊,学到单片机的P0口,说要接上拉电阻,但不知道是什么?不...
P0口作地址\/数据总线时不需要接上拉电阻,只有当它作I\/O口,且作输出口时因其内部结构,使它驱动能力不行,所以需要接上拉电阻。

P0口是否需要上拉电阻的问题
51单片机的四个端口其内部电路的不同导致了它们在扩展外部电路时候也会出现不同的结果,其中P0口就表现出非常有趣的现象。通常我们说P0口需要接上拉电阻才能正常工作,是因为其内部结构与其他三个端口存在差别,没有上拉电阻的缘故,所以如果不接上拉电阻,P0口的状态就不会得到预期的结果,或许是某个...

为什么单片机的P0口外部要有上拉电阻
其实,这个问题也只限于传统的51单片机,如8031,AT89C51。因为P0口,是为了扩展外部存储器时,用作数据线的,因此内部作了准双向口,即是开漏输出的,就不能有上拉电阻。但是,当P0口作为I\/O口使用时,就必须在外部加上拉电阻,这样才能有高电平输出。而其余的P1,P·2,P3在内部已经加了上拉电阻...

为什么51单片机P0口有时候要加上拉电阻才能用,有些芯片直接可以接P0口...
因为最初的51单片机P0口设计成开漏极的结构,这样可以通过加个上拉电阻就能兼容不同的电平标准。现在这种方式貌似也不太实用,就把这个结构去掉了,都改成跟其他的IO一样的结构了。就不用加上拉电阻了,比较典型的就是AT89C51需要上拉 STC89C51不需要 ...

相似回答