由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供。绝大多数情况下,P0口是必须加上拉电阻的。
01
一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。
02
作为一般的I/O口使用时,由于内部没有上拉电阻,故要接上上拉电阻。
03
当P0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效。
04
当P0口用来驱动NPN管子的时候,就需要上拉电阻,因为此时只有当P0为1的时候,才能够使后级端导通。简单一点说就是它要驱动LCD显示屏显示就必须要有电源驱动,否则亮不了,而恰好P0口没有电源,所以就要外接电源,接上电阻是起到限流的作用;如果接P1、P2、P3端口就不用外接电源和电阻了。
05
51单片机的P0口用作数据和地址总线时不必加上拉电阻。
有些IC的驱动能力并不强,如果P0口作为输入而加了不必要的上拉电阻,有可能驱动IC无法将其拉回到低电平,从而使输入失败。
如果是驱动LED,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了。但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用,通常就用1k的。
对于驱动光耦合器,如果是高电平有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电平有效,即耦合器输入端接端口和VCC之间,那么除了要串接一个1—4.7k之间的电阻以外,上拉电阻的阻值就可以用的特别大,用100k—500K之间的都行,当然用10K的也可以,但是考虑到省电问题,没有必要用那么小的。
对于驱动晶体管,又分为PNP和NPN管两种情况:
对于NPN管,毫无疑问NPN管是高电平有效的,因此上拉电阻的阻值用2K—20K之间的,具体的大小还要看晶体管的集电极接的是什么负载。对于LED类负载,由于发管电流很小,因此上拉电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此上拉电阻的阻值最好不要大于4.7K,有时候甚至用2K的。
对于PNP管,毫无疑问PNP管是低电平有效的,因此上拉电阻的阻值用100K以上的就行了,且管子的基极必须串接一个1—10K的电阻,阻值的大小要看管子集电极的负载是什么。对于LED类负载,由于发光电流很小,因此基极串接的电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此基极电阻的阻值最好不要大于4.7K。
对于驱动TTL集成电路,上拉电阻的阻值要用1—10K之间的,有时候电阻太大的话是拉不起来的,因此用的阻值较小。但是对于CMOS集成电路,上拉电阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,实际上对于CMOS电路,上拉电阻的阻值用1M也是可以的,但是要注意上拉电阻的阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下上拉电阻不宜过大,一般要小于100K,有时候甚至小于10K。
根据以上分析,上拉电阻的阻值的选取是有很多讲究的,不能乱用。
-
单片机
+关注
关注
6032文章
44513浏览量
632801 -
上拉电阻
+关注
关注
5文章
359浏览量
30565
原文标题:单片机 | P0口什么时候使用上拉电阻?
文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论