学习51单片机的时候,都会对其P0口上拉电阻阻值的取值问题而头疼。其实,P0口接不接上拉电阻,电阻值该选择多大的都是根据不同的情况来选择的。下面来简单分析下如下的几种情况:
第一种:P0口作为共阳极LED数码管的驱动端口。这种情况下,P0口主要是以吸收电流来作为有效工作方式,不对外输出高电平,此时,不应接上拉,任何上拉都不要接。接多少丢多少。不仅增加成本,而且增大了工作电流。至于数码管的鬼影问题,那是程序部分的问题,与硬件无关。
第二种:P0口作为数据传输接口。这种情况下,P0口需要输出高电平,而高电平的输出其实就是来自于上拉电阻。在数据输出状态下,P0口的负载都是逻辑器件,不需要大的输入功率,那么,就可以采用电阻值较大的电阻器作为上拉电阻,电阻过小会导致系统的工作电流加大。常用的5V电压下,其取值范围在4.7K-47K之间。减小电阻有利于提高系统的抗干扰能力,但是会增大系统的功耗,尤其是上拉电阻较多的情况下此现象会更加明显。
第三种:P0口作为控制接口。这种情况下,P0口需要输出高电平或者低电平作为有效控制信号。如果需要输出高电平作为有效信号,加之一般控制的器件是NPN的三极管,那么,其上拉电阻的取值范围多在470-4.7K之间,取值越小,三极管导通程度越大,三极管本身的损耗就会越小,但是对单片机本身的考验就会越大。取值越大,则单片机负担越小,则三极管的导通程度就会越小,导致三极管本身的损耗加大,甚至会跳出开关状态转至放大状态。如果需要控制的三极管功率过大,那么需要在控制电路中间加一级隔离放大。
如果单片机的P0口需要输出低电平作为有效控制信号,那么,其上拉电阻的作为就不是用来输出高电平了,而是为了给PNP型被控器件提供一个防止意外导通的电压,此举可以提高抗干扰能力,提高可靠性。那么,其电阻的阻值取值范围多在4.7K-47K之间。同样的,阻值越大,单片机负担越小,抗干扰能力越小,阻值越小,单片机负担越大,抗干扰能力越大。
就博主设计的很多电子电路来说,常用的电阻阻值主要集中在470欧姆的LED数码管限流电阻,1K的三极管驱动电阻,4.7K的信号上拉电阻这几种。其他的电阻则主要用在模拟电路部分。数字电路对电阻值的挑剔性远小于模拟电路,所以也有很多朋友对模拟电路感到头疼。