深刻理解单片机上拉电阻(2)

上一讲有更正的地方:当有输入时,IO口输出电压应为Vcc-I(e)*R≈0,I(e)为发射极电流;所以上拉电阻R的阻值一般比较大,为了分得更多的电压,将输出电压控制在很低的水平接近于无输出。

 

这一讲只讲一个问题,就是上一讲的遗漏问题:为什么外围LED电路只能设计成共Vcc形式?

(1)先看第一段代码

#include "reg51.h"

int main(){
    P0 = 0xff;
}

运行结果:

 

 那么问题来了:为什么让IO口输出高电平,LED还是没有点亮呢?

我们画出内部结构和外围电路通路:

当给IO口赋值为1,in输出低电平(前一句特别注意!!给in赋值1并不是给in一个电压,上一讲末尾已经说明),三极管截止,Vcc、10k上拉电阻,1k限流电阻,LED构成回路,此时R1+R2=11kΩ,阻值过大,LED工作在截止区。

(2)再看第二段代码:

#include "reg51.h"

int main(){
    P0 = 0x00;
}

 

同理,给IO口赋值为0时,相当于给in一个电压,三极管工作在放大区,Vin=Vcc-I(e)*R≈0,此时LED更不会点亮。

 

综上所述:LED外接电路只能设计成共Vcc。

 

 

 

posted @ 2020-04-26 22:47  guyjyc  阅读(348)  评论(0)    收藏  举报