圣源电子制作

标题: 595灰度LED显示实现方式-74HC595控制LED亮度-灰度实现 [打印本页]

作者: sydz    时间: 2011-11-12 11:49
标题: 595灰度LED显示实现方式-74HC595控制LED亮度-灰度实现
转载互联网!!!
1.影响明暗比的因素

亮度:对于LED显示屏,点的亮度值对应于有效的显示时间,由列的打开时间来实现的。

明暗比,又称对比度,是指LED显示屏最高显示亮度和最低显示亮度的比值,用B表示。

明暗比B = 最大亮度/非零最小亮度

    灰度数=单色色阶,LED显示屏最多可同时显示的不同亮度数。

显示频率:显示非零最小亮度时,发光管每秒点亮的次数。对于用户来说,显示频率越高,屏的视觉稳定性越强;显示频率越低,屏的视觉稳定性越差,即显示屏看起来会有闪烁和抖动的现象。对于设计人员来说,所有的灰度等级都是在一个显示周期内实现的。而对于采用了扫描的显示方式,则显示周期被分为几个扫描等份而成为灰度周期。那么所有的灰度等级都是在一个灰度周期内实现的。即

灰度周期=显示周期/扫描数=1/(显示频率×扫描数)

    提高明暗比的原则是:在一个灰度周期内,一方面是使最大亮度的时间尽可能地接近于整个灰度周期,即需要亮度效率尽可能的大,即:

亮度效率=最大亮度/灰度周期;

另一方面是使非零最小亮度的时间尽可能的短,即列的开关时间尽可能的小。

2.用595芯片如何实现灰度控制

    使用595芯片作为列控芯片可以实现一定的灰度控制。595芯片为串并转换芯片,具有一个输出使能端,当使能端无效时,并行输出端不输出数据;当使能端有效时,并行输出端才输出数据。因此,通过对使能信号的控制可以改变列输出的占空比,因而实现更高的灰度等级。

    在此,实现灰度等级的因素为串移周期和显示权重。

    由于最小的输出变化周期内需要完成一次串移,因此当一个系统被确定后,串移周期也就被唯一确定。

串移周期t串移= 串移时钟周期×串移链长度

    但是,在一个灰度周期内进行串移,串移的次数越多可实现的灰度等级就越高。

    串移次数n=灰度周期/串移周期t串移

    即:灰度周期=t串移

3.解决方案

    我们可以采用几种附加显示权重的方法来实现不同品质的灰度等级,从中找出最为合理有效的解决方案。

方案一
    有效显示时间t显示=bitn× t串移+ bitn-1× t串移+ bitn-2× t串移+……+ bit1×t串移
    此时,串移次数为n;OE在一个有效显示时间内全部为有效,即显示权重都为t串移;要达到最大亮度,则需要每个bit都取值为1,得到
最大亮度=n t串移
    由于显示权重都为1×t串移,要达到非零最小亮度,需要n-1个bit的取值为0,只有一个bit的取值为1,得到
    非零最小亮度= t串移
明暗比=最大亮度/非零最小亮度= n t串移/t串移= n

又∵灰度周期= n t串移

∴  亮度效率= 最大亮度/灰度周期=1

