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

89C52驱动WS2812成功

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
WS2812是一个通信速度比较快的芯片,而89单片机是比较慢的单片机。
9 K, z$ B& p7 O* m89单片机使用32M晶振、12T模式,用IO口直接驱动WS2812灯珠。
, j! q2 ], X; K: _以下视频是驱动WS2812的效果 7 b( |% c6 ~" `9 d
部分源代码:
8 @- S4 L) [; l2 n# Q; N#ifndef WS2812B_Drive                //如果没有找到这个标签; q$ g" ~. ?( h, ~" v! Q( Q
#define WS2812B_Drive                //那么就打一个这个标签
% x7 z+ [% i+ ]0 o0 Y3 nsbit WS2812_GPIO=P2^0;
; n: @3 W& V, A2 F, A. h1 f6 W- Vu8 data WS2812_Write_Buffer[25];" Y- h/ |8 p; d  y; ~. _" |2 @
void WS2812_Write_Data(u8 *Point,u8 len)8 W" a$ `( r0 B& @
{
( v% P& c% h# p7 w% V/ |        u8 data i,j,k;
, P( C  ~; q! S" Q$ Y7 T+ K$ [        u8 bdata Value;! z& H2 k$ N0 T/ s4 e8 u
        for(i=0;i<len;i++)0 z- p( r1 e+ s5 x. [" @/ s2 @3 n
        {/ Q2 G6 P/ |% D3 P4 s$ [
                for(j=0;j<3;j++)) z! E4 c$ \2 h- V8 u
                {
6 m' o" \8 B+ C4 u" Y' r/ O                        switch(j)
8 a" ~. @0 S9 G- U# Y9 t                        {
* C7 D0 Z% _  s" u" M                                case 0:Value=*(Point+1);break;5 K+ ^1 l: D( W1 x( G
                                case 1:Value=*(Point);break;
) e& g; q# v1 t5 @+ p                                case 2:Value=*(Point+2);break;                        
0 k/ s8 f5 y! {+ z3 K                        }
" v; r" S, Q( o5 F                        k=0x80;
/ c. }: k9 \, p                        while(k)
3 p% ^9 i! d" l! T) @7 f1 f                        {
1 |# N$ X: L, E" U                                if(Value&k)8 U/ b  F6 J8 ]/ c( G
                                {
9 o/ P; d- z3 K/ C: N' K                                        WS2812_GPIO=1;4 [  S$ q) O6 }7 p) [/ q+ O( {
                                }% H; h5 _5 n: K* l  u$ J
                                WS2812_GPIO=1;: e" B+ Q1 E; W0 u, X3 o6 D. P" T
                                WS2812_GPIO=0;  H5 ~6 U: ]7 b  }
                                k>>=1;2 I% q& z8 ~" m9 }/ o. u
                        }
2 k: U5 e, K' x+ M" ?                }2 T0 n7 S, }* O! L: x  l# o  w
                Point+=3;
4 P" \! g0 F4 _        }9 S9 e3 j- H# c: _
}
. U! Z" V* [! @& Y, m8 |void WS2812_Display_Ser()
4 B) ~& U) a% j. \# p$ f& Z, \{3 |+ H. z9 Y4 [7 i' Y: z
        static xdata u8 count=0;
* t6 x4 [2 C2 u8 c; f        if(count<100)
) j. \8 o* R0 M6 v5 s% ~        {0 d' B3 O% A* _1 U* y1 I
                WS2812_GPIO=0;$ s' P. m: Y* t# x1 p
                count++;
& [$ k9 C1 f! P+ Z2 F) L6 V        }1 z0 K& w3 q" B( L5 o: [# J2 \
        else
: ]: ?, r+ ?3 X. C        {; f6 e$ y4 m% x+ _+ g
                EA=0;
( U6 U: `+ X" d; a7 j; Z& l1 I                WS2812_Write_Data(WS2812_Write_Buffer+1,8);
/ i  ]3 ?8 x3 i" g                EA=1;
3 q" i8 \' K: c5 l6 q1 U                count=0;9 S7 K  l" e3 s- ?! d: X; \
        }
1 U- N. W# n) y: l, I, w& J; C}
% o! K+ E8 f9 T6 S# h. {& k1 r#endif
+ }9 q+ ^0 b! B4 H0 b3 W 8 x* }8 {7 X; g0 l7 E

0 {7 J1 i' Z# l) D0 T

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-17 17:28 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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