打印

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

[复制链接]
435|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
上一讲有更正的地方:当有输入时,IO口输出电压应为Vcc-I(e)*R≈0,I(e)为发射极电流;所以上拉电阻R的阻值一般比较大,为了分得更多的电压,将输出电压控制在很低的水平接近于无输出。

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

使用特权

评论回复
沙发
darklighttt|  楼主 | 2020-4-27 09:52 | 只看该作者
(1)先看第一段代码
#include "reg51.h"

int main(){
    P0 = 0xff;
}

运行结果:

使用特权

评论回复
板凳
darklighttt|  楼主 | 2020-4-27 09:53 | 只看该作者
那么问题来了:为什么让IO口输出高电平,LED还是没有点亮呢?
我们画出内部结构和外围电路通路:
当给IO口赋值为1,in输出低电平(前一句特别注意!!给in赋值1并不是给in一个电压,上一讲末尾已经说明),三极管截止,Vcc、10k上拉电阻,1k限流电阻,LED构成回路,此时R1+R2=11kΩ,阻值过大,LED工作在截止区。

使用特权

评论回复
地板
darklighttt|  楼主 | 2020-4-27 09:54 | 只看该作者
(2)再看第二段代码:
#include "reg51.h"

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

132

帖子

0

粉丝