在标准的51单片机的P1-P3口,每位的输出是一个MOSFET管(类似于三极管,但是集成度高)和一个上拉电阻,这个上拉电阻在MOS管截止时候为输出提供了高电平,但是向外提供的输出能力很弱,一般不到几个毫安,所以驱动能力很弱。这点类似于74S,74LS系类。
后来,不同厂家为了改变驱动不足,将输出由上拉电阻形式改为推挽式输出,输出能力大为增强,达到了10个毫安以上,其结构和74HC系列类似。
不少单片机书上讲的上拉电阻结构的输出在今天已经用的不多了。
以前的单片机的 P1 P2 P3 用作I/O口时为准双向口/弱上拉,P0口用作I/O时为开漏, 现在的多数单片机I/O口的一般都可以通过软件可以设置为 准双向口/弱上拉、推挽/强上拉、仅为输入/高阻、开漏OC。
你说的可能为准双向口/弱上拉的情况,即它有弱上拉,为什么还要再加上拉电阻,那是因为弱上拉只是相当于50K电阻,上拉电流只有0.1mA左右,在要求抗干扰能力很高、驱动能力要求大、I/O开关频率速度高的场合,我们会再加一个10K或4.7K的上拉电阻,以改善其性能。
51P0口是,其他的是有内不200k的上啦电阻,200k电阻太大了,手的电阻最小时约为100k,有时用手碰一下都被拉低,加上拉电阻一般为10k,加100k电阻也啦不低】