通过三路ADC对WS2812控制
(年代太过久远,引脚定义啥的忘了)
单片机源程序如下:
- #include"stc15f2k60s2.h"
- #ifndef __WS2812_H__
- #define __WS2812_H__
- sbit WS2812_IO=P5^5;
- void Delay100us() //@11.0592MHz
- {
- unsigned char i, j;
- _nop_();
- _nop_();
- i = 2;
- j = 15;
- do
- {
- while (--j);
- } while (--i);
- }
- void ws2812_write_byte(unsigned char dat)
- {
- unsigned char i = 8;
- dat <<= 1;
- while(i)
- {
- WS2812_IO = 1;
- // 如果主频较高可在此处适当增加_nop_():
- // 将下面的dat <<= 1;移至此处也可以
- WS2812_IO = CY;
- WS2812_IO = 0;
- dat <<= 1;
- i--;
- }
- }
- void WS2812Write(unsigned char gree,re,blu)
- {
- ws2812_write_byte(gree);
- ws2812_write_byte(re);
- ws2812_write_byte(blu);
- }
- #endif
复制代码
所有程序51hei提供下载:
ADC WS2812的控制.zip
(58.11 KB, 下载次数: 55)
|