兵马俑的笔记 https://bbs.21ic.com/?43124 [收藏] [复制] [RSS]

日志

转载:关于I/O口上拉电阻阻值问题

已有 742 次阅读2006-8-24 10:58 |个人分类:技术交流

如果是驱动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。


根据以上分析,上拉电阻的阻值的选取是有很多讲究的,不能乱用,具体情况比较复杂,如果你是个莱鸟,那么你尽量用小一些的,这样牺牲一些电源功耗。不过最好请教一下有关人员。


 


我也不是很懂.不过,我是这么想的,请老丐多指教!


假如P0口驱动的是一排(8个)发光二极管吧.


那么当二极管发光时,它两端的电压为0.7V(一般二极导通后的电压为0.7V),工作电流10mA


而我们单片机的工作电压一般为5V,那么它接的上拉电阻为:R=(5V-0.7V)/10mA=430欧.


所以我认为应该为400欧左右.不知道对不对呀.


 


照楼上朋友的思路,我想应该是(因发光二极管的电压一般是1.8V左右,)200欧姆左右


 


发光二极管正常工作时二端电压是在1。8V左右。


强调:P口仅仅适合接共阳LED,不适合接共阴,如果一定要共阴,必须先用驱动电路驱动。


能用共阳就能用共阳


其实道理一样的


当你共阳的时候电流其实也是从正电源流入P口的,


共阳接法


假设限流电阻用1K的话,那流入P口电流约是(VCC-2)/1K=3MA


共阴接法


上拉电阻也选用1K,P口高阻状态时LED是亮的,这时候流过P口电流为零


流过LED电流和上面共阳接法一样,也是3MA


当LED灭的时候,电流全部从P口流入,即3MA电流全部被P口吸收,LED不亮


既然共阳接法P口能吸入3MA电流,为什么共阴接法就不行呢!!


其实我看过很多电路图就是这样接的。。。



楼主其实没说清楚


比如驱动LED的时候,应该分二种情况


比如用共阳接法和共阴接法,


共阳的时候LED正端接正电源,负端通过一个限流电阻接P口,这时不用接上拉电阻,只要这个限流电阻取合适就可以了


发光管亮的时候电流就是从电源正——LED——限流电阻——P口,P口为低电位


发光管灭的时候没有电流流过,P口为高电位或高阻状态


共阴接法,LED负端接地,正端直接P口,这时候要接上拉电阻,这个上拉电阻是提供LED发光用的,


发光管亮的时候电流是从电源正——上拉电阻——LED——地。这时上拉电阻也是限流用的。P口为高电位或高阻状态


发光管暗的时候电流是从电源正——上拉电阻——P口,这时LED无电流流过,P口为低电位,限流电阻上流过电流全部从P口流入。


其他情况就不细分析了



要从单片机的输出驱动能力开始讲起。单片机输出驱动分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是*端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在330K左右,也就是说如果*高电平驱动,本质上就是*330K的上拉电阻来提供电流的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED正常发光,必须要外接一个1K左右的上拉电阻,如果是一个led还好,要是10个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的,问题是接了上拉电阻以后,每当端口变为低电平0的时候,那么就有10个、20个上拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳,因此很少有采用高电平直接驱动led的,高电平驱动led实际上就是共阴。低电平驱动就不同了,端口为低电平0时,端口内部的开关管导通,可以驱动高达30多毫安的驱动电流,可以直接驱动led等负载,当端口为低电平0时,尽管内部的上拉电阻也是消耗电流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极小,基本上不会影响电源效率,不会造成无用功的大量消耗,因此51单片机是不能用高电平直接驱动led的,只能用地电平直接驱动led,即只能用共阳数码管,而不能直接用共阴数码管。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)