找回密码
 注册
关于网站域名变更的通知

WS2812B RGB 彩灯 51单片机 STC15W 驱动代码

查看数: 424 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-12-1 09:59

正文摘要:

WS2812B RGB 彩灯 51单片机 STC15W 驱动代码+ c2 o! b' {5 F  I, R 1 \# D( M6 Y0 u- ]/ a3 C, B! k+ ?; c' Y) z0 Y& Q: v 8 P2 N1 w6 s- F$ [

回复

VIC56 发表于 2022-12-1 13:59
AVR的RGB彩灯控制芯片WS2801的控制程序- Z0 C0 Y) l3 B9 c, Q
$ y" r) E% Z; Z. n
#include"color.h"
+ \5 r2 o, a  I) _/ c' t4 A#include"delay.h"0 K* R1 i2 q( E) p8 T) m) {
// 0.18084us
& C) T* H7 R5 q/ Uvoid Sbi_SDI()
! ]) k3 J( c& X/ c9 \. ~! ^{
2 P: n! ]! Y# m1 esbi(PORTC,1);
' t/ @7 K9 q2 E}! v- ]  [- v$ `' x
void Cbi_SDI()9 k2 e0 y, E/ M( C7 ]3 A0 N
{- S6 h# B1 t7 c6 g
cbi(PORTC,1);" m3 X' l: q$ T; }* t
}
3 j* J* F" w( e3 x2 X$ i3 \0 Fvoid Sbi_CKI()1 I, S4 J, i" y
{* o& n" E& |/ I& t: x: A
sbi(PORTC,0);  c  l$ y: j) o) H, Q7 P* S
}$ X- }5 C# I5 A* U, x
void Cbi_CKI()0 Q- x5 |- ~5 z: ]* P( `# i
{- M7 F4 {  s4 N# K1 g/ u
cbi(PORTC,0);
2 L- Q2 ^" `. O}
! E, S1 p1 t+ Q! ]0 mvoid Send_CKI()  //WS2801 上升沿8 n1 L& o0 O# z& W4 B1 f5 U" i9 |
{
7 n1 l7 e! I% t  OCbi_CKI();      // 时钟 拉低
! e1 R7 j& d# s$ Q, k_delay_us(6);- @- f$ C, y6 c' J& a
Sbi_CKI();      // 时钟 拉高% q: D# w+ x) p
_delay_us(6);( w' A+ w+ t; F# F/ e- X) L
Cbi_CKI();      // 时钟 拉低
& y8 w. z# ^% Z6 a- l2 |6 B}/ i; n( i- W' {9 L7 f. i. m, I
void Write_WS2801_Data(unsigned char _data)  //WS2801
* w3 g: J! D1 R( [4 m! {{
1 ^2 O- Q) K2 l+ C3 runsigned char dai;
, G$ O  R. p: n. ^' Xunsigned char cache;! U( \9 J  c, d: w% e% W7 e
for(dai=0;dai<8;dai++)
0 M7 Z5 h4 d  \) @/ l{% O" A0 W6 C' s  {1 k" c/ q0 e
cache = (_data & 0x80)>>7;
. M5 Y& C& e2 S* {% J3 Y' v1 Qif(cache)/ ]5 ~) w( C  ], W
Sbi_SDI();
$ c7 O* \& p% V, M; f  c& ?else+ I* r- z  D" r. x
Cbi_SDI();
' X, w6 N7 X) r( Q' _7 V' WSend_CKI();3 T+ T+ d" j) D: K! C$ L
_data <<= 1;
, @8 w& t, U8 h' |0 N; ?}7 l  k6 S, U5 d. p# V
}
  f9 J8 x; |& L% Uvoid Write_WS2801_ColorData(unsigned char *pd)% D4 v  G: z$ J) y4 _* D
{" X) d; @' j: }4 ]  p. t+ M0 a. l
unsigned char LEDMax = 0; // LED 最大数量* L) p8 T7 ]* O. p+ O7 r
Cbi_CKI();' \. Z8 s* M; m( j/ p( i/ q
Cbi_SDI();
: ^' @: M; Y- ~: O_delay_us(250);4 q! g- @, `0 |* D9 p' ~- W' \
_delay_us(250);8 t7 @* Y, G& @- x
for(LEDMax = 0;LEDMax<27;LEDMax++)0 U5 V$ o6 A" d
{
' k; l: g: r& f//Write_WS2801_Data(Red);
" A% H+ o: e) B- {  ^, {* H: Q2 b0 M//Write_WS2801_Data(Green);3 x# D" Y" G+ A' M8 F
//Write_WS2801_Data(Blue);1 w' m- p9 O  A5 A8 w
Write_WS2801_Data(*pd);- e$ P7 _* w5 ], Z/ f8 a# Q
pd++;. O9 q2 y. f8 b0 N$ W$ d
}# T' d6 c* Q) y( O2 v& c
}
Crash 发表于 2022-12-1 10:53
调用被测函数的代码。 在单元测试过程中,驱动模块通常包括调用被测函数前的数据准备、调用被测函数以及验证相关结果三个步骤。驱动代码的结构,通常由单元测试的框架决定。
关闭

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

EDA365公众号

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

GMT+8, 2026-4-19 00:25 , Processed in 0.109375 second(s), 28 queries , Gzip On.

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

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

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