打印

用单片机驱动1000个74HC595,控制8000个LED的亮灭,可行不?

[复制链接]
12735|53
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oldcat8999|  楼主 | 2009-2-20 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hab2000| | 2009-2-20 10:00 | 只看该作者

强人!

8000个!1000片!
耗电多大?
延时多大?
抗干扰如何处理?
要多大的PCB板子啊?
一旦出现问题如何维修?
建议模块化设计,多机控制也许才是正道!
不光只考虑是否可以实现,还要考虑后期维护。

使用特权

评论回复
板凳
oldcat8999|  楼主 | 2009-2-20 10:22 | 只看该作者

回楼上

回楼上:
领导要求控制8000个,我也没办法。
耗电不是大问题,因为8000个LED同时只有1-2个亮,而且595是CMOS工艺。
这个东西在室内使用,没有明显的高压、大电流干扰,所以我认为干扰问题不会太大。
出问题维修还没考虑,因为得出个样品给领导看看。
多机控制不错,但成本?
后期维护? 先把前期的钱挣到手吧,哈哈。

不知道我的这个方案行不行啊?大家帮忙看看,特别是做过类似东西的朋友给点意见。

使用特权

评论回复
地板
mohanwei| | 2009-2-20 11:03 | 只看该作者

可以,但是需要解决复位、锁存等并联引脚的驱动

点LED没问题,别拿去搞继电器控制什么的就行了。

使用特权

评论回复
5
awping| | 2009-2-20 11:46 | 只看该作者

对单片机速度要求快一些

应当没问题的  不过单片机输出口要处理和保护,带个三极管什么的再给595
这么长一串,PCB就很难搞,延迟、干扰。。。。。。

使用特权

评论回复
6
machunshui| | 2009-2-20 11:50 | 只看该作者

SCK引脚一定要加驱动

SCK引脚一定要加驱动

使用特权

评论回复
7
oldcat8999|  楼主 | 2009-2-20 12:04 | 只看该作者

回复 mohanwei

你说的对,复位、锁存我肯定通过一个三极管来驱动高低电平,否则负载电容太大,单片机的IO驱动不了。

使用特权

评论回复
8
McuPlayer| | 2009-2-20 12:16 | 只看该作者

做个猜测,8000个串起来用会发生什么?

8000*8个CLK数据才能到位,哈哈哈
串联不用考虑输入电容的问题

使用特权

评论回复
9
HWM| | 2009-2-20 12:28 | 只看该作者

我好奇的是画出的板子肯定是“相当的壮观”。

使用特权

评论回复
10
forthlab| | 2009-2-20 12:50 | 只看该作者

建议用多个LED矩阵,由主CPU控制

这么做成本低,调试,维护方便.扩充简单.

比如;
1个LED矩阵式16*16的,由1个CPU控制.
32个矩阵可以控制8096个LED.
有1个主控CPU,和矩阵CPU采用2线通讯,所有的通讯端口并联.
每次发1个指令(2byte),可以点亮或熄灭1个LED.因为实际动作的LED数量很少,所以不存在控制延时.

数据格式(16bit)
亮/暗:          1bit
矩阵号:         7bit(0-127)
选中的LED在矩阵中的行:       4bit(0-15)
选中的LED在矩阵中的列:       4bit(0-15)

使用特权

评论回复
11
mxh0506| | 2009-2-20 13:05 | 只看该作者

分块做比直接控制8000个LED要容易得多

更重要的是工作性能和可维护性好
想想看:如果1000片74HC595里坏一片你怎么找
要是坏两片,三片……呢?
1000片就是都看一遍也要不少时间吧

使用特权

评论回复
12
oldcat8999|  楼主 | 2009-2-20 13:24 | 只看该作者

回复: HWM

HWM:

壮观? 呵呵,应该会比较壮观吧。
这个东西是这个样子的: 我肯定不会在一块PCB上完成8000个LED,而是做成若干小PCB,比如一块PCB上有8个LED,这些PCB通过接插件连接起来,组成8*1000=8000,或者16*500=8000,或者。。。。,总之是由很多PCB组成的,这也是595级联的好处,而且可以根据需要随时增加或者减少LED。 

使用特权

评论回复
13
mohanwei| | 2009-2-20 13:26 | 只看该作者

仔细算一下,可行性肯定没问题的,就算9600bps

8000个LED才8Kbit,1秒钟不到就可以完成一遍刷新了。如果板子设计得好一点,能用上同步串口,那刷新速度更不在话下。

使用特权

评论回复
14
mohanwei| | 2009-2-20 13:27 | 只看该作者

检测更是简单的不得了,一个流水灯下去……

而且完全可以按8个LED一组往下扫描。一看到哪个地方没了就知道问题所在了

使用特权

评论回复
15
oldcat8999|  楼主 | 2009-2-20 13:27 | 只看该作者

回复 forthlab

forthlab :
你的想法很好,我开始也打算这么做的。
但这样似乎有些问题:8000只是一个估算的数字,实际情况可能不是8000,而且可能要根据客户要求增加或者减少LED。
如果使用矩阵的方法,可以节省一些成本,但系统的灵活性就差了,想要增加或者减少LED就很麻烦。
所以,我目前找到的最好方法就是595的级联。

使用特权

评论回复
16
oldcat8999|  楼主 | 2009-2-20 13:32 | 只看该作者

回复 mxh0506

mxh0506:
你说的没错,我肯定要分段,比如1000块PCB,每块上有一片595和8个LED,PCB之间通过接插件连接,1000个这样的PCB就完成了控制8000个LED的功能,而且出问题的时候很容易查找。

使用特权

评论回复
17
oldcat8999|  楼主 | 2009-2-20 13:35 | 只看该作者

回复 McuPlayer

McuPlayer:
除了SDA外,SCL、锁存、输出使能等信号还是得考虑负载电容的,应该用三极管来驱动。

使用特权

评论回复
18
wangkj| | 2009-2-20 14:20 | 只看该作者

分成80个子版,每个子版用74hc245驱动一下

每个子版100个led.这样应该问题不大。
不过,刷新率肯定上去。

用单片机太差,应该用cpld,至少用个arm。

使用特权

评论回复
19
oldcat8999|  楼主 | 2009-2-20 14:31 | 只看该作者

回复 wangkj

wangkj:
哪里用刷新啊? 595不用刷新,输出锁存的,而且有输入输出使能。

使用特权

评论回复
20
wangkj| | 2009-2-20 17:15 | 只看该作者

我说的刷新是指的数据更换

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

183

帖子

2

粉丝