多LED数码管驱动方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多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段数码管,方案很简单,调整亮度依靠电阻。
扫描频率取决于你的整个系统的大小,一般都够用。
关于LED上拉电阻测试结果
测试条件:
VCC=4.96V,φ3绿色发光二极管。
二极管正极接VCC,负极通过RL接地。
没有进行更大的电阻测试,因为我的万用表电压档内阻为10M。
RL VLED VRL 电流亮度
----------------------------
1K 1.93V 3.03V 3mA 很亮
5K 1.82V 3.14V 0.6mA 比较亮
100K 1.66V 3.30V 33uA 微亮
3.3M 1.51V 3.45V 1.0uA 不亮
10M 1.42V 3.45V 0.3uA 不亮
----------------------------
通过以上测试可以看出,发光二极管即使有很小的电流时,在LED的压降也是很明显的。
这也符合发光二极管的特性曲线。
所以,如果与发光二极管驱动的下一级内阻要是比较小(小于10M)的话,那么其输出必然是3V左右。
当然如果使用的前级驱动电路有内部上拉(如PCF8574T内部有100uA若上拉,51的P1或P2,P3口等)则另当别论。
所以我说如果这样用最好并联一个10K的电阻。