打印

点阵LED移动显示汉字,视觉暂留问题

[复制链接]
5569|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyq165|  楼主 | 2015-3-26 10:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
做了一个点阵16*16LED显示,需要让汉字不断左移移出屏幕。
80ms左右整体左移一位,移动的时候发现看着会晕。
老板说这是重影,要求看着不晕。但是我认为这是视觉暂留,不是重影。
想问下有做过类似的坛友,这问题是否有解决之道?我想了很多办法,但是都没用,除了将左移的速度降低,但是太慢了,会觉得是一跳一跳地再移,不合适。

相关帖子

沙发
ayb_ice| | 2015-3-26 10:32 | 只看该作者
关键是刷新率,

移动显示,刷新率太低肯定不行的

使用特权

评论回复
板凳
松翰ic软件开发| | 2015-3-26 12:51 | 只看该作者
这种屏要想做的效果好看,必须增加分辨率,或者离远点看效果才好.还有可以用直径比较小的点阵屏效果也会比较好.

千瑞科技松翰单片机一级代理,免费快速软硬件开发.
QQ : 373085897

使用特权

评论回复
地板
teddeng| | 2015-3-26 13:25 | 只看该作者
楼主用的什么驱动方式,驱动电路是自己搭的还是用的专用芯片,驱动方式不一样问题不一样。

使用特权

评论回复
5
wyq165|  楼主 | 2015-3-26 13:30 | 只看该作者
teddeng 发表于 2015-3-26 13:25
楼主用的什么驱动方式,驱动电路是自己搭的还是用的专用芯片,驱动方式不一样问题不一样。 ...

595级联

使用特权

评论回复
6
teddeng| | 2015-3-26 13:33 | 只看该作者

多少个595?16个可以实现,4个也可以实现,处理完全不同,想问问题你倒说清楚啊?

使用特权

评论回复
7
wyq165|  楼主 | 2015-3-26 14:13 | 只看该作者
teddeng 发表于 2015-3-26 13:33
多少个595?16个可以实现,4个也可以实现,处理完全不同,想问问题你倒说清楚啊? ...

18个8*8点阵    11个595, 9个控制列数据  2个控制行数据。  

使用特权

评论回复
8
ayl439| | 2015-3-27 08:18 | 只看该作者
mark!

使用特权

评论回复
9
逍遥派掌门| | 2015-3-27 10:47 | 只看该作者
80ms这个,搞成可调整的,通过测试进行确定。

使用特权

评论回复
10
wyq165|  楼主 | 2015-4-2 15:03 | 只看该作者
问题解决,
刷新率跟移动位添加速度有关,目前我做成同步。
如一帧扫描16行。显示驱动中断内,1ms中断1次,那么16ms(一帧)完毕后,立刻左移一位,目前速度刚刚好,实现了我的要求,所以其它的没有再做深入。

使用特权

评论回复
11
Landon| | 2015-5-6 09:57 | 只看该作者
wyq165 发表于 2015-4-2 15:03
问题解决,
刷新率跟移动位添加速度有关,目前我做成同步。
如一帧扫描16行。显示驱动中断内,1ms中断1次 ...

lz,你移动显示放在那里的啊?中断里么?我放在主函数里的,感觉太吃CPU了,只要一执行移动显示,其他任务就卡起了。

使用特权

评论回复
12
中国微电脑网| | 2015-5-6 10:09 | 只看该作者
我也做了一款四个字整体移动的,也有这种现象。但是看起来亮度高一点。

使用特权

评论回复
13
wyq165|  楼主 | 2015-5-6 11:34 | 只看该作者
Landon 发表于 2015-5-6 09:57
lz,你移动显示放在那里的啊?中断里么?我放在主函数里的,感觉太吃CPU了,只要一执行移动显示,其他任务 ...

不卡啊,不要用Delay这类就行了

使用特权

评论回复
14
wyq165|  楼主 | 2015-5-6 11:44 | 只看该作者
中国微电脑网 发表于 2015-5-6 10:09
我也做了一款四个字整体移动的,也有这种现象。但是看起来亮度高一点。

我测试出,刷新和左移时间比 1:16,显示就没有那种现象了。
比如你每1ms动态扫描一次,因为我的点阵要显示一个汉字16*16,所以扫描16行以后,就要整体左移一位。
我测试时只有这个点是可以让点阵完美移动的,跟单片机速度无关。
但是这样子有个不好,刷新率高,移动也就快了,所以这不是最终解决方法。

