单片机工程师在面试的过程中,经常会碰到一些相同的问题,笔者总结了十个提问率较高的问题,供大家参考。现在我们来分析单片机工程师常遇面试问题之一:一个单片机IO口如何控制两颗LED?
将两颗LED命名为D1、D2,两颗LED就会有如下4种组合:D1和D2都熄灭-D1亮D2灭-D1灭D2亮-D1和D2都亮。首先我们来看一下两个IO口控制两颗LED的情况,电路图如下:LED1和LED2直接接单片机两个IO口,可以看出,LED1输出高电平和低电平分别控制着D1的亮和熄灭,同理LED2输出高电平和低电平也控制着D2的亮和熄灭。所以用两个IO口来控制是很容易实现的。
但是一个单片机IO只有高、低、高阻三种状态,显然靠IO口这三种状态来控制是不够的,还需加辅助元器件。
我们来看上面这个线路图是否可以达到控制效果。LED3接单片机IO口。当LED3输出高电平,Q1导通,则D4亮,D3两端没有压差,D3熄灭;当LED3输出低电平,Q1截至,则D4熄灭,此时D3通过IO口到地形成回路,D3亮;当LED3处于高阻状态,此时D3没有形成回路,Q1截至,则D3和D4都熄灭,现在我们已经实现三种状态了,那么D3和D4全亮的状态是否可以实现呢?答案时候可以实现,当LED3输出PWM时,D3和D4会交替亮灭,如果这个变化过程够快,那么人眼将无法捕捉这个变化(超过60帧人眼将识别不到),这样看起来的效果就是D3和D4全亮,这类似于段位数码管的驱动。所以这个电路时可以实现一个IO控制两颗LED。
但这个电路也有一些缺点:增加了Q1,从而增加了成本;需要输出PWM,控制方式相对复杂。所以再设计方案的时候,前期要充分了解需求,合理规划单片机资源,这样才能避免后期出现单片机IO口不够用的尴尬局面。
如文章对你有帮助,可关注作者的微信公众号“单片机技术交流站”,后续作者将为您推送更多文章,谢谢!
小伙伴们如有不明白的地方,欢迎在下方留言。