电子说
3.3 三极管在数字电路中的应用
三极管在数字电路和模拟电路中都有大量的应用,在Kingst51开发板上也用了多个三极管。在板子上的LED小灯部分,就有这个三极管的应用了,图3-5的LED电路中的 Q16就是一个PNP型的三极管。

图3-5 LED电路
3.3.1 三极管的初步认识
三极管是一种常用的控制和驱动器件,常用的三极管根据材料分有硅管和锗管两种,原理相同,压降略有不同,硅管用的较普遍,而锗管应用较少,本书采用硅管的参数来进行讲解。三极管有2种类型,分别是PNP型和NPN型,如图3-6所示。

图3-6 三极管示意图
三极管一共有3个极,从图3-6来看,横向左侧的引脚叫做基极(base),中间有一个箭头,一头连接基极,另外一头连接的是发射极e(emitter),剩下的一个引脚就是集电极c(collector)了。这是必须要记住的内容,死记硬背即可。
3.3.2 三极管的原理
三极管有截止、放大、饱和三种工作状态。放大状态主要应用于模拟电路中,且用法和计算方法也比较复杂暂时用不到。而数字电路主要使用的是三极管的开关特性,只用到了截止与饱和两种状态,所以重点讲这两种用法。三极管的类型和用法作者给大家总结了一句口诀:箭头朝内PNP,导通电压顺箭头过,电压导通,电流控制。
解析一下这个口诀。如图3-6所示,三极管有2种类型,箭头朝内就是PNP,那箭头朝外的自然就是NPN了,在实际应用中,要根据实际电路的需求来选择到底用哪种类型。
三极管的用法特点,关键点在于b极(基极)和e级(发射极)之间的电压情况,对于PNP而言,e极电压只要高于b级0.7V以上,这个三极管e级和c级之间就可以顺利导通。也就是说,控制端在b和e之间,被控制端是e和c之间。同理,NPN型三极管的导通电压是b极比e极高0.7V,总之是箭头的始端比末端高0.7V就可以让三极管的e极和c极导通。这就是关于“导通电压顺箭头过,电压导通”的解释。

图3-7 三极管的用法
以图3-7为例,三极管基极通过一个10kΩ的电阻接到了单片机的一个I/O口上,假定是P1.0,发射极接到5V的电源上,集电极接了一个LED小灯,并且串联了一个1K的限流电阻最终接到了电源负极GND上。
如果P1.0由程序给一个高电平1,那么基极b和发射极e都是5V,也就是说e到b不会产生一个0.7V的压降,这个时候,发射极和集电极也就不会导通,那么竖着看这个电路在三极管处是断开的,没有电流通过,LED2小灯也就不会亮。如果程序给P1.0一个低电平0,这时e极还是5V,于是e和b之间产生了压差,三极管e和b之间也就导通了,三极管e和b之间大概有0.7V的压降,那还有(5-0.7)V的电压会在电阻R47上。这个时候,e和c之间也会导通了,那么LED小灯本身有2V的压降,三极管本身e和c之间大概有0.2V的压降,忽略不计。在R41上就会有大概3V的压降,可以计算出来,这条支路的电流大概是3mA,可以成功点亮LED。
电流控制是什么意思呢?前边讲过,三极管有截止、放大以及饱和三个状态。截止,就是e和b之间不导通。而要让这个三极管处于饱和状态,就是所谓的开关特性,必须要满足一个条件。三极管都有一个放大倍数β,要想处于饱和状态,b极电流就必须大于e和c之间电流值除以β。这个β,对于常用的三极管大概可以认为是100。那么图3-7中的R47的阻值必须要来计算一下了。
刚才算过了,e和c之间的电流是3mA,那么b极电流最小就是3mA除以100等于30uA,大概有4.3V电压会落在基极电阻上,基极电阻最大值就是4.3V/30uA = 143K。电阻值只要比这个值小就可以,当然也不能太小,太小会导致单片机的I/O口电流过大烧坏三极管或者单片机,STC89C52的I/O口输入电流最大理论值是25mA,推荐不要超过6mA,用电压和电流算一下,就可以算出来最小电阻值,图3-7取的是经验值。
3.3.3 三极管的应用
三极管在数字电路里的开关特性,最常见的应用有2个:一个是控制应用,一个是驱动应用。所谓的控制就是如图3-7里边介绍的,可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭。还有一个控制就是进行不同电压之间的转换控制,比如Kingst51单片机是5V系统,现在要跟一个12V的系统对接,如果I/O直接接12V电压就会烧坏单片机,所以加一个三极管,三极管的工作电压高于单片机的I/O口电压,用5V的I/O口来控制12V的电路,如图3-8所示。

