梦的飞翔 发表于 2012-4-12 11:25:53

8x8点阵,请问如何消除其余部分微弱的灯光?



除了被点亮的部分,其余未被点亮的部分怎么么会有微弱的灯光,怎么消除不了,昨天整了一整个晚上还是没有整出来

babysnail 发表于 2012-4-12 11:34:02

是鬼影, 什么ic的,查一下有没有CS,关一下试一下

dianzichina 发表于 2012-4-12 12:08:11

那个不是微弱的灯光,也不是神马鬼影,不过是旁边的光亮照在上面的反射而已。

zengdz 发表于 2012-4-12 12:25:40

是旁边的照射的吧

fwluck 发表于 2012-4-12 12:26:20

时序不对。

caiseyuzhou 发表于 2012-4-12 12:35:07

是旁边的照的,

784956936 发表于 2012-4-12 12:53:40

是鬼影,其实没亮

lawdown 发表于 2012-4-12 12:57:48

你把亮度调低点,看看周围的还亮不{:tongue:}

longwu911 发表于 2012-4-12 13:02:00

是什么驱动的点阵

梦的飞翔 发表于 2012-4-12 13:28:15

longwu911 发表于 2012-4-12 13:02 static/image/common/back.gif
是什么驱动的点阵

用的是两个74HC5730的锁存器控制

梦的飞翔 发表于 2012-4-12 13:29:10

lawdown 发表于 2012-4-12 12:57 static/image/common/back.gif
你把亮度调低点,看看周围的还亮不

这个8*8的点阵没有调节亮度的电位器

梦的飞翔 发表于 2012-4-12 13:29:58

784956936 发表于 2012-4-12 12:53 static/image/common/back.gif
是鬼影,其实没亮

这种情况应该怎么样来消除???

梦的飞翔 发表于 2012-4-12 13:31:33

caiseyuzhou 发表于 2012-4-12 12:35 static/image/common/back.gif
是旁边的照的,

不可能全都被照亮了吧!除去这几个亮的外,其余的都有微弱的光

梦的飞翔 发表于 2012-4-12 13:32:45

fwluck 发表于 2012-4-12 12:26 static/image/common/back.gif
时序不对。

怎么样来把时序改动一下,我的理解控制这个应该和控制发光二极管使差不多的,好像与时序的关系不大额

erxun 发表于 2012-4-12 13:54:58

上面有人都说了,时序不对。

换字型码的时候,而列控制还是上一个字符的,有个很短暂的重合~~~

梦的飞翔 发表于 2012-4-12 15:12:30

babysnail 发表于 2012-4-12 11:34 static/image/common/back.gif
是鬼影, 什么ic的,查一下有没有CS,关一下试一下

这是我的源代码,搞了很长的时间还是没有解决掉,不知道问题出在哪里了?

#include <reg52.h>
#define uchar unsigned char
#define uintunsigned int
sbit wela=P2^7;
sbit dula=P2^6;
sbit diola=P2^5;
void delay(uint z)   //延时子程序
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
   }
void main(void)   //主程序
{

        while(1)    //重复遁环
                {
                        P0=0xff;                //清零
                        diola=1;
                        dula=1;
                        wela=1;
                        P0=0xff;
                        diola=0;
                        dula=0;
                        wela=0;

                        diola=1;
                        P0=0x01;
                        diola=0;
       
                        dula=1;       //第1列
                        P0=0xe7;
                        dula=0;
                        delay(3);
       
                        diola=1;
                        P0=0x02;
                        diola=0;

                        dula=1;       //第2列
                        P0=0xdb;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x04;
                        diola=0;

                        dula=1;       //第3列
                        P0=0xbd;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x08;
                        diola=0;

                        dula=1;       //第4列
                        P0=0x7e;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x10;
                        diola=0;

                        dula=1;       //第5列
                        P0=0x7e;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x20;
                        diola=0;

                        dula=1;       //第6列
                        P0=0xbd;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x40;
                        diola=0;

                        dula=1;       //第7列
                        P0=0xdb;
                        dula=0;
                        delay(3);

                        diola=1;
                        P0=0x80;
                        diola=0;

                        dula=1;       //第8列
                        P0=0xe7;
                        dula=0;
                        delay(3);

                }

}


p4s5j6 发表于 2012-4-12 15:54:42

曾经做过数码管出现过鬼影,后来解决了,时序原理应该是这样:段变,显开,延时,显关。   

xiaoziwen 发表于 2012-4-12 15:59:06

每次输出断码前 先关闭所有列

中国人 发表于 2012-4-15 14:17:14

这个是消影问题,你要知道你用的是573,是一个“锁存器”来的,所以即使你关闭了使能端,但数据还是被锁存在锁存器中,当你下次再打开使能端的时候,在你送入新的数据的时候,由于上次的数据还保存着,所以此时会在极短的时间还会输出,是二极管发光,最好是在显示完一次后就将573清零,然后再送下一次要显示的数据。做过了很多不同器件控制的点阵,经常这些问题都是由于时序引起的,所以要多注意语句的顺序和控制元器件的使能和关闭

wgm_123 发表于 2012-4-16 18:09:19

楼上应该是正解

zyyn123 发表于 2012-4-16 19:22:51

如17楼所说,你输入每列数据之后,延时显示一会,然后加入一个关闭显示的命令。亮--延时--灭。你的程序中好像没有看到“灭”的这部分程序。

TigerZ 发表于 2012-4-16 19:42:40

是消隐的问题,即在下一次显示的时候先灭一次前一次显示的图像
这个问题之前也困扰了我很久

梦的飞翔 发表于 2012-4-16 21:23:54

zyyn123 发表于 2012-4-16 19:22 static/image/common/back.gif
如17楼所说,你输入每列数据之后,延时显示一会,然后加入一个关闭显示的命令。亮--延时--灭。你的程序 ...

原来如此,我说怎么回事呢。

airfex 发表于 2012-4-16 21:28:49

中国人 发表于 2012-4-15 14:17 static/image/common/back.gif
这个是消影问题,你要知道你用的是573,是一个“锁存器”来的,所以即使你关闭了使能端,但数据还是被锁存 ...

学习一下,原来573还要这样用。

苦行僧 发表于 2012-4-16 21:43:02

我觉得是旁边的光的原因吧

lxa0 发表于 2012-4-16 21:45:33

梦的飞翔 发表于 2012-4-16 21:23 static/image/common/back.gif
原来如此,我说怎么回事呢。

19楼朋友的是正解

我再给你说细点:
先把你要显示的第一个数据送出去
让573的LE进行锁存
这时候点阵就会发光
然后延时0.5~1mS
再把关闭显示的数据送出去
让573再次锁存
点阵就被关闭不亮了
这时不要延时了
立即送出下一个要显示的数据
再让573锁存
。。。。。。
直到送完全部显示数据
这样就基本消除了“鬼影”

lxa0 发表于 2012-4-16 21:46:02

airfex 发表于 2012-4-16 21:28 static/image/common/back.gif
学习一下,原来573还要这样用。

573的用法还有很多。。。

wye11083 发表于 2012-4-16 22:21:37

个人觉得延时太浪费时间,不如做个循环函数,每跑一圈就输出一行,之后立刻返回。这样既不影响时间,又不影响任务。我用FX2做异步通信就是这样的,效率提高了N倍。

guozaizb 发表于 2012-4-22 10:20:37

受教了。

goolloo 发表于 2012-4-22 10:50:50

这个问题在数码管中应该就要研究过了

armok 发表于 2012-4-24 10:27:47

页: [1]
查看完整版本: 8x8点阵,请问如何消除其余部分微弱的灯光?