在使用单片机时,经常会遇到OC、OD门的概念,那么它们是什么含义呢?我们来一起探究下。

先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相作用,使输入为"0"时,输出也为"0")。

单片机引脚定义c语言(单片机OCOD门输出简介)(1)

对于图1,当左端的输入为"0"时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合,此时Ube=0.7V,Uce≈0V);

当左端的输入为"1"时,前面的三极管导通,而后面的三极管截止(前面三极管导通,此时前面的三极管是处于饱和区的,也就是说Uce<Ube<0.7V,后面的三极管Ube的电压其实就是前面三极管Uce的电压值,所以后面的三极管此时是处于截止状态的,也就是说be,ce都是截止状态,高阻态。相当于开关断开)。

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

再看图三。图三中那个1K的电阻即是上拉电阻。如果开关闭合,则有电流从1K电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。

如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为0,因此在1K电阻上的压降也为0,所以输出端的电压就是5V了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即1KΩ),如果接一个电阻为R的负载,通过分压计算,就可以算得最后的输出电压为5*R/(R 1000)伏,即5/(1 1000/R)伏。

所以,如果要达到一定的电压的话,R就不能太小。如果R真的太小,而导致输出电压不够的话,那我们只有通过减小那个1K的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。

那么什么是漏极开路(OD)呢?

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

以上就是OC、OD输出的全部内容了,你学会了没有?

,