图3-8 三极管实现电压转换
图3-8中,当I/O口输出高电平5V时,三极管导通,OUT输出低电平0V,当I/O口输出低电平时,三极管截止,OUT则由于上拉电阻R2的作用而输出12V的高电平,这样就实现了低电压控制高电压的工作原理。
所谓的驱动,主要是指电流输出能力。如图3-9中两个电路之间的对比。

图3-9 LED小灯控制方式对比
图3-9中上边的的LED灯,和第二课讲过的LED灯是一样的,当I/O口是高电平时,小灯熄灭,当I/O口是低电平时,小灯点亮。那么下边的电路呢,按照这种推理,I/O口是高电平的时候,应该有电流流过并且点亮小灯,但实际上却并非这么简单。
单片机主要是个控制器件,具备四两拨千斤的特点。就如同杠杆必须有一个支点一样,想要撑起整个地球必须有力量承受的支点。单片机的I/O口可以输出一个高电平,但是它的输出电流却很有限,普通I/O口输出高电平的时候,大概只有几十到几百uA的电流,达不到1mA,也就点不亮这个LED小灯或者是亮度很低,这个时候如果想用高电平点亮LED,就可以用上三极管来处理了,板上的这种三极管型号,可以通过500mA的电流,有的三极管通过的电流还更大一些,如图3-10所示。

图3-10 三极管驱动LED小灯
图3-10中,当I/O口是高电平,三极管导通,因为三极管的电流放大作用,c极电流就可以达到mA以上了,就可以成功点亮LED小灯。
3.4 74HC138三八译码器的应用
在设计单片机电路的时候,单片机的I/O口数量是有限的,有时满足不了产品需求,比如STC89C52一共有32个I/O口,但是为了控制更多的器件,就可以使用一些外围的数字芯片,这类数字芯片由简单的输入逻辑来控制输出逻辑,比如74HC138这个三八译码器,图3-11是74HC138在Kingst51开发板上的一个应用。

图3-11 74HC138应用原理图
从名字来分析,三八译码器就是把3种输入状态翻译成8种输出状态。从图3-11能看出,74HC138的1~6一共是6个输入引脚,但是其中4、5、6这三个引脚是使能引脚。这三个引脚如果不符合芯片规定的输入要求,不管输入的1、2、3引脚是什么电平状态,7到15引脚总是输出高电平。所以根据器件使用手册说明,要想让74HC138正常工作,ENLED接的4脚和5脚必须输入低电平,ADDR3接的6脚必须输入高电平,这两个位置都是使能控制端口。不知道是否记得前边点亮LED程序有这么两条控制74HC138使能的语句:
ENLED = 0;ADDR3 = 1;
这类逻辑芯片,大多都是有使能引脚的,使能符合要求的前提下,就可以研究控制逻辑了。对于数字器件的引脚,如果一个引脚输入的时候,有0和1两种状态;对于两个引脚输入的时候,就会有00、01、10、11这四种状态了,那么对于3个输入的时候,就会出现8种状态了,大家可以看下边的这个真值表——图3-12,其中输入是A2、A1、A0的顺序,输出是从Y7、Y6……Y0的顺序。

图3-12 74HC138真值表
从图3-12可以看出,任一输入状态下,只有一个输出引脚是低电平,其他的引脚都是高电平。在前面的电路中已经看到,8个LED小灯的总开关三极管Q16基极的控制端是LEDS6,也就是Y6输出一个低电平的时候,可以开通三极管Q16,从右侧的希望LEDS5输出低电平这样的结果,可以推导出左侧输入端A2、A1、A0的输入状态应该是110,如图3-13。

图3-13 LED小灯整体电路图
那么再整体捋一遍点亮LED小灯的过程,首先看74HC138,要让LEDS6为低电平才能导通三极管Q16,所以
ENLED = 0;ADDR3 = 1; 保证74HC138使能。
ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; 保证了三极管Q16这个开关开通,5V电源加到LED上。
通过P0口控制,让P0.0引脚等于0,就是DB0等于0,那么这样在这一排共8个LED小灯当中,只有最右侧的小灯和5V之间有压差,有压差就会有电流通过,LED2就会发光了。
从原理图左上角P0口总线可以看出,74HC138的ADDR0 、ADDR1、ADDR2、 ADDR3和ENLED接在P1.0到P1.3引脚上,如图3-14所示。

图3-14 单片机引脚图
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !