多LED数码管驱动方法
最近有朋友问我,他的项目里面有一个多达300位8段数码管要驱动,问有什么好的办法,只用单片机动态扫描的办法来实现。
老实说,我现在似乎觉得还有点问题,因为人的视觉反应是100MS,即使我采用1MS定时扫描,那么280位下来也有280MS了,可能觉得闪烁的厉害了。但是如果把定时时间做的再短的话,单片机中断的频率太高,可能其他的任务又要出错了。
不知道大家有没有好的主意,或者采用一些特殊的器件来管理它??
1.一个主CPU,多个子CPU动态扫描。
主CPU通过通讯线将数据送入子CPU
现在51CPU比8255之类的芯片便宜,同意多COU方案
2.如果可用静态方式就很简单,很多利率牌都是这样。
用类似164的移位寄存器,一块移位寄存器接一块LED。
不管有几白块,LED间的连线都只有三根,可扩充性非常好。
clk ---|~~~|---|~~~|---...---|~~~|---...---|~~~|--- clk
data ---|---|---|---|---...---|---|---...---|---|--- data
clr ---|___|---|___|---...---|___|---...---|___|--- clr
上面的示意应该清楚,数据传输可用串口。clk是时钟信号,多块LED的clk是接在一块的,clr是清除端,也是多块LED接在一块的,data 是数据,多块LED是级联性的。
移位+锁存, 就不闪了。
简单点说,整个显示系统可视为一个大型的移位寄存器。
3.不过就利率牌说一下。
利率牌的LED输出有多路,有一路接口是专门用于时间显示用的,位数很少,频繁度不高,感觉还好,其它几路数据变化不大。设计成多路输出的方法很可取,很值得参考。如果要求比较高的话,那可能只有增加一些协处理器了。
4\1XC51+15XHC573+20XNPN
5.完全数字电路实现LED驱动问题.
如果规模大的话,用CPLD 7000系列的就可搞定了,成本也不高的啦!!
6.分组扫描例如:用共阳的LED,10组,每组用一个PNP控制电源,每组分别用164串30个LED。
7. 分组扫描,595行扫,用TIP系列的达林顿进行列扫,几百位没问题
8.动态扫描方案
如果使用串行方法,需要300个芯片,数量太多,采用动态显示可以使用的芯片比较少,只需要一个51系列的普通单片机,几个片选芯片做成的片选逻辑,41个锁存芯片和几个功率稍微大一些的三极管,以及大约40*8个普通三极管,可以控制320个8段数码管,方案很简单,调整亮度依靠电阻。扫描频率取决于你的整个系统的大小,一般都够用。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。