
图1
而不是下面这种方式。

图2
这里面就是用到了数电的基础知识
图1的电路在低电平的时候LED才发光,电流是从电源灌入到单片机的IO管脚,也就是用灌电流驱动LED。
图2要想驱动LED发光,需要IO管脚输出高电平,这个电流完全是由单片机管脚提供的,像是从管脚将电流拉出来一样,所以形象的称其为,拉电流。
为什么不能用图2的方式驱动呢,因为,单片机管脚输出电流的能力是十分有限的,而LED发光需要至少MA级别的电流,远大于管脚的拉电流,所以这样接是不合理的。而灌电流的电流值要比拉电流大得多,所以都采用图1的方式。
如果强行让IO管脚输出比较大的电流值,也就是降低图2的电阻值,有可能是单片机的管脚烧掉。
(各位网友注意,具体的单片机管脚拉电流与灌电流的值可在手册中查阅,视具体情况,不能一概而论)