详细描述了51单片机引脚驱动电路及注意事项。,竞然不到1mA。结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力这个结论是依照手册中给出的数据做出来的。51单片机的这些特性,是源于引脚的内韶结构,引脚内部结构图这里就不画了,很多书中都有。在芯片的内部,引脚和地之间,有个三极管,所以引脚具有下拉的能力,输出低电平的时候,允许灌入10mA的电流;而引脚和正电源之间,有个几百K的“内部上拉电阻”,所以,引脚在高电平的时候,能够输出的拉电流很小。特别是PO口,其内部根本就没有拉电阻,所以P0口根本就没有高电平输岀电流的能力。再看看上面的电路图:图屮的D1,是接在正电源和引脚之间的,这就属于灌电流负载,D1在单片机输出低电平的时候发光。这个发光的电流,可以用电阻控制在10mA之内。图中的D2,是接在引脚和地之闫的,这属于拉电流负载,D2应该在单片机输出高电平的时候发光。但是单片机此时几乎没有输出能力,必须采用外接“上拉电阻”的方法来提供D2所需的电流。哦,明白了,外接电路如果是“拉电流负载”,要求单片机输出高电平时发挥作用,那就必须用“上拉电阻”来协助,产生负载所需的电流。下面做而论道就专门说说上拉电阻存在的问题。从上面的图中可以看到,D2发光,是由上拉电阻R2提供的电流,D2导通发光的电压约为2V,那么发光的电流就是:(5一2)/1K,约为3mA前当单片机输出低电平(0v),D2不发光的时候,R2这个上拉电阳着了吗?没有!它两端的电压,比LED发光的时侯还高,现在是5∨了,其中的电流,是5mA!注意到了吗?LED不发光的时候,上拉电阻给出了更大的电流!并且,这个大于正常发光的电流,全部灌入单片机的引脚了!如果在一个8位的接口,安装了8个1K的上拉电阻,当单片机都输出低电平的时侯,就有40mA的电流灌入这个8位的接口!如果四个8位接凵,都加上1K的上拉电阻,最大有可能出现32×5=160mA的电流,都流入到单片机中!这个数值已经超过了单片机于册上给出的上限。如果此时单片机工作不稳定,就是理所当然的了而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快.等后果。呵呵,特別是现在,都在提倡节能减排,低碳那么,把上拉电阻加大些,可以吗?回答是:不行的,因为需要它为拉电流负载提供电流。对于LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。对于D1,是灌电流负载,单片机输出低电平的时候,R1、D1通路上:会有灌电流;输出高电平的时侯,那就什么电流都没有,此时就不产生额外的耗电。综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,这种电路不合理。有些网友对上拉电阻情有独钟,有用没用的,都想在引脚上安装个上拉电阻,甚至还能说出些理由:稳定性啦、速度啦..。其实,“上拉电阳”和“拉电流负载”电路,是会对单片札系统造成不良后果的。做而论道看过很多关于单片机引脚以及上拉电阻方面的书籍、参考资料,基本上它们对于使用上拉电阻的弊病都没有进行仔细的讨论。在此,做而论道郑重向大家提出建议:设计单片机的负载电路,应该采用←灌电流负载”的电路形式,以避免无谓的电流消耗。上拉电阻,仅仅是在P0口才考虑加不加的问题:当用Po口做为输入口的时候,需要加上、当用P0凵输岀高电平驱动MOs型负载的吋候,也需要加上,其它的时候,P0口也不用加入上拉电阻。在其它接口(P1、P2和P3),都不应该加上拉电阻,特别是输出低电平有效的时候,外接器件就有上拉的作用。单片机IO引脚驱动能力的提高早期的51单片机,驱动能力很低。P1、P2和P3口只能驱动3个 LSTTL输入端,P0口可驱动8个。如果想要驱动更多的器件,就要用到“总线驱动芯片”。经常用的就是74LS244(单向)和74LS245(双向)。现在常用的AT89C51单片机引脚的输出能力已绎大多了,从PDF手册文件中可查出:单片机输出低电平的时候,单个的引脚,向引脚灌入的最大电流为10mA;个8位的接口(P1、P2以及P3),灌入的总电流最大为15mA,P0允许灌入的最大总电流为26mA:全部的四个接口所允许的灌电流之和,最大为71mA但是当引脚输岀高电平的时候,它们的“拉电流”能力可就差多了,竞然还不到1mAp单片机的输岀特性和很多常用的 LSTTL器件的输岀特性是相同的,都有灌电沇较大的特点实际上,现在常用的单片机|O引脚驱动能力,就和早期的单片机增加了“总线驱动芯片”的效果基木是相同的。现在的单片机输出低电平的时候,就已经可以直接驱动LED发光了∵述的数值,也并非是不可逾越的破坏性极限数值。当略超过这些数值范围的时候,单片机|O引脚的电压,就会发生变化,造成“高电平不高”、“低电平不低”’,这就会缩小外接器件的噪声容限。如果环境再稍有干扰,外接器件就无法正确判定单片机送来的高、低电平,将会胡乱动作。为了合理利用O引脚的低电平能力强的特点,在外接耗电较大的器件(如LED数码显示器、继电器等)的时候,应该优先选用低电平输岀来驱动外部器件。使用O口输岀高电平驱动负载,就是一个错误的选择。下图是一个直接利用单片机O引脚驱动LED的电路。图中P0口使用低电平邬动方式,只要加约1K的限流电阻即可,甚至不需要常见的P0口上拉电阻。发光的段,每个引脚灌电流约为3mA,不发光的段,电流为0。即使各个段全都发光,电流也不超过P0所容许的电流,这是一个合理的驱动方式。共阳数码显示器,低电平发光POOADOPO1/ADP0.2/AD2发光的段电流约为3mAP03/AD3PO/ADPO不发光的段电流为0PO3/AD6PO. 7AD7UsARP1P2210P2513P2A14这是不合理的驱动方式P2715P3忑RXD■■■■■P31JTX0■■■■共阴数码显示器,高电平发光P33打T1发光的段电流约为3mAP3后代P3.7IRD不发光的段电流约为5mA,流入单片机图屮P3∏使用了高电平驱动方式,这就必须加上上拉电阻来帮助IO接∏输出电流。电阻也采用了1K,发光的段,LED上的电流约为3mA,不发光的段,电流则为5mA,灌入了单片机的O引脚这科电路,给单片机|O引脚带来了很大的电流,一个8位的接口最大有可能被灌入40mA的电流,远远超过了容许的数值。上拉电阻能够增加大量不需要的电流,不仪会造成单片机工作不稳定,还会导致电源效率的严重下降,发热,纹波增大。这说明,高电平输出、加上拉电阻,就是一个不合理的驱动方式。如果只是一个引脚的电流取值稍人一些,还算可以;但是综合考虑一个8位的接口,则每个引胭的电流就不要大于2~3mA这样来看,上拉电阻最小应该在18K~25K之间,不宜再小,以免总电流超过接口所容许的电流在网上看到一篇“51单片机P0口上拉电阻的深入研究”的文章http://hi.baiducom/20070210030205/blog/item/95e5ab83a62d089df703a649htmD)对上拉电阻的最小选择,写的很低,甚至说可以选200欧姆!呵呵,这会烧毁单片机引脚的。驱动更大电流的负载,可以使用三极管来扩充电流,也可使用集成芯片∪LN2003(或ULN2008),另外也可使用专用的驱动器件L298、各种型号的GBT等等。集成芯片的引胭比较密集,维修检査较困难,更换的时候更是不便。做而论道比较喜欢使用三极管,它的耐压和电流承受能力都远远超过集成芯片,在PCB上布线也很灵活方便做而论道常用的三极管如下:8550(PNP)和8050(NPN):它们是一纠可以配对使用的三极管,特点是集电极允许的电流很人,lcm竟然能达到1500mA!而且还不需要使用散热片。它们的集电极反向击穿电压 BVceo为25V,Pcm为0.5W。2N5401(PNP)和2N5551(NPN):它们也是一组可以配对使用的三极管,它们门的特点是耐压比较高,集电极反向击穿电压 BVceo可达160V!它们的最大集电极电流lcm为0.6A,Pcm为0.6W。不同厂家的产品,参数会稍有不同。下面以常见的继电器为负载继续说明驱动方法。继电器线圈的驱动电流往往要有40mA以上,单片机的引脚肯定是不能承受了,必须用三极管来扩充输出能力+5∨的大电流负载,用8550(PNP型)驱动电路可见下图Q18550R12.2kRL1D1G5Q-1-DC51N4001P3.7输出低电平的时候,在R1形成|约有2mA,经过8550的放大,c足够驱动继电器了。用这个电路,不仅可以驱动继电器,也驱动蜂鸣器、扬声器、多个LED等等,甚至驱动小型的自流电机,也是可以的。一般来说,电机的工作电流要大一些,只要不超过8550可以输出的最大电流是1500mA即可。驱动电机时,图中电阻R1的取值应该再小一些此种电路经过多位网友的验证,链接之一如http:/zhidao.baiducom/question/126746121.html?fr=gri&cid=203&index=3通常可使用PNP型的三极管来扩允输出电流。电路如图所示。图中使用了8550三极管,它的容许电流为1000mA,性能极为优秀。+5R1T Q18550P1.033K用电器件如图此电路最人电流可达500mA注意:这样输出的信号与单片机的信号是反相的,如果需要信号同相,可以再加一级相同的电路在后面,当然最好在程序里改一下最简单。必须与单片机用同一个电源。VDDR23KEXTR12.Q1.2N54013k.TE×TTEXT>QUT二〓二二〓二二二二二二〓二二二〓〓〓二〓二二〓二〓二〓〓二〓二川这个电路,可以各种大电流负载,但是做而论道为什么单单要川继电器,来说明问题呢?因为在网上,发现很多不适当的继电器驱动电路,比如http://hi.baiducom/xu331019485/blog/item/4a7e548dd9e5871ab21bba7d.htmhttp://hi.baiducom/wangnizone/blog/item/1cf31594733bd717d31b70b4.htmIttp: //hi. baidu. com/brave %05Fxixi/blog/item/b18a133d81f6ec04baa16718 htmlhttp://hi.baidu.com/x378719409/blog/item/f2bec611de89157bca80c488.htm川单片机控制继电器首先看看继电器的驱动继电器保护二管55n三极管BYjqWX这是典型的继电器驱动电路图这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图.(我们一位老师说过,中国的教科书,人都是你抄我,我抄你,甚至连图也照搬,所谓的教授们只为了增加他们虚伪的学术成果)为什么要明白这个图的原理?单片机是一个弱电器件,般情況下它们大都工作在5V甚至更低驱动电流在mA级以下而要把它用丁些大功率场合,比如控制电动机,显然是不行的所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动"继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接山这个很重要,因为,直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西?怎么样理解这个电路图?要理解这个电路,其实也比较容易那么请您按照我的思路来,应该没有问题:首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件怎么样理解三极管呢?简单的来说三极管有两个作用一个是放大作用,一个是开关作用(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理)在这里,我们只了解它跟本电路有关的开关作用首先把三极管想成一个水龙头