什么是漏极开路(OD)?对于漏极开路(0D)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,0C 就变成了 0D,原理分析是一样的。另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起 0C 或者 OD 来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的 0C 或 OD 输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR 单片机的一些 10 口就是这种结构。我们先来说说集电极开路输出的结构。集电极开路输出的结构如图 1 所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图 1,当左端的输入为“0”时,前面的三极管截止(即集电极 c 跟发射极 e 之间相当于断开),所以 5v 电源通过 lk 电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。我们将图 l 简化成图 2 的样子。图 2 中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为 0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。再看图三。图三中那个 lk 的电阻即是上拉电阻。如果开关闭合,则有电流从 lk 电阻及开关上流过,但由于开关闭和时电阻为 0(方便我们的讨论,实际情况中开关电阻不为 0,另外对于三极管还存在饱和压降),所以在开关上的电压为 0,即输出电平为 0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为 0,因此在 lk 电阻上的压降也为 0,所以输出端的电压就是 5v 了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即 1k®),如果接一个电阻为 r 的负载,通过分压计算,就可以算得最后的输出电压为 5*r/...