上拉电阻是为了单片机以外的设备和电路能清楚识别高低电平而安装的,单片机输出就是一个三极管发射极接地,集电极开路输出,在集电极到电源放一个电阻,当集电极和发射极导通的时候集电极就变成低电平,当集电极和发射极不导通的时候集电极由于有上拉电阻的存在就变成高电平了。 如果没有上拉电阻的存在集电极和发射极不导通的时候集电极也是低电平。上拉电阻就是一个假负载。
bg7aew 更通俗易懂。
有的IO口可以使用软件内部上拉。如果不能内部上拉,就外部加电阻上拉。如果没有上拉电阻,当IO口输出高电平的时候,其实是虚高,等于不是低电平。加了上拉电阻,才可以是高电平。
单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。特别是P0 口,其内部根本就没有上拉电阻,所以 P0 口根本就没有高电平输出电流的能力。外接电路如果是“拉电流负载”,要求单片机输出高电平时发挥作用,那就必须用“上拉电阻”来协助,产生负载所需的电流。
单片机P0口当I/O口用时相当于集电极开路型,所以需要在外面接一个上拉电阻才可以。
其他I/O口可以接也可以不接,接上拉电阻是为了有更大电流输出。