使用特权

评论回复
15
jacklee8| | 2015-5-6 15:25 | 只看该作者
推荐一个专用IC,性能稳定可靠,需要详细资料、样品可以联系QQ:3247925842。

概述
TA1670 是一种 4 通道的 LED  驱动控制专用电路,主要应用在 LED  大屏
幕显示模组驱动电路上,功能集成 74HC245D,74HC138D  及 4953  等芯片,同
时集成输出保护功能(无需 74HC04D) ,能配合 TM74HC595 完成显示功能,
简化原有驱动电路结构方式,芯片内置上拉和下拉电阻,使在 PCB 布线上更简
洁,性能更加可靠、稳定。
特性说明
  采用 CMOS工艺,4 个 4A电流源输出通道,适用于 P10  板(1R,32X16)
  内置 500KHz 的时钟振荡器
  GEI 外部使能控制输出
  在 16mS AI 不更新数据时看门狗自动关闭P0-P3 的输出
  CLKI、LEI 输入内置上拉电阻,POMS输出内置下拉电阻
  封装形式:HSOP28

使用特权

评论回复
16
Landon| | 2015-5-6 15:50 | 只看该作者
wyq165 发表于 2015-5-6 11:34
不卡啊,不要用Delay这类就行了

我是这样做的的移动。每移位一次就刷新。
//左移显示函数:
void P10DisplayLeftMobile(unsigned char x,unsigned char num,const unsigned char *p)
{
    //x-左移动终点的位置,从0开始;num-汉字个数;p-汉字点阵数组
    unsigned char i, j, k, l, m, len;
    for(k=0;k<num;k++)//汉字个数
    {
        for(j=0;j<16;j++)//一个16*16点阵的汉字要移16位,每移完一位后显示缓冲区的数据
        {
            for(m=x;m<N-1;m++)//对缓冲区里的汉字点阵数据左移处理
            {
                for(i=0;i<16;i++)//移完32字节
                {
                    //左边字节左移一位,右边字节的最高位补上
                    buf[m*32+i]=(buf[m*32+i]<<1)|(buf[m*32+i+16]>>7);
                    //前字右边字节左移一位,下一个汉字的左边字节的最高位补上
                    buf[m*32+i+16]=(buf[m*32+i+16]<<1)|(buf[(m+1)*32+i]>>7);
                }
            }
            for(i=0;i<16;i++)//将显示汉字逐个移入最后一个缓冲区
            {
                buf[(N-1)*32+i]=(buf[(N-1)*32+i]<<1)|(buf[(N-1)*32+i+16]>>7);//
                if(j<8)
                    buf[(N-1)*32+i+16]=(buf[(N-1)*32+i+16]<<1)|(p[k*32+i]>>(7-j));//移入汉字的左半边
                                 else
                     buf[(N-1)*32+i+16]=(buf[(N-1)*32+i+16]<<1)|(p[k*32+i+16]>>(7-j%8));//移入汉字的右半边
                        }
            for(l=0;l<MS;l++)//这部分最好放在定时中断函数里
            {
               
                P10DisplayBufDat();//显示缓冲区的数据
                if(ENableKey){ENableKey=0;return;}
            }
        }
    }
}

使用特权

评论回复
17
csust_omega| | 2015-5-6 17:31 | 只看该作者
板凳说得对

使用特权

评论回复
18
中国微电脑网| | 2015-5-6 19:13 | 只看该作者
jacklee8 发表于 2015-5-6 15:25
推荐一个专用IC,性能稳定可靠,需要详细资料、样品可以联系QQ:3247925842。

概述

驱动16个8X8模块(4个汉字)需要多少块TA1670和其它元器件?

使用特权

评论回复
19
中国微电脑网| | 2015-5-6 19:14 | 只看该作者
目前用的max7219.

使用特权

评论回复
20
jacklee8| | 2015-5-6 21:23 | 只看该作者
你用max7219驱动16个8X8模块(4个汉字)应该要16个max7219吧。如果你是用max7219的话可以用我们的TM1629  16X8段LED驱动了,类似于max7219了,那就只需要8个,而且价格也便宜。如果用专用LED点阵看板的芯片TA1670,应该主要1个TA1670,8个TM595吧就可以实现。如果需要可以联系QQ:3247925842交流

使用特权

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

本版积分规则

40

主题

358

帖子

7

粉丝