Chinaunix首页 | 论坛 | 博客
  • 博客访问: 949575
  • 博文数量: 175
  • 博客积分: 2788
  • 博客等级: 少校
  • 技术积分: 2060
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-25 12:25
个人简介

知之者不如好之,好之者不如乐之

文章分类

全部博文(175)

文章存档

2016年(1)

2015年(20)

2014年(8)

2013年(68)

2012年(16)

2011年(35)

2010年(1)

2008年(26)

分类: 嵌入式

2013-11-13 16:22:16

原文:

如何用3个I/O控制8个LED.可以另外加三极管.

这是你的图片:

我很赞同你对技术问题的认真态度.
但我也提出我的看法,楼主的八个指示灯要求是互不相关的,也就是互相独立的.要测试是否能够独立,最简单的办法就是让每一个灯单独的点亮,而让其他所有的 灯都不亮,看能否实现.D1-6是可以的,但是7-12这六个,至少有三个是亮的,1-6改变状态时,7-12将伴随着乱亮,对不对?


6个的话,较容易实现些.
1个LED有两种状态,亮和灭.8个一共有16种状态.
1个I/O口静态只有三种状态,高、低和高阻态.3个I/O静态只有9个状态,无法控制16个状态.因此要想简单控制,是无法做到的,特殊方法下,可以做到,但电路会复杂.
下图是3个控制6灯,低,上灯亮,高下灯亮,高阻灯灭.




这个3控6个LED ,这个4控8个LED.这个电路会好些.


赞同这种分析,其实,这种接法的另一个问题是对程序的消耗很大,端口一会为高,一会为低,一会又为高阻,而且很难找一个规律,虽然也是动态扫描,但是这种扫描要比138的扫描复杂得多,大家只是把它作为一种方法来分析探讨而已,不具备适用价值.
其实,就是采用138,也不是什么好办法,我认为最好的办法是采用4094或者是74LS164,也可以用595,占用端口很少,器件级联时端口数还可以无限扩展,程序的压力会大大减轻,而且由于是静态显示,亮度也会大大提高.

阅读(1302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~