关于51单片机IO引脚驱动能力

合集下载

51单片机主要引脚功能

51单片机主要引脚功能

51单片机主要引脚功能XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。

RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V 电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口P0 写1 时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对端口P2 写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。

P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对P3 口写入1 时,它。

51单片机引脚介绍

51单片机引脚介绍

P0口有三个功能:1、外部扩展存储器时,当数据总线。

2、外部扩展存储器时,当地址总线。

3、不扩展时,可做一般的i/o使用,但内部没有上拉电阻,做为输入输出时应在外部接上上拉电阻。

P1口只做I/0口使用,其内部有上拉电阻。

P2口有两个功能:1、扩展外部存储器时,当作地址总线使用。

2、做一般I/O口使用时,其内部有上拉电阻。

P3口也有两个功能:1、除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。

2、有内部EPROM的单片机芯片,为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的。

RST/VPD:1、复位,当在此引脚加上两个机器周期的高电平时,面实现复位操作。

2、备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由些引脚引入,以保护内部RAM中的信息不会丢失。

ALE/PROG地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址的数据的隔离。

例如,ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出,ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当请问外部存储器时,ALE负跳变,将P0口上低8位地址信号送入锁存器,当ALE是低电平时,P0口上的内容和锁存器输出一致。

在没有访问外部存储器期间,ALE以1/6振荡周期频率输出,当访问外部存储器以1/12振荡周期输出,从这里我们可以看到,当系统没有进行扩展时ALE会以1/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。

PROG为编程脉冲的输入端:单片机内部有一个4K或8K的程序存储器ROM。

R OM的作用是用来存放用户需要运行的程序,而PROG就是将这些程序写到ROM中的脉冲输入端。

PSEN外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作,内部ROM读取时,PSEN不动作,外部ROM读取时,在每个机器周期会动作两次。

51单片机引脚功能介绍

51单片机引脚功能介绍

51单片机引脚功能介绍40只引脚双列直插封装(DIP)。

40只引脚按功能分为3类:(1)电源及时钟引脚: Vcc、Vss;XTAL1、XTAL2。

(2)控制引脚: PSEN*、EA* 、ALE、RESET (即RST)。

(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚。

2.2.1 电源及时钟引脚1.电源引脚(1)Vcc(40脚): 5V电源;(2)Vss(20脚):接地。

2.时钟引脚(1)XTAL1(19脚):如果采用外接晶体振荡器时,此引脚应接地。

(2)XTAL2(18脚):接外部晶体的另一端。

2.2.2 控制引脚提供控制信号,有的引脚还具有复用功能。

(1) RST/VPD(9脚):复位与备用电源。

(2) ALE/PROG*(30脚):第一功能ALE为地址锁存允许,可驱动8个LS型TTL负载。

PROG*为本引脚的第二功能。

为编程脉冲输入端。

(3) PSEN* (29脚):读外部程序存储器的选通信号。

可以驱动8个LS型TTL负载。

(4) EA*/VPP (Enable Address/Voltage Pulse of Programing,31脚) EA*为内外程序存储器选择控制端。

EA*=1,访问片内程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051、8751)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。

EA*=0,单片机则只访问外部程序存储器。

VPP为本引脚的第二功能。

用于施加编程电压(例如21V或12V)。

对89C51,加在VPP脚的编程电压为 12V或 5V。

2.2.3 I/O口引脚(1) P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。

(2) P1口:8位准双向I/O口,可驱动4个LS型TTL负载。

(3) P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。

51单片机IO引脚IO口工作原理

51单片机IO引脚IO口工作原理

51单片机IO引脚IO口工作原理一、IO引脚的基本特性1.输入与输出:IO引脚可以配置为输入(接收外部信号)或输出(发送信号到外部设备)。

2. 高低电平:IO引脚可以输出高电平(通常为Vcc电压)或低电平(通常为接地GND电压)。

3.上拉与下拉:IO引脚可以通过上拉电阻或下拉电阻实现电平的稳定。

4. 悬空状态:未配置输入的IO引脚可能处于悬空状态(floating),容易受到噪声的干扰。

二、IO口的工作原理1.寄存器配置:通过对相应的寄存器进行配置,可以选择IO引脚的工作模式(输入或输出)、电平(高或低)、上拉或下拉等。

