关于单片机的上拉电阻电位我现在用单片机驱动一个led,如图,io口接上拉电阻,那么应该在单片机输出高

发布时间:2021-02-17 15:55:32

关于单片机的上拉电阻电位我现在用单片机驱动一个led,如图,io口接上拉电阻,那么应该在单片机输出高电平的时候点亮二极管.请问,此时二极管的阳极电位到底是单片机输出的高电平还是上拉电阻的电位啊?当led导通后,io口的电位是牵制在0.7v左右吧,那么此时单片机还算是高电平输出吗?led导通后,单片机还给led提供电流吗?还是全部电流都由vcc提供?请说详细点,

网友回答

如果是51单片机,这种接法适用于P0口.
51单片机的P0口在输出1(高电平)时其实是高阻态,也就是输出电阻无穷大,相当于断开.高阻态显然不能向外提供电流,所以加一个上拉电阻从Vcc取电流,此时单片不给LED提供电流,全部电流由Vcc提供.由于P0口输出1时是高阻态,IO口的电位不会被钳位(你可以把它理解成LED与IO没有连接).P0口输出0时,Vcc通过上拉电阻往单片机灌电流,在电阻上有5V的压降,与输出的逻辑电平0没有矛盾.
51单片机除P0外的其他IO口一般不需要接上拉电阻,但一定要在IO口和LED间接一个几百欧到1k左右的限流电阻,在LED导通时,由于有电流流经电阻,电阻上有压降,LED导通后压降一般在1.6V到3V不等(不会是0.7V),加上电阻上的压降,IO口上电压就可以达到5V,这与单片机输出的高电平没有矛盾.(事实上限流电阻的大小就是这么确定的,LED电流一般是几mA)
如果是其它单片机,如AVR或者PIC,IO口的结构可能不同,具体电路也就不同.但不管什么单片机,一般是不用IO直接驱动功率器件的,而是另外加一个驱动芯片,由单片机提供逻辑电平(几乎没有电流),驱动芯片提供功率(较大电流).
总的来说,你图上画的用于51单片机的P0口是没有问题的.如果接的是51单片机的其他IO口,没有限流电阻是不合理的,一定要在这种情况下分析你提的问题的话,LED导通后的电流是由Vcc通过外接的上拉电阻和这个端口内部的上拉电阻并联提供的,此时端口的电位被钳位在低电平,但单片机输出是往锁存器里写0或1的逻辑,因为写1指令使内部锁存器始终为高,所以认为单片机输出高电平.但如果执行一条读指令,判断的是引脚的状态,因为被led嵌位那就是输入为低了,那么读到的就是0.也就是说,输出为高,输入为低.
建议你看看IO口的内部结构,很多问题就容易理解了.
以上问题属网友观点,不代表本站立场,仅供参考!