51单片机P0口上拉电阻的深入研究

来源:互联网 发布:mysql管理器 编辑:程序博客网 时间:2024/05/17 08:17

        在讨论上拉电阻问题之前,首先需要清楚的是,P0是一个OC结构,也就是是相当与一个NPN的三极管,C极没有接任何东西,E极接地,B极接在一个数字电路的输出口上。所以没有接上拉电阻的时候,相当于CE没有任何电压,那么不管BE的电压是多少,三极管都不会导通和工作。接了上拉电阻后,也就是C极接了一个10K的电阻到5V,那么当BE的电压是0的时候,三极管截止,电阻没有导通,C极的电压等于5V当BE的电压为0.7V时,三极管饱和导通,CE的压降接近为0,电阻的电压会有5V。

       下面我们就具体讨论如何确定上拉电阻的大小。

    (1)如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用。通常就用1k的。

    (2)对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输入端接端口和VCC之间,那么除了要串接一个1—4.7k之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k—500K之间的都行,当然用10K的也可以,但是考虑到省电问题,没有必要用那么小的。

    (3)驱动晶体管分为PNP和NPN管两种情况:对于NPN,毫无疑问NPN管是高电平有效的,因此上拉电阻的阻值用2K——20K之间的,具体的大小还要看晶体管的集电极接的是什么负载,对于LED类负载,由于发管电流很小,因此上拉电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此上拉电阻的阻值最好不要大于4.7K,有时候甚至用2K的。对于PNP管,毫无疑问PNP管是低电平有效的,因此上拉电阻的阻值用100K以上的就行了,且管子的基极必须串接一个1——10K的电阻,阻值的大小要看管子集电极的负载是什么,对于LED类负载,由于发光电流很小,因此基极串接的电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此基极电阻的阻值最好不要大于4.7K。

    (4)对于驱动TTL集成电路,上拉电阻的阻值要用1—10K之间的,有时候电阻太大的话是拉不起来的,因此用的阻值较小。但是对于CMOS集成电路,上拉电阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,实际上对于CMOS电路,上拉电阻的阻值用1M的也是可以的,但是要注意上拉电阻的阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下上拉电阻不宜过大,一般要小于100K,有时候甚至小于10K。

        根据以上分析,上拉电阻的阻值的选取是有很多讲究的,不能乱用。 

原创粉丝点击