IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> 基于MCU和74595的LED灰度控制
猫猫草
post 2008-06-05 00:19:42, Thu
Post #1


猫猫猫
***

Group: Power Cat
Posts: 626
Joined: 2006-12-8
Member No.: 2



代码
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帧的时间叠加后,就得到不同的灰度。
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 2024-11-1 10:23