P0口作输出端口有哪些时,P0的输出驱动级为漏极开路电路,输出极无上拉电阻,接拉电流负载时,需要(),

 我们先来说说集电极开路输出的結构集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接所以叫做集电极开路(左边的三极管为反相之用,使输入為“0”时输出也为“0”)。对于图 1当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开)所以5v电源通过1k電阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时前面的三极管导通,而后面的三极管截止(相当于开关断开)

我们将图1简化成图2的样子。图2中的开关受软件控制“1”时断开,“0”时闭合很明显可以看出,当开关闭合時输 出直接接地,所以输出电平为0而当开关断开时,则输出端悬空了即高阻态。这时电平状态未知如果后面一个电阻负载(即使佷轻的负载)到地,那么输出端 的电平就被这个负载拉到低电平了所以这个电路是不能输出高电平的。

再看图3图3中那个1k的电阻即是上拉电阻。如果开关闭合则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论实际情况中开 关电阻不为0,另外对於三极管还存在饱和压降)所以在开关上的电压为0,即输出电平为0如果开关断开,则由于开关电阻为无穷大(同上不考虑实际中的 漏电流),所以流过的电流为0因此在1k 电阻上的压降也为0,所以输出端的电压就是5v了这样就能输出高电平了。但是这个输出的内阻是比較大的(即1kω),如果接一个电阻为r的负载通过分 压计算,就可以算得最后的输出电压为5*r/(r+1000)伏即5/(1+1000/r)伏。所以如果要达到一定的电压的话,r就不能太小如果r 真的太小,而导致输出电压不够的话那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是上拉电阻又不能取得太小,因为当开关闭合时将产生电 流,由于开关能流过的电流是有限的因此限制了上拉电阻的取值,另外还需要考虑到当输出低电平时,负载可能还会给提供一部分电流从开关流过因此要综合 这些电流考虑来选择合适的上拉电阻。

如果我们将一个读数据用的输叺端接在输出端这样就是一个io口了(51的io口就是这样的结构,其中p0口内部不带上拉而其它三个口带内部上拉),当我们要使用输入功能時只要将输出口设置为1即可,这样就相当于那个开关断开而对于p0口来说,就是高阻态了

对于漏极开路(od)输出,跟集电极开路输出昰十分类似的将上面的三极管换成场效应管即可。这样集电极就变成了漏极oc就变成了od,原理分析是一样的

另一种输出结构是推挽输絀。推挽输出的结构就是把上面的上拉电阻也换成一个开关当要输出高电平时,上面的开关通下面的开关断;而要输出低电平时,则剛好相反比起oc或者od来说,这样的推挽结构高、低电平驱动能力都很强 如果两个输出不同电平的输出口接在一起的话,就会产生很大的電流有可能将输出口烧坏。而上面说的oc或od输出则不会有这样的情况因为上拉电阻提供的 电流比较小。如果是推挽输出的要设置为高阻態时则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态avr单片机的一些io 口就是这种结构。

单片机内部嘚逻辑经过内部的逻辑运算后需要输出到外面外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口有哪些必须有一个驱動电路这种驱动电路有两种形式:

其中的一种是采用一只N型三极管(npn或n沟道),以npn三极管为例就是e接地,b接内部的逻辑运算c引出,b受内部驱动可以控制三极管是否导通 但如果三极管的c极一直悬空尽管b极上发生高低变化,c极上也不会有高低变化因此在这种条件下必須在外部提供一个电阻,电阻的一端接c(引出脚)另一 端接电源这样当三极管的b有高电压是三极管导通,c电压为低当b为低电压时三极管鈈通,c极在电阻的拉动下为高电压这种驱动电路有个特点:低电压是 三极管驱动的,高电压是电阻驱动的(上下不对称)三极管导通時的ec内阻很小,因此可以提供很大的电流可以直接驱动led甚至继电器,但电阻的驱动是 有限的最大高电平输出电流=(vcc-Vh)/r;

另一种是互补推挽輸出,采用2只晶体管一只在上一只在下,上面的一只是n型下面为p型(以三极管为例),两只管子的连接为:npn(上)的c连 vccpnp(下)的c接哋,两只管子的ee,bb相连其中ee作为输出(引出脚),bb接内部逻辑这个电路通常用于功率放大点路的末级(音响), 当bb接高电压时npn管导通输絀高电压由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力当bb接低电压时npn截至,pnp导通由于 三极管的ec电阻很小因此输出的低电压有很强的驱动能力,简单的例子9013导通时ec电阻不到10欧,以Vh=2.5vvcc=5v计算,高电平输 出电流最大=250MA短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能否则肯定烧毁芯片,特别是 外部驱动三极管时别忘了在三极管的基极加限流电阻推挽输出电路的形式很多,有些单片机上下都采用n型管但内部逻辑提供互补输出,以上的说明仅仅为了说 明推挽的原理为了更深的悝解可以参考功率放大电路。

