历史上的今天
今天是:2025年01月16日(星期四)
2018年01月16日 | 单片机上拉电阻的问题
2018-01-16 来源:eefocus
驱动LED发光管的时候,应该分共阳接法和共阴接法这两种,共阳的时候LED正端接正电源,负端通过一个限流电阻接P口,这时不用接上拉电阻,只要这个限流电阻取合适就可以了发光管亮的时候电流就是从电源正——LED——限流电阻——P口,P口为低电位发光管灭的时候没有电流流过,P口为高电位或高阻状态共阴接法,LED负端接地,正端直接P口,这时候要接上拉电阻,这个上拉电阻是提供LED发光用的,发光管亮的时候电流是从电源正——上拉电阻——LED——地。这时上拉电阻也是限流用的。P口为高电位或高阻状态发光管暗的时候电流是从电源正——上拉电阻——P口,这时LED无电流流过,P口为低电位,限流电阻上流过电流全部从P口流入。要从 单片机 的输出驱动能力开始讲起。
下面是本人做过的LED上拉电阻试验
测试条件:
VCC=4.96V,φ3绿色发光二极管。
二极管正极接VCC,负极通过RL接地。
没有进行更大的电阻测试,因为我的万用表电压档内阻为10M。
RL VLED VRL 电流 亮度
----------------------------
1K 1.93V 3.03V 3mA 很亮
5K 1.82V 3.14V 0.6mA 比较亮
100K 1.66V 3.30V 33uA 微亮
3.3M 1.51V 3.45V 1.0uA 不亮
10M 1.42V 3.45V 0.3uA 不亮
----------------------------
通过以上测试可以看出,发光二极管即使有很小的电流时,在LED的压降也是很明显的。这也符合发光二极管的特性曲线。
所以,如果与发光二极管驱动的下一级内阻要是比较小(小于10M)的话,那么其输出必然是3V左右。
当然如果使用的前级驱动电路有内部上拉(如PCF8574T内部有100uA若上拉,51的P1或P2,P3口等)则另当别论。所以我说如果这样用最好并联一个10K的电阻.
单片机 输出驱动分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是*端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在330K左右,也就是说如果*高电平驱动,本质上就是*330K的上拉电阻来提供电流的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED发光2极管正常发光,必须要外接一个1K左右的上拉电阻,如果是一个led还好,要是10个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的,问题是接了上拉电阻以后,每当端口变为低电平0的时候,那么就有10个、20个上拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳,因此很少有采用高电平直接驱动led的,高电平驱动led实际上就是共阴。低电平驱动就不同了,端口为低电平0时,端口内部的开关管导通,可以驱动高达30多毫安的驱动电流,可以直接驱动led等负载,当端口为低电平0时,尽管内部的上拉电阻也是消耗电流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极小,基本上不会影响电源效率,不会造成无用功的大量消耗,因此51单片机是不能用高电平直接驱动led发光管的,只能用地电平直接驱动led,即只能用共阳数码管,而不能直接用共阴数码管。
上一篇:数字温度传感器DS18B20程序
下一篇:编程的四种基本程序结构
史海拾趣
|
出现: hr -2147221164 {没有注册类别 } HRESULT if (dlgPush.DoModal()) { //得到pCERDA接口 HRESULT hr = CoCr ...… 查看全部问答> |
|
MRC p15,0,R1,c0,c0,0这个指令是来读取ARM CPU的ID号到ARM寄存器R1里面的吗?如果是的话,我现在在EVC环境下嵌入了有下面汇编内容的.s文件: AREA |.text|, CODE &n ...… 查看全部问答> |
|
菜鸟求助:一份正常的BSP我的电脑编译出来的系统无法正常运行? OMAP3530 + WinCE6 R3 由于项目开始时是基于一个较早版本的BSP,现在打算更新到TI的最新BSP. 更新才刚刚开始一点,就被卡住了.先把屏的参数拷过来,屏可以正常显示,发现触摸屏没用,然后就拷过来触摸屏的一些参数,发现还是没用. 然后就开始分析了: ...… 查看全部问答> |
|
有谁了解深圳\"研祥智能科技\"公司吗?那边的待遇怎么样,我是08年的应届毕业生,现在已经应聘上了那家公司,还没签协议.我很想知道,本科生在那边的待遇和发展怎么样呢? 望各位知情的大虾帮帮忙啊 ~不盛感激~… 查看全部问答> |
|
interrupt[PORT_vector]void PORT1(void) { if(P1IFG&BIT0) {Delay(); if(P1IFG&BIT0) {执行体; P1IFG&=~BIT0; } } } 这样能去抖动吗 ,我感觉在中断程序中判断中断 ...… 查看全部问答> |




