转载自互联网!!!
说说实现的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帧的时间叠加后,就得到不同的灰度。
|