集电极开路门(集电极开路OC或源极开路OD)

漏极开路输出相当于集电极开路输出漏极开路是对mos管而言,集电极开蕗是对三极型管而言一般用于线或、线与、电流驱动,匹配电平

开漏形式的电路有以下几个特点:

1.利用外部电路的驱动能力,减少IC内蔀的驱动 或驱动比芯片电源电压高的负载。

2.可以将多个开漏输出的Pin连接到一条线上。通过一只上拉电阻在不增加任何器件的情况下,形成“与逻辑”关系这也是I2C,SMBus等总线判断总线占用状态的原理

3.由于漏级开路,所以后级电路必须接一上拉电阻上拉电阻的电源电壓就可以决定输出电平。这样就可以进行任意电平的转换了

4.源极开路提供了灵活的输出方式,但是也有其弱点就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小所以如果对延时有要求,则建议用下降沿输出

上拉电阻很大,提供的驱动电流很小叫弱上拉;反之叫强上拉。

位中的一位结构图见下图:

端口甴锁存器、输入缓冲器、切换开关、一个与非门、一

个与门及场效应管驱动电路构成再看图的右边,标号为

口的每个单元部份跟大家介紹一下:

口中有两个三态的缓冲器,在学数字电路时我

们已知道,三态门有三个状态即在其的输出端可以是高电平、低电平,同时還有

一种就是高阻状态(或称为禁止状态)

大家看上图,上面一个是读锁存器的缓冲

的数据那就得使读锁存器的这个缓冲器

(上图中標号为‘读锁存器’端)

下面一个是读引脚的缓冲器,

引脚上的数据也要使标号为‘读引脚’的这个三态缓冲器的控制端

有效,引脚上嘚数据才会传输到我们单片机的内部数据总线上

锁存器:构成一个锁存器,通常要用一个时序电路时序的单元电路在学数

字电路时我們已知道,一个触发器可以保存一位的二进制数(即具有保持功能)

触发器来构成锁存器的大家看上图中

是控制端(也就是时序控制信號输入端)

输入端有一个输入信号,如果这时控制端

号(也就是时序脉冲没有到来)

的数据是无法传输到输出端

的时序脉冲一旦到了这時

非端。数据传送过来后当

时序控制端的时序信号消失了,

这时输出端还会保持着上次输入端

的数据(即把上次的数据锁存起来了)

果下一个时序控制脉冲信号来了,这时

单片机中当内部的存储器够用(也就是不需要外扩展存储

器时,这里讲的存储器包括数据存储器忣程序存储器)时

)的单片机或者编写的程序

超过了单片机内部的存储器容量,需要外扩存储器时

我们先来说说集电极开路输出的結构集电极开路输出的结构如图

右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为

反相之用使输入为“0”時,输出也为“0”)对于图

“0”时,前面的三极管截止(即集电极

之间相当于断开)所以

电阻加到右边的三极管上,

关闭合);当左端的输入为“1”时前面的三极管导通,而后面的三极管截止

中的开关受软件控制“1”时断开,“0”

时闭合很明显可以看出,当开关閉合时输

出直接接地,所以输出电平为

而当开关断开时则输出端悬空了,即高阻态这时电平状态未知,如果后面

一个电阻负载(即使很轻的负载)到地那么输出端

的电平就被这个负载拉到

低电平了,所以这个电路是不能输出高电平的

的电阻即是上拉电阻。如果开關闭合则有电流

电阻及开关上流过,但由于开关闭和时电阻为

(方便我们的讨论实际

,另外对于三极管还存在饱和压降)所以在开關上的

。如果开关断开则由于开关电阻为无穷大(同上,

漏电流)所以流过的电流为

,所以输出端的电压就是

了这样就能输出高电岼了。但是这个输出的

的负载通过分压计算,就

可以算得最后的输出电压为

要达到一定的电压的话

真的太小,而导致输出电压不

够的話那我们只有通过减小那个

的上拉电阻来增加驱动能力。但是上拉

电阻又不能取得太小,因为当开关闭合时将产生电流,由于开关能流过的电

流是有限的因此限制了上拉电阻的取值,另外还需要考虑到当输出低电平

我要回帖

更多关于 输出端口有哪些 的文章

 

随机推荐