如果是驱动 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.
要从单片机的输出驱动能力开始讲起. 单片机输出驱动分为高电平驱 动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时 的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力, 当单片机输出高电平时,其驱动能力实际上是*端口的上拉电阻来驱 动的,实际测试表明,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,即 只能用共阳数码管,而不能直接用共阴数码管.