标题: 单片机p0口外接数码管上拉电阻的问题 [打印本页]

作者: hao0314    时间: 2017-11-25 22:40
标题: 单片机p0口外接数码管上拉电阻的问题
单片机io接了上拉电阻的话,外部5v的压降全部加载到1k电阻上,输出5ma电流
如果没有上拉电阻的话,外部电压全部加载到数码管上电流不应该更大吗
主要是不太理解p0口置1有无上拉电阻时,电路中的电流究竟是怎么来的,p0口输出电压究竟是多少(5v?)与外接5v电源在电路之间的关系,望各位大侠指点一二

1E4FD293-B4BC-4B8C-B918-F5FBDE605205.png (120.19 KB, 下载次数: 88)

1E4FD293-B4BC-4B8C-B918-F5FBDE605205.png

作者: rodderliu    时间: 2017-11-26 00:44
单片机是5V供电的话,IO口的电压就是0V或5V。当IO口为0V时,数码管电流不是5毫安,计算方法为供电电压(5V)-IO口电压(0V)-数码管电压(0.7v),再除以1K
作者: angmall    时间: 2017-11-26 08:57
楼主看一下单片机的内部结构吧!
你看了片子内部结构就知道除了P0口外 其他3口都接了上拉电阻 所以 一旦P0口要用作I\O口使用 就必须接上拉电阻

对于共阴极数码管,需要高电平才能驱动
P0为什么要上拉电阻原因有:
1。 P0口片内无上拉电阻
2。 P0为I/O口工作状态时,上方FET被关断,从而输出脚浮空,因此P0用于输出线时为开漏输出。
3。 由于片内无上拉电阻,上方FET又被关断,P0输出1时无法拉升端口电平。
4、上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,
驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。

不过,加1K上拉后,电流并不是5V/1K=5mA。因为led一般会有2V左右的压降,这样1K电阻两端只有3V左右的电压,流过的电流只有3mA左右!

作者: angmall    时间: 2017-11-26 08:58
传统的51单片机P0口的电流驱动能力较弱。如果用来驱动数码管(多段的LED),建议增加外部的驱动器:用51单片机的P0口驱动外部驱动器,再由外部驱动器驱动数码管。这时P0口可以不用上拉电阻。
(外部驱动器可以是三极管或集成电路)

作者: baofu    时间: 2017-11-26 09:00
关于上拉电阻作用的解释:
  先看图(本图仅供示意,并不是内部真的构造!),芯片内部,每个IO管脚都有相应的场管,其集电极(漏极)有电阻,这个电阻能提供的电流是有限的,如果负载需要电流小于这个限度,则不加上拉电阻也能工作。
  当负载电流较大,超出限度后,必须加上拉电阻,本质上,就是在原来集电极电阻基础上又并联了一个集电极电阻。

1.gif (9.75 KB, 下载次数: 57)

1.gif

作者: wskjinfen    时间: 2017-11-26 11:55
P0口没有内部上拉电阻,相当于开漏输出,只有接地与不接地两种状态。用于驱动LED等负载可以不加上拉电阻,相当于在LED负极串联开关。但是要驱动芯片之类时,无法输出1,必须加上拉。
作者: hao0314    时间: 2017-11-26 15:39
angmall 发表于 2017-11-26 08:57
楼主看一下单片机的内部结构吧!
你看了片子内部结构就知道除了P0口外 其他3口都接了上拉电阻 所以 一旦P0 ...

可不可以这样理解,P0口置1时处于悬空状态,电流直接由外部5V电源经过图上交叉的节点和数码管流向接地的P2口,P0口置0时接地,电流不会经过数码管直接流量P0内部的地。
但是如果没有这个上拉电阻的话,P0口置1时,没有电阻的电流同样是由外部电源经过中间节点流向数码管吗
作者: angmall    时间: 2017-11-26 18:27
但是如果没有这个上拉电阻的话,P0口置1时,处于悬空状态,电流怎么来的?
作者: zl2168    时间: 2017-11-26 19:18
先学理论,打基础,否则,问题多多,事倍功半。
作者: hao0314    时间: 2017-11-26 19:54
angmall 发表于 2017-11-26 18:27
但是如果没有这个上拉电阻的话,P0口置1时,处于悬空状态,电流怎么来的?

图中不是接了排阻上方外部5v电源吗,与接地P2口难道 不能行成压差吗,P0口悬空的时候
作者: hao0314    时间: 2017-11-26 19:56
zl2168 发表于 2017-11-26 19:18
先学理论,打基础,否则,问题多多,事倍功半。

感觉到了,现在就是想回头来把不太理解的都搞明白,之前都是编个程序就完事了,电路为什么这么设计不太了解
作者: w5555456    时间: 2017-11-26 23:49
P0为什么要上拉电阻原因有:
1。 P0口片内无上拉电阻
2。 P0为I/O口工作状态时,上方FET被关断,从而输出脚浮空,因此P0用于输出线时为开漏输出。
3。 由于片内无上拉电阻,上方FET又被关断,P0输出1时无法拉升端口电平。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1