请教LED点阵显示流动原理
最近在用protues仿真LED点阵现在静态显示可以了
隔行扫描方式,如下图
采用4个8x8点阵,显示数字
现在想让文字流动,也就是图中的“2345”四个数字从右向左移动,看了一些资料但还是有点晕
望高手指点一二!!
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_284542.gif
(原文件名:Image00000.gif) 就是将你要显示的字符的第一个点去掉,作后面再将下一屏的第一个点补到最后
类似:假设你发送数据的时候是最高位在先,数据由右往左发送,第一个字符原来是zi0的数据,现在变成了zi0<<1 | zi1>>7,然后整屏都这么操作一下即可!
zi0<<1将zi0的最高位移出
zi1>>7将zi1的后面7位移出,即将最高位移到最低位
然后移完的2个数据相或即可 查表时,每显示一个字产生一个地址偏移 我也在晕中,没看明白上面说的,能否讲详细点阿?要是我用573控制一个数码管,要流动的话好像每个数字在自己的管里移但不会移到前面的数码管里,这个怎么实现?高手赐教! 在内存里面开个显示缓冲区,移位的时间到了就把缓冲区里面的数据都往左或者右移动一位。移位的过程中要注意,假设是从右往左移动,下一个字的最高位要移动到前一个字的最低位上去,实现方法有很多种。一种是先将左边的字符点阵数据左移一位,接着判断下一个字符点阵数据的最高位是否为1,为1就把它补到前面已经左移的点阵数据的最低位去,如果为0就不用处理。 谢谢各位
我再研究研究~~ MARK 学习了 ./emotion/em002.gif 简单点zi0<<1 | zi1>>7 就是把zi0高位丢掉空出低位 和zi1的最高位组合成新的zi0 状态的方式
个人认为 用到二个138 或者是一个154就可以控制了。。。。
难后用中断来扫描就可以了,,还有就是要调好中断的时间,也就是扫描的时间,让人眼分辨不出来就可以有流动的效果了,试试吧。。要多练你一定成功,相信自己!!!! 我已经成功的做了一个16X64的点阵。O(∩_∩)O哈哈~ 自学LED点阵攻略
temp=(h1<<tempcol)|(h2>>(8-tempcol)); //实现左移
能不能解释一下这句,没有想明白,不胜感激! 如果RAM允许,开一个比较大的缓存, 实现左右移动是很简单的, 就是用溢出的方法就可以实现
谢谢各位了,一直在考虑这个问题,今天长见识了!很久了都没办法让它左右移动!晚一下试试 我玩过一阵,就是2楼说的代码这能搜索到的 tempcol是移动速度,h1左移tempcol位,后面用h2左移8-tempcol补上,依次左移,直到当前行结束。
页:
[1]