+ 2 三极管的使用用法 三极管的用法特点,关键点在于 b 极(基极)和 e 级(发射极)之间的电压情况,对于PNP 而言,e 极电压只要高于 b 级 0.7V 以上,这个三极管 e 级和 c 级之间就可以顺利导通。也就是说,控制端在 b 和 e 之间,被控制端是 e 和 c 之间。同理,NPN 型三极管的导通电压是 b 极比 e 极高 0.7V,总之是箭头的始端比末端高 0.7V 就可以导通三极管的 e 极和 c 极。这就是关于“导通电压顺箭头过,电压导通”的解释。 下面以一个常见的控制LED的电路为例来说明截止与饱和的工作状态。如下图所示,三极管基极通过一个 10K 的电阻接到了单片机的一个 IO口上,假定是 P1,发射极直接接到 5V 的电源上,集电极接了一个 LED ,并且串联了一个 1K 的限流电阻最终接到了电源负极 GND 上。如果 P1由我们的程序给一个高电平 1,那么基极 b 和发射极 e 都是 5V,也就是说 e到 b 不会产生一个 0.7V 的压降,这个时候,发射极和集电极也就不会导通,那么竖着看这个电路在三极管处是断开的,没有电流通过,LED也就不会亮。如果程序给 P1一个低电平 0,这时 e 极还是 5V,于是 e 和 b 之间产生了压差,三极管 e 和 b 之间也就导通了,三极管 e 和 b 之间大概有 0.7V 的压降,那还有(5-0.7)V 的电压会在电阻 R47 上。 【注】这里的P1口输出高电平是5V,不同的单片机的IO口高电平输出电压是不同的,有的单片机的IO输出是1.2V,这就需要三极管放大,以此驱动LED等工作。 这个时候,e 和 c 之间也会导通了,那么 LED 本身有 2V 的压降,三极管本身 e 和 c 之间大概有 0.2V的压降,我们忽略不计。那么在 R41 上就会有大概 3V 的压降,可以计算出来,这条支路的电流大概是 3mA,可以成功点亮 LED。 前边讲过,三极管有截止,放大,饱和三个状态,截止就不用说了,只要 e 和 b 之间不导通即可。我们要让这个三极管处于饱和状态,就是我们所谓的开关特性,必须要满足一个条件。三极管都有一个放大倍数β,要想处于饱和状态,b 极电流就必须大于 e 和 c 之间电流值除以β。这个β,对于常用的三极管大概可以认为是 100。 那么上边的 R47 的阻值我们必须要来计算一下了。刚才我们算过e 和 c 之间的电流是 3mA,那么 b 极电流最小就是 3mA 除以 100 等于30uA,大概有 4.3V 电压会落在基极电阻上,那么基极电阻最大值就是 4.3V/30uA = 143K。电阻值只要比这个值小就可以,当然也不能太小,太小会导致单片机的 IO 口电流过大烧坏三极管或者单片机,IO 口输入电流最大理论值是 25mA,我推荐不要超过 6mA,我们用电压和电流算一下,就可以算出来最小电阻值。 +3 总结:箭头朝内 PNP,导通电压顺箭头过,电压导通,电流控制。
Tips:C51中对准双向口的解释 来源:百度百科 准双向口:有固定的内部上拉电阻。 准双向口是指P1、2、3有固定的内部上拉电阻,当用做输入时被拉高,当外部拉低时(低电平)会拉电流(source current, 这里拉电流是电流从单片机往外走),而P0则是真双向口,因为作为输入时它是悬浮的。 中文名准双向口特 点内部有上拉,故高电平为内部给出不是真正的外部信号 释义 C51的说明书上说:”Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called quasi-bidirectional ports. When configured as inputs, they pull high and source current (IIL) when externally pulled low. Port 0, on the other hand, is considered truly bidirectional, because it floats when configured as an input. " “准”就是“基本上的意思”,也就是“准双向口”不是真正的双向口。 其实重点在P0口. P0口是双向指的是它被用作地址/数据端口时,只有在这个时候,P0口才处于两个开关管推挽状态,当两个开关管都关闭时,才会出现高阻状态.当P0口用于一般I/O口时,内部接Vcc的那个开关管是与引脚(端口)脱离联系的,这个时候,只有拉地的那个开关管起作用,P0口作为输出,是必须外接上拉电阻的,不然就无法输出高电平; 如果P0口作为输入,则必须先对端口写1,使拉地的开关管断开,这个时候,如果不接上拉电阻,则是高阻状态,就是一个双向口,如果接上拉电阻,则本身输出高电平,对输入信号的逻辑无影响(注意是对逻辑无影响,对实际参数有无影响我不确定,但是我认为是有的). 双向与准双向,根本原则是双向包含了高阻这个状态,而不在于是否需要先写1或者不写,P1~P3口因为有内部上拉电阻,因此无论如何不是双向;P0口内部无上拉电阻,在处于数据/地址功能时,自动完成3态的转换,是双向,处于一般I/O口时,如果不接外部上拉,而且先向端口写了1,那么就处于高阻状态,此时,它也是一个人为的双向口,这与它处于地址/数据功能时的自动双向有区别,以及与P1~P3处于输入时输出锁存器为1是有区别的跟I2C总线上那种漏极开路或者集电极开路结构差不多. 通过上拉电阻(或者下拉电阻)来提供一种电平的驱动. 当作为输入使用时,就将开关断开,这样就只剩下上拉(或者下拉)电阻,因而阻抗比较高, 可以由其它设备驱动该IO口。准双向口在做为输入使用时,实际上还是一种输出状态. 只是该输出状态的内阻比较大而已. 而真正的双向IO口,有方向控制寄存器,作为输入 使用时输出部分被断开. 双向口与准双向口的区别为双向口有高阻态,输入为真正的外部信号,准双向口内部有上拉,故高电平为内部给出不是真正的外部信号!软件做处理时都要先向口写“1”! P0口为真正的双向口,其余为准双向口!P0内部无上拉(开漏输出),外加NMOS电路需接上拉!输入为高阻悬浮态!P0的驱动能力是单个其余口的两倍!