Bootstrap

单片机如何使用3个GPIO口控制6个LED

1)单片机/ARM硬件设计小知识,分享给将要学习或者正在学习单片机/ARM开发的同学。

2)内容属于原创,若转载,请说明出处。

3)提供相关问题有偿答疑和支持。

以上图可以看到是一个电动牙刷,那么里面的硬件构造仅仅只有一个8脚单片机,如何做到控制6个LED,一个马达,一个按键的呢?初看,似乎GPIO不够用。

其实是利用了单片机的IO口的特性巧妙的设计:

这个电路使用到了单片机的IO口的三个状态:

1)地电平

2)高电平

3)高阻态

所谓的高阻态,实际就是GPIO口外部表现极大的阻抗,阻抗很大,几乎不会有电流流入流出,各个LED的亮灭有6种情况:

真值表如下:

其他更有意思的电路设计干货,待续...

;