2.IO端口的控制:通过对控制寄存器进行设置,可以使IO引脚产生相应的电平信号,控制外部设备的操作。

3.输入输出驱动能力:IO引脚的输出能力决定了其能够驱动的外部设备的负载能力。

对于较重的负载,需要考虑使用缓冲电路或者外部驱动芯片。

三、IO口的配置与操作1.选择IO引脚功能:通过寄存器配置,将IO引脚配置为输入模式(将输入电平传递给芯片内部)或输出模式(将芯片内部的电平输出到外部设备)。

2.设置电平状态:对于输出模式的引脚,可以通过寄存器来设置输出电平的状态,使其输出高电平或低电平。

3.上拉与下拉电阻:通过配置相关寄存器,可以启用上拉电阻(使引脚在悬空状态时拉高到高电平)或下拉电阻(使引脚在悬空状态时拉低到低电平)。

四、IO端口的应用1.输入:将外部设备的信号输入到IO引脚,通过编程来实现对信号的判断和处理。

例如,读取按键的状态、读取传感器的数据等。

2.输出:将芯片内部产生的信号输出到外部设备,用于控制和驱动外部设备的操作。

例如,控制LED灯的亮灭、控制继电器的开关等。

3.通信:通过IO引脚与其他设备(例如外围设备、传感器、通信模块等)进行通信。

4.扩展IO口:通过外部的IO扩展芯片或者接口芯片,可以扩展更多的IO口。

总结:51单片机的IO口是其与外部设备通信的接口,通过配置相关寄存器来选择引脚的工作模式、电平和电阻状态。

单片机的驱动能力

单片机的驱动能力

C8051F学习笔记:单片机的驱动能力学习51单片机的时候我们就知道51单片机的I/O口的特点:P0口没有弱上拉,所以做地址线时不用上拉,但输出“1”时就要加上拉电阻,不然输出电平到不了高电平,P1~P3则不存在这个问题,每个输出管脚都有弱上拉电阻(也就是电阻很大的上拉电阻),造成的结果是输出高电平电流很小,为uA量级,驱动不了LED、数码管之类的,所以要么在外加一个NPN的三极管增强驱动,要么LED、数码管用共阳极接法(也就是LED正接VCC,负接MCU的I/O;数码管用共阳数码管,COM口接VCC)。

虽然道理懂得,但很多时候脑子太死了,MCU接其他器件的时候,就要MCU的I/O输出驱动电流这事给忘了。

下面是一个教训:三个不同类型MCU 控制继电器的电路。

图1 MCU采用STC89C51,增加一个PNP,增强了驱动能力,能控制继电器TQ-RELAY的闭合图2 MCU用的是C8051F120,I/O端口高低电平能控制光耦继电器AQW610的闭合图3 MCU用的是ADI公司的单片机ADuC842,这种解法,MCU的I/O控制不了AQW610的闭合图2和图3基本是相同的电路,只不过是MCU不一样,为什么一个能控制AQW610,一个不行呢?让我们先来看看AQW610的DataSheet.AQW610的电气特性AQW610光耦继电器里的二极管工作电流常闭端为3.0mA,常开端为1.3mA。

再来看看单片机ADuC842(ADI公司兼容的51单片机)ADuC842的电气特性I SINK为灌电流,是指低电平输出时,能够吸收的电流;I SOUCE为拉电流,指高电平输出时,能够输出的电流;在这里虽然没有明确给出拉电流灌电流的最大值,只是把这两个作为输出高电流和低电平的测试条件,但可以认为这个测试条件也就是这款MCU能输出的最大电流了。

ADuC842高电平的驱动电流只能到80uA,P0~02、ALE低电平的驱动电流为1.6mA,P3低电平的驱动电流能达到3mA。

对于51单片机P1口驱动能力的理解

对于51单片机P1口驱动能力的理解

对于51单片机P1口驱动能力的理解在51单片机系列中,现在生产厂家很多,兼容型号也很多。

不同厂家生产的单片机P1口的驱动能力是不同的。

下面仅举最常用的3种单片机为例,谈谈驱动能力。

先说说LS型TTL负载。

LS型TTL负载是指单片机端口所接负载是74LS系列的数字芯片。

