找回密码
 注册
关于网站域名变更的通知
查看: 330|回复: 2
打印 上一主题 下一主题

89C52驱动WS2812成功

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-20 09:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
WS2812是一个通信速度比较快的芯片,而89单片机是比较慢的单片机。' F" D! ^; R! w, D, p# v/ f6 N. s
89单片机使用32M晶振、12T模式,用IO口直接驱动WS2812灯珠。$ M$ d% H/ t; @# {
以下视频是驱动WS2812的效果 " W% T' z6 Z. v1 O
部分源代码:
7 y& x% z( Z0 C7 {- |#ifndef WS2812B_Drive                //如果没有找到这个标签
  Z3 \3 O! U* G; W1 ~# P#define WS2812B_Drive                //那么就打一个这个标签1 Q% `4 E- U. @. C  U* f
sbit WS2812_GPIO=P2^0;7 Z) R7 I7 g& c/ L6 ~  x% _! ~3 r, M. I
u8 data WS2812_Write_Buffer[25];
+ R1 f: w2 t! N" Q2 xvoid WS2812_Write_Data(u8 *Point,u8 len)
9 n. s* D6 L( y( z, s{
9 Z0 M& v0 s6 s8 k        u8 data i,j,k;
3 o! p( f3 }6 _& p        u8 bdata Value;
( z- d; G$ S; @0 u% k        for(i=0;i<len;i++)
5 b# X1 b+ w: |( f        {
: d: t- y3 n/ @, c4 `  D( ~" s                for(j=0;j<3;j++)
+ ^" g& M7 T, I- z7 t* q2 W, O                {! o  h. U+ q9 A$ ~. ^6 M6 g
                        switch(j)
+ k. K1 W! T3 s" \  I" e# u                        {- S; [$ Y* J, l8 S
                                case 0:Value=*(Point+1);break;' N1 I  S( i, P
                                case 1:Value=*(Point);break;% I4 l$ i! `7 S0 i
                                case 2:Value=*(Point+2);break;                        
" w- R8 D) K6 {/ o; y  K  a+ a                        }! d& n" R8 W0 H% Y/ h/ j5 H
                        k=0x80;: g" ?" A, l4 c( p, [5 X7 |/ L
                        while(k)6 s% j) G' ~$ k2 I# }( X9 x
                        {
1 b' W& |$ t* F; [                                if(Value&k)
; J1 l) ^1 g& _; r2 R  Q                                {
, j* s# S" ~7 ~; ]% z                                        WS2812_GPIO=1;
0 ]8 [! ^! f$ v  ]1 ^% x1 |& J1 V                                }
2 w2 d* V* U6 r/ p. t                                WS2812_GPIO=1;8 o/ @" V0 D- [' H- |* i. E: t
                                WS2812_GPIO=0;
: x& l2 V* j# F+ j                                k>>=1;
6 U3 q- I+ M$ W+ a$ ~! S                        }
/ n* U0 S3 [7 A  X. D' H: `                }% B# Q. B0 ~/ {  O
                Point+=3;
0 [" q0 l0 D) S4 a0 `9 G9 u        }0 G4 H% E6 A% A+ q
}: d. {  w7 N9 x3 H# e0 m
void WS2812_Display_Ser(), `. w; p- s5 b" F3 d
{
3 H9 @1 `, ]! `9 P( ^# g% Y        static xdata u8 count=0;
- W3 i3 x# y# i        if(count<100)
( v" Y: u3 `4 X* x4 }- e        {! y; [$ k* S. f* F+ Y, r: `
                WS2812_GPIO=0;
6 m1 J" p" F# K* @                count++;# N& g6 J; d4 F1 F1 Z% ]& X. K3 v
        }
6 \% `6 \, Y& |        else
/ m. h& y+ P" O        {
! [; G% J/ N8 ~$ }2 j  L7 G4 @                EA=0;- A! A9 S' U6 c$ u8 ]
                WS2812_Write_Data(WS2812_Write_Buffer+1,8);
( _0 e, C( ~; \8 ^                EA=1;
% X' z& Z! w5 l/ s% o) U                count=0;
! c2 M1 U7 K$ a  q; _$ I        }' `) o) W- p5 U* H6 T
}
( H' a7 ^' r4 W* B( ^( W#endif
# g0 s/ s% ]. w1 W2 _' i3 i
; J( K8 |  g' A/ [2 A) n9 ]! k
2 b8 P/ j, ?1 ~

12 WS2812B彩灯.zip

38.57 KB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-7-20 10:12 | 只看该作者
增长见识,学习学习。(*^▽^*)

该用户从未签到

3#
发表于 2022-7-20 14:13 | 只看该作者
增长见识,学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-13 23:51 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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