搜索
bottom↓
回复: 14

刚刚做完的16×16LED点阵滚动显示,为什么点阵能看到闪烁?大街上的显示屏看不到啊?求高

[复制链接]

出0入0汤圆

发表于 2011-8-15 20:19:36 | 显示全部楼层 |阅读模式
#include <reg51.h>
unsigned char const tab[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
unsigned char code digittab[]={
0x18,0x18,0x0C,0x30,0x06,0x60,0x3F,0xFC,0x31,0x8C,0x31,0x8C,0x3F,0xFC,0x31,0x8C,
0x31,0x8C,0x3F,0xFC,0x01,0x80,0x01,0x80,0xFF,0xFF,0x01,0x80,0x01,0x80,0x01,0x80,
0x00,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x1F,0xFE,0x18,0x00,0x18,0x00,
0x18,0x00,0x1F,0xF0,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x30,0x30,0x60,0x30,
0x18,0x00,0x19,0xF8,0x19,0x98,0x19,0x98,0xFF,0x98,0x19,0x98,0x39,0x98,0x3D,0x98,
0x7F,0x98,0x7F,0x98,0xD9,0x98,0x19,0x9B,0x19,0x9B,0x1B,0x1B,0x1B,0x0F,0x1E,0x00,
0x0C,0x30,0x0C,0x18,0x19,0x8C,0x31,0x86,0x63,0xC0,0x06,0x60,0x0C,0x30,0x38,0x1C,
0xE0,0x07,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x18,0x18,
0x3F,0xF8,0x07,0x70,0x01,0xC0,0x3F,0xFC,0x31,0x8C,0x3F,0xFC,0x31,0x8C,0x3F,0xFC,
0x31,0x8C,0x33,0x0C,0x03,0x00,0x7F,0xFC,0x06,0x0C,0x0C,0x0C,0x18,0x78,0x70,0x30,
0x00,0x00,0x00,0x00,0x00,0x20,0x0F,0xC0,0x04,0x80,0x04,0x80,0x04,0xFC,0x3F,0x84,
0x24,0x84,0x14,0x68,0x10,0x08,0x10,0xE8,0x1F,0x18,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x48,0x02,0x98,0x3E,0xA0,
0x02,0xC0,0x02,0x80,0x0E,0x82,0x72,0x42,0x02,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0F,0xC0,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x7E,0x7E,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x48,0x12,0x58,
0x1A,0x50,0x0A,0x60,0x02,0x40,0x02,0x40,0x03,0xFE,0x3C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x78,0x1F,0x80,
0x01,0x00,0x01,0x80,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x38,0x10,0x04,0x00,0x00,
0x00,0x00,0x00,0x30,0x05,0x20,0x04,0x40,0x00,0x48,0x0F,0xBE,0x30,0x88,0x27,0xC0,
0x01,0x00,0x00,0xFC,0x3F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xBC,0x04,0xCC,0x3A,0x84,0x22,0x78,0x1A,0x88,0x22,0x88,
0x22,0xF4,0x3E,0x84,0x20,0x84,0x01,0x04,0x01,0x0C,0x02,0x18,0x04,0x08,0x00,0x00,
0x00,0x00,0x00,0x60,0x04,0x40,0x08,0x70,0x10,0xC0,0x18,0x9C,0x0F,0xE4,0x0A,0xA8,
0x11,0xD0,0x30,0x30,0x50,0xCE,0x12,0x62,0x13,0x08,0x14,0x84,0x10,0x7C,0x00,0x00,
0x00,0x00,0x00,0x30,0x05,0x20,0x04,0x40,0x00,0x48,0x0F,0xBE,0x30,0x88,0x27,0xC0,
0x01,0x00,0x00,0xFC,0x3F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x3C,0x40,0x28,0x78,0x29,0x80,0x2A,0x20,0x2D,0xC0,
0x24,0x30,0x23,0xC0,0x20,0xC0,0x21,0x40,0x22,0x44,0x24,0x3E,0x00,0x00,0x00,0x00};


void delay(unsigned int i)
{
unsigned int j;
for(j=0;j<i;j++);                 
}
void main(void)
{
  unsigned int j=0;
unsigned int q=0;
unsigned char r;
unsigned char t=0;
  P1=0x00;
  P3=0x00;
  while(1)
  {
   for(r=0;r<20;r++)
    for(j=q;j<32+q;j++)
   {
    P2=tab[t];
        P3=digittab[j];
        j++;
        P1=digittab[j];
        delay(150);
        t++;
        if(t==16)t=0;
   }
   q=q+32;
   if(q==480)q=0;
  }
}

这是源程序,求高手解答

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2011-8-15 20:21:03 | 显示全部楼层
回复【楼主位】guyong2012
-----------------------------------------------------------------------

我用的是154译码列选,P1,P3口行选,为什么有闪烁感?是不是用串行口+164 就没有闪烁了???求高手指点

出0入0汤圆

发表于 2011-9-26 23:29:32 | 显示全部楼层
单片机速度不够快吧

出0入0汤圆

发表于 2011-9-27 00:07:09 | 显示全部楼层
LZ点下面的资料。看看我发过的帖子

出0入18汤圆

发表于 2011-9-27 08:41:35 | 显示全部楼层
delay(150);

这个延时的时间改小点,试试。

你主要是扫描速度不够快引起的。

出0入0汤圆

发表于 2011-9-27 09:16:12 | 显示全部楼层
回复【4楼】e315 陈。
delay(150);
这个延时的时间改小点,试试。
你主要是扫描速度不够快引起的。
-----------------------------------------------------------------------

是这个原因,把延时改小,这样不容易变暗。。

或者提高晶振频率,

不过这样亮度会减小。。。

出0入0汤圆

发表于 2011-9-27 09:19:03 | 显示全部楼层
扫描 速度 速度啊   不然肯定会闪滴···

出0入0汤圆

发表于 2011-9-27 17:30:53 | 显示全部楼层
想不闪用定时器软延时吧

出0入0汤圆

发表于 2011-9-27 20:41:43 | 显示全部楼层
回复【5楼】kerrwang1982
回复【4楼】e315 陈。
delay(150);  
这个延时的时间改小点,试试。  
你主要是扫描速度不够快引起的。
-----------------------------------------------------------------------
是这个原因,把延时改小,这样不容易变暗。。
或者提高晶振频率,
不过这样亮度会减小。。。
-----------------------------------------------------------------------

是容易变暗

出0入0汤圆

发表于 2011-9-27 20:46:42 | 显示全部楼层
把每次扫描的时间改短点,然后同一个内容循环多次,没有闪烁的感觉.

出0入0汤圆

发表于 2011-9-29 09:26:11 | 显示全部楼层
闪烁说明扫描速度被肉眼识别了,你就降低延迟不久好了

出0入0汤圆

发表于 2011-10-3 06:44:34 | 显示全部楼层
应该是扫描速度不够快

出0入0汤圆

发表于 2011-10-7 23:39:38 | 显示全部楼层
根据你的源程,主函数这样改看可以吗?
void main(void)
{  
  unsigned int j=0;
unsigned int q=0;
unsigned char r;
unsigned char t=0;
  P1=0x00;
  P3=0x00;
  while(1)
  {
   for(r=0;r<200;r++) //
    for(j=q;j<32+q;j++)
   {
    P2=tab[t];
P3=digittab[j];
j++;
P1=digittab[j];
delay(15); //
t++;
if(t==16)t=0;
   }
   q=q+32;
   if(q==480)q=0;
  }
}

出0入0汤圆

发表于 2012-5-2 16:50:25 | 显示全部楼层
这种点阵的驱动跟大街上的没得比。

出0入0汤圆

发表于 2012-7-21 21:41:00 | 显示全部楼层
不错,但是否做成 单元板的格式,
看看这个, 利用单元板一个个串接而成的, 很方便。
http://bbs.eetop.cn/viewthread.p ... p;extra=#pid7017398
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 17:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表