浅谈51单片机IO引脚驱动能力

时间:2022-04-01 10:12:52

摘要:该文以AT89C51单片机讨论单片机IO引脚驱动能力,并以常见的继电器为负载说明驱动方法。

关键词:单片机;拉电流;灌电流;三极管;继电器

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)09-2159-02

基于AT89C51芯片的单片机共有40组引脚。其中有32组IO引脚是控制中心起到传递系统信号的作用,因而可以说基于AT89C51芯片的单片机系统以IO引脚作为驱动能力是一个十分关键的问题。

1 基于IO引脚的驱动能力

单片机的IO引脚可以用系统来监控程序的输出电压。然而,系统无法控制单片机系统的输出电流,系统的输出电流于一定程度上完全取决于引脚的外接元件。输出电流的极限大小是多少?这就是常见的单片机IO引脚驱动能力问题。

如图1所示,D1,D2 可以不经其它驱动器件,直接由单片机的引脚控制发光显示。P1.0输出低电平时启动D1发光,输出电流由P1.0端口输入;P1.1端口输出高电平后启动D2发光,然后输出电流由P1.1端口输出。但是,此时单片机系统还不具有良好的电流输出能力,输出电流不能满足启动D2发光的作用。因此,我们必需采取外接“上拉电阻”的方式来满足启动D2发光对电流的需求。

如图1所示,不管是拉电电流的负载还是灌电电流负载都能启动二极管发光。那么拉电电流负载和灌电电流负载在这一步骤中的区别在于那些方面,具体的电路设计中应该如何进行选择? AT89C51芯片手册中提到,电流稳态输出,“灌电电流”的上限值为:

.

换句话说,每一个引脚元件在输出低电平过程中外接电路向引脚灌入的电流上限值为10毫安,而每一组8位制端口(如P1、P2 和P3等端口)向引脚灌入的电流上限值为15毫安。P0端口的灌入电流能力强度要相对较好,向引脚灌入的电流上限值为26毫安。所有的四道端口向引脚灌入的电流上限值不超过71毫安。如果引脚端口输出高电平,单片机系统的拉电电流能力则表现的极差,拉电电流的上限值不会超过1毫安,几乎没有输出电流的能力。

由图1电路可知,“拉电流”负载在单片机系统在运行状态下耗电量大,因此在对电路进行设计时需采取灌电流负载措施。

2 提高单片机系统IO引脚驱动能力的对策

由于P0口没有弱上拉,所以做地址线时不用上拉,但输出“1”时就要加上拉电阻,不然输出电平到不了高电平,P1~P3则不存在这个问题,每个输出管脚都有弱上拉电阻(也就是电阻很大的上拉电阻),造成的结果是输出高电平电流很小,为10-6量级,驱动不了LED、数码管之类的负载。要驱动更大电流的负载,要么再外加一个三极管增强驱动,要么LED、数码管用共阳极接法(也就是LED正极接VCC,负极接单片机的I/O;数码管用共阳数码管,COM口接VCC),另外也可使用集成芯片或专用驱动元件芯片引脚非常密集,维修和检查的难度不小,废旧元件的更换也是个棘手的问题。三极管的耐压性能和承受电流的能力也要好于集成芯片,尤其是在PCB上的布线更为便捷。这里主要介绍几种使用三极管的负载驱动电路。

2.1通用驱动电路

以通用继电器负载举证说明驱动的方法。通用继电器的线圈驱动电流不低于40毫安,单片机系统的IO 引脚无法承受大负荷驱动电流,因而需采用三极管以扩大输出能力。大于5伏特电流荷载的三极管驱动电路(PNP 8550型),所示如图2:

图2中,如P3. 7在输出低电平中,电阻R1可形成的基级电流值IB大约为2毫安,通过PNP 8550型继电器进行放大,输出电流LC完全可以保障驱动继电器。一般地,此继电电路的构成可以包括驱动器、蜂鸣器、扩音器和LED显示屏组成,也可作为小型直流电动机的驱动装置。以上PNP 8550型驱动电路于大于5伏特的负载电路不再适用。例如,直接接入12伏特负荷,那么单片机系统的输出电压值也仅仅在0伏特至5伏特之间的变化,这样一来三极管8550发射极12伏特的负载均为低电平,直接导致三极管8550不能立即被截止。因此,我们需要对此选择用更为合适的三极管来应对。如NPN 8050型三极管,单片机系统的输出高电平可作为驱动力,其电路构成如图3所示。

图3中电路完全可以工作,但上拉电阻R2也会带来无谓的电流,单片机启动然后完成复位操作,输出高电平启动继电器的吸合或使得电机发动。在编程中,即使先将接入端初始化并指令输出设置为0,也会在每次启动系统运行阶段出现瞬间的大电流冲击的问题,更有甚者导致三极管直接烧坏。因此,设计中需注意到这个问题,尽可能去规避。

2.2 驱动电路优化

以图3所示的8050(NPN型)驱动电路为基础,通过加设PNP 8550型三极管的倒相,可实现单片机系统输出低电平对负载的驱动。其电路构成如图4所示。

图4中电路完全可以工作,需要说明的是,倒相所用PNP 8550型三极管亦可以“光耦”元件来代替,可以增强电路的电气隔离效果。电路构成如图5所示。

图5中4N25 型“光耦”经实际监测,如LED显示屏中的电流不低于5毫安,输出端口的光电管则可提供足量的基极电流LB给8050三极管。因此,图5中电阻R3的取值范围应该为810k~1k。

3 总结

综上所述,以上正文所述各个驱动电路的构成,都将以扩大单片机系统输出电流为目的。但是,很多有关IC输出端口都会存在一些如扩充电流输出性能等问题。该文所列电路均可通用。笔者所介绍的8050三极管和8550三极管均可输出1500毫安电流,如需更大的输出电流,仅需更换其他相应型号的三极管即可。

参考文献:

[1] 张毅刚,彭喜元.单片机原理与应用[M].北京:电子工业出版社,2009.

[2] 谢自美.电子电路设计、实验、测试[M].武汉:华中科技大学出版社,2000.

[3] 楼然苗.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.

上一篇:超声波物位监测装置在矿仓中的应用 下一篇:关联规则在高校学生成绩分析中的应用