以TI公司的74LS00芯片为例,其输入端接高电平时,输入电流为20μA,输入端接低电平时,输入电流是-0.4mA。

因此,单片机端口输出高电平时,每个LS型的输入端将是20μA的拉电流型负载;输出低电平时,将是0.4mA的灌电流负载。

1. 标准的Intel8051单片机:其P0口是一个漏极开路的准双向口,驱动能力是8个LS型TTL负载。

楼上3楼说“51单片机P1口只是准双向口,内部没有上拉的。

(上拉的概念只是对于I/O的输入来说,对于输出来说,无所谓上拉,下拉的)。

”,其实并不对。

不对之处有两点:①没有上拉的是P0口,而不是P1口。

P1口是有上拉的。

②没有上拉(即漏极开路)其实只对输出有影响,以致只能输出低电平,不能输出高电平,而不妨碍高低电平的输入。

因此对P0口来说,输出为高电平时,其输出电流为0,必须外接上拉电阻才能输出高电平;输出低电平时,允许灌入电流为0.4mA×8=3.2mA。

而P1、P2、P3口都是有上拉的准双向口,带负载能力为4个LS型TTL门,因此,高电平输出电流为20μA×4=80μA,低电平允许灌入电流为0.4mA×4=1.6mA。

输出高低电平的带负载能力都很差,因此应该接入4.7k~10k左右的上拉电阻。

2. AT89系列单片机:因为输出电流会影响输出电压,所以参数表中是结合输出电压来提供输出电流能力的。

AT89C51和AT89S51允许的高电平输出电流为:输出电压为3.7V时,电流为25μA;允许的低电平输出电流(实际为灌入电流)为:输出电压为0.45V 时,电流为-1.6mA。

单片机IO口的驱动能力

单片机IO口的驱动能力

单片机的IO是有驱动能力限制的,特别是输出为高电平的时候,是有限制的。

我们来看单片机的IO口在输出时电路结构:
通过等效我们可以做出如下的模型
因此我们通过测试可得到每个IO口的输出能力,上拉或下拉电阻实际包括两部分组成,实际上拉/下拉电阻+Mos管的Rdson。

如果超过了这个电流,负载电路再减小的时候,输出电压就会持续的降低。

因此我们在实际输出接口要考虑不同芯片的电压和输入和输出的能力,根据实际的计算来考虑设置模式或者限制电流。

以上测试都是在负载电容50pf左右的时候。

在驱动容性负载的时候,由于初始充电电流比较大,因此波形可能变得很缓。

因此随着负载容性的增大,信号变得越缓,但容性超过一定程度的时候,IO口的电流不注意承担的时候,
就很容易出现问题。

我们在设计单片机输出的时候,一定要注意IO口的输出能力和输出电平是否可以接受,其次是负载类型会不会造成信号不良或对IO口本身造成伤害。

前面博文中有提到,IO直接接地的问题就是源于IO内部可能存在内部上拉,(51系列P1,P2,P3做输出口都是内部上拉),如果程序紊乱,寄存器设置为高电平,就会出现电流猛增,造成单片机的损坏,但这不是一定的,属于设计风险。

51单片机IO口驱动能力

51单片机IO口驱动能力

单片机输出低电平的时候,单个的引脚,向引脚灌入的最大电流为 10 mA;一个 8 位的接口(P1、P2 以及 P3),灌入的总电流最大为 15 mA,P0 允许灌入的最大总电流为 26 mA;全部的四个接口所允许的灌电流之和,最大为 71 mA。

但是当引脚输出高电平的时候,它们的“拉电流”能力可就差多了,竟然还不到 1 mA。

为了合理利用IO引脚的低电平能力强的特点,在外接耗电较大的器件(如LED数码显示器、继电器等)的时候,应该优先选用低电平输出来驱动外部器件。

使用IO口输出高电平驱动负载,就是一个错误的选择。

下图是一个直接利用单片机IO引脚驱动LED的电路。

图中P0口使用低电平驱动方式,只要加上约1K的限流电阻即可,甚至不需要常见的P0口上拉电阻。

发光的段,每个引脚灌电流约为3mA,不发光的段,电流为0。

即使各个段全都发光,电流也不超过P0所容许的电流,这是一个合理的驱动方式。

图中P3口使用了高电平驱动方式,这就必须加上上拉电阻来帮助IO接口输出电流。

