为什么单片机IO口和三极管之间要加电阻??

限流?为什么?

单片机的电流承受能力是有限的,51单片机单个IO口灌电流也就一二十毫安,并且基本型51全机不能超过50ma吧好像。所以连接IO口的三极管基极电流要被限制,同时也防止烧坏三极管。下图是51单片机内部P0口的管脚原理结构,如果你用它来驱动一个PNP三极管 基极不加电阻的话,就相当于直接拿电源正极接到单片机IO口上,图上单片机内部连接IO口管子就会被烧坏

追问

如果io口高电平时由上拉电阻提供,那驱动电流应该很小啊,而且io口电压也不应该是5V啊,因为电压都分到10K的电阻了,那为什么和实际不一样呢?

追答

这样的话,首先你不能用Io口带可编程配置控制的单片机(比如下图中的这种IO输出结构那就更难理解了),再就是如果你管脚除了上拉电阻什么也不接 直接量的话 电阻档上你电表的内阻是远远比10K大的多,电压都被拉电表上了,你不妨把IO置一然后上拉一个10K后再下拉一个10K量量试试(但首先你得是传统51 IO口输出模式单片机,这种模式的输出 不外加上拉电阻时P1P2P3内部拉电流是200多uA)还有就是你担心上拉10K分压后IO口读入就不在是5V了,这担心是多余的,因为我上面发的两张图的下部你都能看到IO读是的输入数据的通道是高阻的,比你的10K也要大得多

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-25
51 单片机:

如果使用《高电平》来驱动三极管,就不用在《之间》加电阻。
反而是,应该给IO口,加上上拉电阻
因为,51 单片机的IO口,输出高电平的能力很差。
这是因为引脚内部结构的原因。

如果使用《低电平》来驱动三极管,就应该在《之间》加限流电阻。
因为,51 单片机的IO口,输出低电平的能力较强。
不加限流电阻,电流将难以控制。本回答被网友采纳
第2个回答  2015-01-20
IO口输出高或者输出低时,我们可以分别把它当作电源的+端和-端。当IO口驱动三极管时,如果不加电阻,则通过发射结的电流就等同于把一个二极管直接接于电源的两端而没有负载,这样做的结果几乎等效于将电源短路。所以我们要在中间加一个电阻来限流,并且这个电阻的阻值的选取可能让二极管处于放大状态或者开关状态,所以还要调整其阻值以便工作于我们相要的状态。
第3个回答  2013-03-28
答案就是限流,因为三极管基极可承受的电流是很小的。三极管做开关作用时基极与发射极之间的电压约为0.6V,单片机IO口输出一般近似VCC,直接加到三极管基极的话电流就会比较大,三极管和IO口都可能会损坏,而加了电阻后电阻就会分得Vcc-0.6V的电压,除以电阻值就是流经IO口和三极管基极的电流,电阻值的大小决定了该电流的大小,因此是限流作用。追问

一般三极管的电流多少合适呢?三极管作开关用时,关时IO相当悬空?开时呢?集射导通,IO也是悬空吗?

追答

基极电流一般都是微安级别的。不过我不明白你后面“三极管作开关用时,关时IO相当悬空?开时呢?集射导通,IO也是悬空吗?”想表达什么意思。IO口除非是你设置为了高阻态或开漏输出1时呈悬空状态。

第4个回答  2013-03-28
单片机接三极管驱动负载一般是为了增加IO口的驱动能力,比如51单片机,它IO口高电平的驱动也才几MA,如果负载需10MA以上才能驱动,需通过三极管才行。
单片机IO口一般是和三极管的B极相接电阻,是为了限流,如果无此电阻,拉电流或灌电流过大,往往超过30MA,易击穿IO口。