图中P3口利用了高电平驱动办法,这就必须加上上拉电阻来帮助IO接口输出电流。电阻也采取了1K,发光的段,LED上的电流约为3mA,不发光的段,电流则为5mA,注意灌输了单片机的IO引脚。这种电路,给单片机IO引脚带来了很大的电流,一个8位的接口最大有可能被注意灌输40mA的电流,远远超过了容许的数值。上拉电阻能够增加大量不须要的电流,不仅会造成单片机事情不稳定,还会导致电源效率的严重低落,发热,纹波增大。这解释,高电平输出、加上拉电阻,便是一个不合理的驱动办法。如果只是一个引脚的电流取值稍大一些,还算可以;但是综合考虑一个8位的接口,则每个引脚的电流就不要大于2~3mA。这样来看,上拉电阻最小该当在1.8K~2.5K之间,不宜再小,以免总电流超过接口所容许的电流。在网上看到一篇“51单片机P0口上拉电阻的深入研究”的文章,对上拉电阻的最小选择,写的很低,乃至说可以选200欧姆!呵呵,这会烧毁单片机引脚的。==================================驱动更大电流的负载,可以利用三极管来扩充电流,也可利用集成芯片ULN2003(或ULN2008),其余也可利用专用的驱动器件L298、各种型号的IGBT等等。集成芯片的引脚比较密集,维修检讨较困难,改换的时候更是不便。做而论道比较喜好利用三极管,它的耐压和电流承受能力都远远超过集成芯片,在PCB上布线也很灵巧方便。8550(PNP)和8050(NPN):它们是一组可以配对利用的三极管,特点是集电极许可的电流很大,Icm竟然能达到1500mA!而且还不须要利用散热片。它们的集电极反向击穿电压BVceo为25V,Pcm为0.5W。2N5401(PNP)和2N5551(NPN):它们也是一组可以配对利用的三极管,它们的特点是耐压比较高,集电极反向击穿电压BVceo可达160V!它们的最大集电极电流Icm为0.6A,Pcm为0.6W。不同厂家的产品,参数会稍有不同。==================================下面以常见的继电器为负载连续解释驱动方法。继电器线圈的驱动电流每每要有40mA以上,单片机的引脚肯定是不能承受了,必须用三极管来扩充输出能力。+5V的大电流负载,用8550(PNP型)驱动电路可见下图。
P3.7输出低电平的时候,在R1中形成Ib约有2mA,经由8550的放大,Ic足够驱动继电器了。用这个电路,不仅可以驱动继电器,也驱动蜂鸣器、扬声器、多个LED等等,乃至驱动小型的直流电机,也是可以的。一样平常来说,电机的事情电流要大一些,只要不超过8550可以输出的最大电流是1500mA即可。驱动电机时,图中电阻R1的取值该当再小一些。用这个电路,可以各种大电流负载,但是做而论道为什么单单要用继电器,来解释问题呢?由于在网上,创造很多不适当的继电器驱动电路,这些电路都是一个特点,即利用了射极输出电路构造。射极输出电路哀求输入的动态范围要大,而且输出的电压范围永久比输入小0.7V。射极输出电路就不能有效的利用+5V的电源,实际上,加到继电器上的电压,不敷+4V,除非是利用4V的继电器,否则这便是不稳定的隐患。做而论道给出的电路是共射极构造,有电压放大能力,以是对输入的哀求较低,输出动态范围大。
对付大于+5V的负载,如+12V,上面的电路就弗成了。如果只是大略的把电源由+5V改为+12V,那么单片机输出的高、低电平,还是只有0~5V的变革幅度,这对8550射极的+12V来说,都是低电平。8550将不能截止。对付大于+5V的负载,只能利用NPN型的8050三极管来驱动,先以单片机输出高电平来驱动。电路如下:

在上述电路中,上拉电阻R2也会带来无谓的电流,其害处前面已经谈论过。更主要的缺陷是:在开机单片机复位后,自然输出的高电平,会使继电器吸合,或者是使电机迁徙改变。(利用ULN2003等芯片扩充输出电流的时候,也存在这个问题。)虽然编程的时候,可以前辈行接口的初始化,令其立时就输出0。但是每次开机,还是会有瞬间的大电流冲击,这每每是不许可的。改进一下,可以再加上个8550,进行倒相,这就可以让单片机用输出低电平来驱动负载。
上图中倒相用的8550,也可以利用“光耦”器件,这样一来,又增加了电气隔离的功能,这便是最完美的单片机输出驱动电路。电路见下图。
图中的4N25经由实际丈量,当LED的电流大于即是4.5mA时,输出真个光电管即可为Q4供应足够的基极电流。以是图中的R3,可以利用810~1K的电阻。上述的各个电路,都因此扩充单片机的输出电流为主题。实在,很多数字IC的输出端,都存在扩充电流输出能力的问题,这里给出的电路,是普遍适用的。这里先容的8050/8550可以输出1500mA的电流,如果哀求更大的输出电流,一种方法改换三极管,其余也可以利用专用大功率驱动器件,如L298,固态继电器,IGBT等等。