电阻也采用了1K,发光的段,LED上的电流约为3mA,不发光的段,电流则为5mA,灌入了单片机的IO引脚。

单片机输出低电平的时候,LED不亮,此时VCC通过上拉电阻把电流全部灌进单片机IO口,并且电流是5mA,单片机输出高电平的时候,VCC通过上拉电阻将电流注入到LED中,led亮。

注意到了吗?LED 不发光的时候,上拉电阻给的电流全部灌入单片机的引脚了!如果在一个 8 位的接口,安装了 8 个 1k 的上拉电阻,当单片机都输出低电平的时候,就有 40mA 的电流灌入这个 8 位的接口!如果四个 8 位接口,都加上 1k 的上拉电阻,最大有可能出现32 × 5 = 160mA 的电流,都流入到单片机中!这个数值已经超过了单片机手册上给出的上限。

此时单片机就会出现工作不稳定的现象。

而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快...等后果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。

但是,程序控制不了单片机的输出电流。

单片机的输出电流,很大程度上是取决于引脚上的外接器件。

单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”;单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。

这些电流一般是多少?最大限度是多少?这就是常见的单片机输出驱动能力的问题。

早期的51系列单片机的带负载能力,是很小的,仅仅用“能带动多少个TTL输入端”来说明的。

P1、P2和P3口,每个引脚可以都带动3个TTL输入端,只有P0口的能力强,它可以带动8个!分析一下TTL的输入特性,就可以发现,51单片机基本上就没有什么驱动能力。

TTL输入基极的电流很小(一般为微安级的10uA-100uA)。

它的引脚,甚至不能带动当时的LED进行正常发光。

(其工作电流一般为几个毫安到十几个毫安)。

记得是在AT89C51单片机流行起来之后,做而论道才发现:单片机引脚的能力大为增强,可以直接带动LED发光了。

看看下图,图中的D1、D2就可以不经其它驱动器件,直接由单片机的引脚控制发光显示。

虽然引脚已经可以直接驱动LED发光,但是且慢,先别太高兴,还是看看AT89C51单片机引脚的输出能力吧。

从AT89C51单片机的PDF手册文件中可以看到,稳态输出时,“灌电流”的上限为:Maximum IOL per port pin:10mA;Maximum IOL per8-bit port:Port0:26mA,Ports1,2,3:15mA;Maximum total I for all output pins:71mA.这里是说:每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为10mA;每个8位的接口(P1、P2以及P3),允许向引脚灌入的总电流最大为15mA,而P0的能力强一些,允许向引脚灌入的最大总电流为26mA;全部的四个接口所允许的灌电流之和,最大为71mA。

而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢?可以说是太差了,竟然不到1mA。

结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。

这个结论是依照手册中给出的数据做出来的。

51单片机的这些特性,是源于引脚的内部结构,引脚内部结构图这里就不画了,很多书中都有。

在芯片的内部,引脚和地之间,有个三极管,所以引脚具有下拉的能力,输出低电平的时候,允许灌入10mA的电流;而引脚和正电源之间,有个几百K的“内部上拉电阻”,所以,引脚在高电平的时候,能够输出的拉电流很小。

特别是P0口,其内部根本就没有上拉电阻,所以P0口根本就没有高电平输出电流的能力。

再看看上面的电路图:图中的D1,是接在正电源和引脚之间的,这就属于灌电流负载,D1在单片机输出低电平的时候发光。

这个发光的电流,可以用电阻控制在10mA之内。

图中的D2,是接在引脚和地之间的,这属于拉电流负载,D2应该在单片机输出高电平的时候发光。

但是单片机此时几乎没有输出能力,必须采用外接“上拉电阻”的方法来提供D2所需的电流。

哦,明白了,外接电路如果是“拉电流负载”,要求单片机输出高电平时发挥作用,那就必须用“上拉电阻”来协助,产生负载所需的电流。

下面做而论道就专门说说上拉电阻存在的问题。

从上面的图中可以看到,D2发光,是由上拉电阻R2提供的电流,D2导通发光的电压约为2V,那么发光的电流就是:(5-2)/1K,约为3mA。

