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

89C52驱动WS2812成功

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
WS2812是一个通信速度比较快的芯片,而89单片机是比较慢的单片机。
3 V- D1 C4 f: F8 t3 i* b89单片机使用32M晶振、12T模式,用IO口直接驱动WS2812灯珠。
3 X; S2 `% a$ g+ D! [9 Z! i' r. ]* \6 H以下视频是驱动WS2812的效果
, s4 c4 @* d: s7 {部分源代码:0 h* T+ |# s9 r( m  G
#ifndef WS2812B_Drive                //如果没有找到这个标签  c* p  g' u0 D
#define WS2812B_Drive                //那么就打一个这个标签
* S# @' t2 A- j3 t: w/ ^* msbit WS2812_GPIO=P2^0;
" [) s. T/ R- v1 v* du8 data WS2812_Write_Buffer[25];( v3 S2 }( Z6 J3 r& }* v
void WS2812_Write_Data(u8 *Point,u8 len); [8 x' K9 Y: V5 L4 R, M: l; d! s+ O
{) j. J! k+ p) ?  T6 Y
        u8 data i,j,k;' _2 x$ t4 X: j9 |- q  j
        u8 bdata Value;
6 G+ C) }  ]' m6 _" N0 Y/ m. O+ D        for(i=0;i<len;i++)
- U7 `1 [* r* x        {6 @" Q$ q: N0 B4 W
                for(j=0;j<3;j++)* o2 `4 ~( F! _' T9 t7 m
                {
  X4 e* I* i: X                        switch(j)* f3 b! T7 `% e
                        {- v3 Q& b6 h; ~3 O% K
                                case 0:Value=*(Point+1);break;
3 C; `+ x4 m. v  ^2 J                                case 1:Value=*(Point);break;9 W. S+ R6 p0 K- T+ d- v7 }
                                case 2:Value=*(Point+2);break;                        
0 Y+ V% k4 F  b  y                        }
1 U( X) A/ k+ \' E2 D" I, ]# J' }                        k=0x80;
- J$ T3 q3 \1 C' s                        while(k)
; @; q/ q' u" |6 g                        {
6 W8 O! m9 Y/ d" c9 A8 j9 I6 s                                if(Value&k)* A& Z3 n* T% W; J/ L
                                {
" l3 \. [8 R6 Y$ f7 E  G                                        WS2812_GPIO=1;
4 H9 e6 h, r  h8 D4 G3 q                                }) E8 J# X" @% l' q; s0 S
                                WS2812_GPIO=1;
- o  g9 J; F- ^+ P                                WS2812_GPIO=0;) A7 E3 y5 ^8 J! k: c! k# j
                                k>>=1;0 f! W: y. b* `& @- i
                        }; ?; @1 {0 {. o6 {) M* Z' W
                }. [$ R6 t5 ]0 z
                Point+=3;
  @( @  G7 g$ x- K! \- A" g" \  e5 J        }. f1 I- [4 X7 g/ c2 \
}0 w+ w2 \3 s* R9 D( T+ Y$ T
void WS2812_Display_Ser()) Z' C2 T0 z# [  l  j3 V4 o; ^
{: D# U- w' |1 f& w4 y* K, f
        static xdata u8 count=0;
" U3 h/ m, }" ~4 k8 p0 [2 O        if(count<100)5 d7 s- V) t2 w/ O; ]
        {  h- ?9 |& Q) h! O
                WS2812_GPIO=0;2 O% L3 [- @& O# W3 [; u
                count++;
' Z3 y1 v# X2 _        }8 q! I: c, B4 M0 l. E
        else
! }3 |0 |2 `& z( g% M) X2 m        {; d% Z# ^+ e, I# X& d! R; w6 R
                EA=0;6 M. B1 m( `; k- S6 u1 ]$ M/ U6 Q9 s( N
                WS2812_Write_Data(WS2812_Write_Buffer+1,8);  z! y/ e/ H8 l& o4 r6 D
                EA=1;
3 L6 F7 t' E0 k* w, u* H                count=0;
# |! M5 T6 {+ F' |. B4 m5 G        }3 _8 z; b# ?% }# r
}
) N6 k, w- B( R8 l1 C( j* E& e#endif! J. l% G5 O7 W- t- s; T5 P! K

* C+ L2 ?! u% `) c8 j/ J
" Q* y3 M. Z# P/ e% r

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-6-9 05:02 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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