单片机的一个GPIO只能输出0和1两种状态,如果控制一个LED灯的话,可以实现LED的亮灭控制。两个LED具有四个状态:1)同时亮;2)同时灭;3)一个亮一个灭;4)一个灭一个亮。如果用一个GPIO的话,无法输出四种状态,所以要分情况讨论。

1.两只LED同时亮/灭的情况

这种情况其实是把两个LED看作是同一个,两个LED具有同样的状态,即两个LED同时点亮或者同时熄灭。如果是这种情况可以考虑如下的电路设计:

单片机如何控制io口来驱动led发光二极管

两只LED并联,单片机以灌电流的方式驱动。这样可以降低单片机的输出功耗。单片机的GPIO输出高电平1时,两个LED同时熄灭;单片机的GPIO输出低电平时,两个LED同时点亮。也可以考虑两只LED串联的情况,但是需要考虑LED自身的压降。对于具体的实施电路,可以考虑采用三极管或者MOS作为驱动。