各位好怎么用单片机的6个I/O口控制8个发光二接管?

怎么用单片机的6个I/O口控制8个发光二接管(附加器件10个电阻2个pnp三极管)同一时刻只能有一个灯亮?状态为(10000000, 01000000 00100000 00010000 00001000 00000100 00000010 00000001)

如电路所示,p0.0为高电平,L3亮,为低电平L1亮,p0.1的如p0.0,p0.2到p0.5不解释了。这样做的缺点是L1和L3随时都有一个亮,L2和L4也是随时都有一个亮。如ATF144X的回答,要想用6个IO控制8个LED可以使用38译码器。

追问

(10000000, 01000000 00100000 00010000 00001000 00000100 00000010 00000001)当第一个为高电平亮时,其他都不能亮且其他只能为低电平。不过也感谢你的答复。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-14
用个74HC138,只要4个io,如果再精简一下,3个io就行了。追问

是要做一个项目只能用这几个器件不能用其他的,(单片机的6个I/O口,8个发光二接管10个电阻2个pnp三极管)不过也非常感谢你的解答

第2个回答  2014-06-14
6个I/O口实现控制8个LED是不方便的
方案1、8个I/O控制8个LED
方案2、3线--8线译码器输出,用3个I/O口本回答被提问者采纳
第3个回答  2018-01-11
把LED分为2组,每组4个。即A1 A2 A3 A4 B1 B2 B3 B4。

每组的四个LED的负极,串接一个限流电阻,对应接到四个IO口。
另外两个IO口,通过电阻接到两个PNP三极管的基极。集电极接VCC,两个发射极分别作为两组LED的正极。即一个作为A组的正电源,一个作为B组的正电源。
全部零件刚好用完。
相似回答