szbaoqing 发表于 2007-4-14 20:03:33

12位LED动态显示,软件如何处理!?

我现在用128控制12位LED,我目前采用的是动态扫描方法,具体方法是:定时器每16毫秒产生一次中断,在此中断里,刷新12位数字.这样可以顺利的实现动态扫描,但是亮度不够,如果把刷新频率提高,比如每10毫秒产生一次中断,刷新12位数字,这时候亮度就有很大变化,但是因为我的CPU还有其他很多事情要做,这样每10毫秒一次中断,刷新12位LED占用的时间最少为6毫

秒,这样每10毫秒就被显示占用了6毫秒,我只有4毫秒的时间做其他事情,影响其他硬件的操作!

另外我采用马老师的方法,每次中断只刷新一位,也是遇到同样问题,显示占用时间很多!

请教马老师,能有什么比较好的办法,处理这个问题呢!让显示占用的时间尽可能的少!谢谢!

machao 发表于 2007-4-14 21:14:54

请参考我的讲义第8章中的例子吧。看来你还是没有掌握真谛,或只看了第6章的例子(因为没有介绍T/C的使用,所以这章中的例子使用了软件延时,但不是正确的方法,讲义中已经说明过)。我控制16位的LED数码管,照样有的充足时间做其它事。



“每10毫秒一次中断,刷新12位LED占用的时间最少为6毫秒,这样每10毫秒就被显示占用了6毫秒,我只有4毫秒的时间做其他事情”是那些51垃圾书的办法!



正确思路:你每2ms中断,点亮其中一位(只需要几个us),点亮即可,不要等待,马上去做其它事。下一个2ms中断,再点亮另一位.......



这样,每个LED亮2ms,在亮的同时,你的MCU在做其它的事情。
页: [1]
查看完整版本: 12位LED动态显示,软件如何处理!?