而当单片机输出低电平(0V),D2不发光的时候,R2这个上拉电阻闲着了吗?没有!它两端的电压,比LED发光的时候还高,现在是5V了,其中的电流,是5mA!注意到了吗?LED不发光的时候,上拉电阻给出了更大的电流!并且,这个大于正常发光的电流,全部灌入单片机的引脚了!如果在一个8位的接口,安装了8个1K的上拉电阻,当单片机都输出低电平的时候,就有40mA的电流灌入这个8位的接口!如果四个8位接口,都加上1K的上拉电阻,最大有可能出现32×5=160mA的电流,都流入到单片机中!这个数值已经超过了单片机手册上给出的上限。

如果此时单片机工作不稳定,就是理所当然的了。

而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快...等后果。

呵呵,特别是现在,都在提倡节能减排,低碳...。

那么,把上拉电阻加大些,可以吗?回答是:不行的,因为需要它为拉电流负载提供电流。

对于LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。

对于D1,是灌电流负载,单片机输出低电平的时候,R1、D1通路上会有灌电流;输出高电平的时候,那就什么电流都没有,此时就不产生额外的耗电。

综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,这种电路不合理。

有些网友对上拉电阻情有独钟,有用没用的,都想在引脚上安装个上拉电阻,甚至还能说出些理由:稳定性啦、速度啦...。

其实,“上拉电阻”和“拉电流负载”电路,是会对单片机系统造成不良后果的。

做而论道看过很多关于单片机引脚以及上拉电阻方面的书籍、参考资料,基本上它们对于使用上拉电阻的弊病都没有进行仔细的讨论。

在此,做而论道郑重向大家提出建议:设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗。

上拉电阻,仅仅是在P0口才考虑加不加的问题:当用P0口做为输入口的时候,需要加上、当用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。

但是当引脚输出高电平的时候,它们的“拉电流”能力可就差多了,竟然还不到1 mA。

单片机的输出特性和很多常用的LSTTL器件的输出特性是相同的,都有灌电流较大的特点。

实际上,现在常用的单片机IO引脚驱动能力,就和早期的单片机增加了“总线驱动芯片”的效果基本是相同的。

现在的单片机输出低电平的时候,就已经可以直接驱动LED发光了。

上述的数值,也并非是不可逾越的破坏性极限数值。

当略超过这些数值范围的时候,单片机IO引脚的电压,就会发生变化,造成“高电平不高”、“低电平不低”,这就会缩小外接器件的噪声容限。

如果环境再稍有干扰,外接器件就无法正确判定单片机送来的高、低电平,将会胡乱动作。

==================================为了合理利用IO引脚的低电平能力强的特点,在外接耗电较大的器件(如LED 数码显示器、继电器等)的时候,应该优先选用低电平输出来驱动外部器件。

使用IO口输出高电平驱动负载,就是一个错误的选择。

下图是一个直接利用单片机IO引脚驱动LED的电路。

图中P0口使用低电平驱动方式,只要加上约1K的限流电阻即可,甚至不需要常见的P0口上拉电阻。

发光的段,每个引脚灌电流约为3mA,不发光的段,电流为0。

即使各个段全都发光,电流也不超过P0所容许的电流,这是一个合理的驱动方式。

图中P3口使用了高电平驱动方式,这就必须加上上拉电阻来帮助IO接口输出电流。

电阻也采用了1K,发光的段,LED上的电流约为3mA,不发光的段,电流则为5mA,灌入了单片机的IO引脚。

这种电路,给单片机IO引脚带来了很大的电流,一个8位的接口最大有可能被灌入40mA的电流,远远超过了容许的数值。

上拉电阻能够增加大量不需要的电流,不仅会造成单片机工作不稳定,还会导致电源效率的严重下降,发热,纹波增大。

这说明,高电平输出、加上拉电阻,就是一个不合理的驱动方式。

如果只是一个引脚的电流取值稍大一些,还算可以;但是综合考虑一个8位的接口,则每个引脚的电流就不要大于2~3mA。

这样来看,上拉电阻最小应该在1.8K~2.5K之间,不宜再小,以免总电流超过接口所容许的电流。

在网上看到一篇“51单片机P0口上拉电阻的深入研究”的文章(/20070210030205/blog/item/95e5ab83a62d089df703a649. html),对上拉电阻的最小选择,写的很低,甚至说可以选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即可。

相关文档
最新文档