分析
    此方案的亮度效率虽然为100%,但是明暗比很低,经过几次串移才能达到几级灰度,因此该方案不是一个好的方案。
    方案二

    有效显示时间t显示=bitn×t串移+bitn-1×?t串移+bitn-2×?t串移+……+bit1×(1/2n-1t串移

    这里,n为串移次数,每个bit串移一次。但是每个bit的显示权重各不相同,分别为t串移、?t串移、?t串移……(1/2n-1)t串移。OE在一个有效显示时间内根据不同的显示权重设为有效;要达到最大亮度,则需要每个bit都取值为1,得到

最大亮度=[1+?+?+……+1/2 n-1] t串移=[2 n-1/2 n-1] t串移
由于显示权重各不相同,要达到非零最小亮度,只有最后一项bit1×(1/2 n-1)t串移的显示权重(1/2n-1)t串移最小,因此bit1的值为1,其他bit值都取0,得到
非零最小亮度=1/2 n-1t串移
∴  明暗比 = 最大亮度/非零最小亮度={ [2 n-1/2 n-1] t串移} / [1/2 n-1t串移] = 2 n-1
∵  灰度周期= n t串移
    最大亮度= [(2 n-1)/2 n-1] t串移=(2-1/2 n-1)t串移≈2t串移
∴  亮度效率= 最大亮度/灰度周期2/n
分析
    此方案的明暗比很高,但是亮度损失也很高,亮度效率随着n值的增加而迅速降低,因此,此方案不可取。

    方案三

    设串移次数为n,共有K个bit,则

K个bit

串移次数

每次串移中OE的有效值

bitK

2Q次

1

bitK-1

2Q-1次

1

……

bitK-Q

1次

1

bitK-Q -1

1次

1/2

bitK-Q-2

1次

1/4

……

bit1

1次

1/2K-Q-1

    得到:
有效显示时间t显示=bitK×2Q t串移+bitK-1×2Q-1 t串移+……+bitK-Q×t串移+bitK-Q-1×?t串移+bitK-Q-2×?t串移+……+bit1×(1/2 K-Q-1t串移
    这里,每个bit显示权重为该bit的串移次数×每次串移中OE的有效值×t串移,分别为2Q t串移、2Q-1 t串移、……(1/2 K-Q-1 )t串移;不同bit的显示权重各不相同,但是相同bit可能有多次串移;OE的有效值如上表所示。
    要达到最大亮度,则需要每个bit都取值为1,所以最大亮度={2 Q+2 Q-1+……+1+?+?+……+1/2 K-Q-1]}t串移=[2 K-1/2 K-Q-1]t串移
    要达到非零最小亮度,只有最后一项bit1×(1/2 K-Q-1)t串移的显示权重(1/2 K-Q-1)t串移最小,因此bit1的值为1,其他bit值都取0,得到非零最小亮度=1/2 K-Q-1t串移
则,
明暗比 = 最大亮度/非零最小亮度={[2K-1/2K-Q-1]t串移}/{1/2 K-Q-1t串移}=2K-12 K
    串移次数n = 2 Q+2 Q-1+……+1+1+……+1=2 Q+1+K-Q-2
                    2Q+1-1       K-Q-1

∵  灰度周期= n t串移=(2 Q+1+K-Q-2)t串移

∴  亮度效率= 最大亮度/灰度周期={ [2K-1/2K-Q-1]t串移}/{2Q+1+K-Q-2t串移}

            =2K-1/ [2K-Q-12Q+1+K-Q-2]

显示频率  =1/(灰度周期×扫描数)

=1/(串移次数n×串移周期t串移×扫描数N

=1/(串移次数n×串移时钟周期×串移链长度×扫描数N

=1/[2Q+1+K-Q-2×串移时钟周期×串移链长度×扫描数N]

1.1.1  

1.1.2     采用方案三的实例分析:

    通常对于双色系统,每色8个bit,即K=8时,明暗比≈2K =256,能够满足灰度显示的要求。因此通过对Q的取值,可以找到一个有足够的显示频率、较高的亮度效率、同时提高明暗比的方案。

    对于典型的室内16扫(即扫描数N=16)双色系统中,单元板的大小为64×32点。设单元板最大级联块数为8块,串移链长度为:64×8=512位。另设输出串移时钟频率为20M,则串移周期t串移为51.2us。

当K=8时,Q取不同的数值(Q≤K),由上述公式可以得到如下表所示的各项指标值。


Q的取值

1

2

3

4

5

6

7

8

串移次数n

9

12

19

34

65

128

255

510

显示频率

271Hz

203Hz

128Hz

71Hz

37Hz

19Hz

9Hz

4Hz

亮度效率

44.27%

64.39%

75.22%

83.33%

98.08%

99.6%

100%

100%

明暗比

256

256

256

256

256

256

256

256

    由上表可以看出,当Q≥5时,显示频率已经降到严重影响人眼观看效果的程度,因此Q≥5的各值无须考虑。而Q取1或2时,亮度损失过多,也不宜选用。因此Q取3或4时,即能满足必要的高显示频率,又保证了一定的亮度效率,同时可以达到较高的明暗比,此时选用的方案较好。

4.595系统的工作描述

    将扫描行m的所有点某bitA的亮度数据串移至595芯片中,锁存并将行选择信号设置为m,按照相应的映射关系给出该bitA对应的OE信号。循环将所有的bit值按此方式显示。



作者: sydz    时间: 2011-11-12 11:52
转载自互联网!!!

说说实现的595控制灰度的方法

16个灰度,也就是 0--15,用4个BIT来表示, 8-4-2-1

用PWM产生4个联系不同占空比的脉冲

T8        8/16                对应
BIT8         
T4        4/16                对应
BIT4         
T2        2/16                对应
BIT2         
T1        1/16                对应
BIT1         

8/16表示的是把PWM的周期划分为16份,其中量的周期占8份,其他雷同


当这4个脉冲运行后,由于人的生理特点。也会出现需他的灰度;

同上面的方法比较,它需要4次个周期人眼才能感觉出灰度;

但是对PWM的要求就很低;比如256种灰度,不过送8次,1024也不过要10次

大大减低了对硬件的要求,现在基本都是使用这种方法;


在一个595上+出现不同的灰度,就必须结合下面说的东东;

把一个灰度分解成4帧

例如灰度9:
1001
T8        8/16                对应
BIT8         
T4        不亮                对应
BIT4         
T2        不亮                对应
BIT2         
T1        1/16                对应
BIT1
所以我们的各个灰度分解为4帧,送4次都595,就可以了

例如在1个595上出现下面不同灰度的4个点,(就以4个点举例,)

4个点的灰度

3,12,10,7
转化为BIN码

0011  1100  1010 0111
把8-4-2-1码分割出来,得到独立的4帧

BIT8
0      1     1   0
BIT4
0       1     0   1
BIT2
1      0      1   1
BIT1
1      0      0    1

步骤:

1.把BIT8的数据送到595,用PWM控制OE的脉冲为
T8
2.把BIT4的数据送到595,用PWM控制OE的脉冲为
T4
3.把BIT2的数据送到595,用PWM控制OE的脉冲为
T2
4.把BIT1的数据送到595,用PWM控制OE的脉冲为
T1

经过4帧的时间叠加后,就得到不同的灰度。



作者: 撒旦之父    时间: 2011-11-13 12:26
这个我看到过枫叶的。
作者: 深深的爱gwn    时间: 2012-8-15 21:26
谢谢楼主了,楼主辛苦了,呵呵




欢迎光临 圣源电子制作 (https://syyyd.com/) Powered by Discuz! X3.4