IC解密STC8系列单片机WS2812驱动程序
IC解密主要使用的单字节数据发送函数如下:
- IC解密#include "ws2812.h"
- void WS2812_SendByte(unsigned char dat)
- {
- unsigned char i = 8;
- dat <<= 1;
- while (i)
- {
- WS2812_IO = 1;
- //5.5296 - 6.8
- #if SYS_FREQ < 55296 || SYS_FREQ > 480000
- #error 频率未适配, 不在 5.5296-48MHz
- #else
- _nop_();
- #endif
- //6.8 - 10.8
- #if SYS_FREQ >= 68000
- _nop_();
- #endif
- //10.8 – 21.4
- #if SYS_FREQ >= 108000
- _nop_();
- _nop_();
- #endif
- //21.4 – 29.5
- #if SYS_FREQ >= 214000
- _nop_();
- _nop_();
- #endif
- //29.5 – 35.0
- #if SYS_FREQ >= 295000
- _nop_();
- _nop_();
- #endif
- //35.0 – 40.7
- #if SYS_FREQ >= 350000
- _nop_();
- _nop_();
- #endif
- //40.7 – 46.8
- #if SYS_FREQ >= 407000
- _nop_();
- _nop_();
- #endif
- //46.8 – 48
- #if SYS_FREQ >= 468000
- _nop_();
- _nop_();
- #endif
- WS2812_IO = CY;
- //5.5296 - 6.8
- #if SYS_FREQ < 55296 || SYS_FREQ > 480000
- #error 频率未适配
- #else
- _nop_();
- #endif
- //6.8 - 10.8
- #if SYS_FREQ >= 68000
- _nop_();
- #endif
- //10.8 – 21.4
- #if SYS_FREQ >= 108000
- _nop_();
- _nop_();
- #endif
- //21.4 – 29.5
- #if SYS_FREQ >= 214000
- _nop_();
- _nop_();
- #endif
- //29.5 – 35.0
- #if SYS_FREQ >= 295000
- _nop_();
- _nop_();
- #endif
- //35.0 – 40.7
- #if SYS_FREQ >= 350000
- _nop_();
- _nop_();
- #endif
- //40.7 – 46.8
- #if SYS_FREQ >= 407000
- _nop_();
- _nop_();
- #endif
- //46.8 – 48
- #if SYS_FREQ >= 468000
- _nop_();
- _nop_();
- #endif
- WS2812_IO = 0;
- dat <<= 1;
- i--;
- }
- }
上一篇:IC解密交通信号灯程序

芯片解密