WS2811.H

//控制灯指令如下
void h_dat1();
void h_dat0();
extern void delay_ms(unsigned char ms);
extern void delay_us(unsigned long int us);
void Reset(void);
void send_single_data();
 void RGB_PWM();
 void RGB_open();
 void Clock_Init();
 void RGB_ALARM();
 void ledlight(void);
/

WS2811.C

/

//=============低速模式数码BIT0(高电平时间:350ns 低电平时间:800ns )=============//
void h_dat0()

  P2OUT|=PWM_WS;----yxn
  P2OUT&=~PWM_WS; 
   SomeNOP();
   //_NOP();
}
void h_dat1()

   P2OUT&=~PWM_WS;----yxn
   P2OUT|=PWM_WS;
  SomeNOP();
  //_NOP();
  
}
//RGB显示控制程序=======================================================================
void Reset(void)
{
    P2OUT&=~PWM_WS;----yxn
    delay_ms(1);
}
//===================发送RGB灰度数据===================
void send_single_data()  //数据格式:G7~G0~R7~R0~B7~B0
{
 
LED_DAT=GG;
if((LED_DAT&0x80)==0x80) h_dat1(); else h_dat0(); 以前的程序全部修改此处
if((LED_DAT&0x40)==0x40) h_dat1(); else h_dat0();
if((LED_DAT&0x20)==0x20) h_dat1(); else h_dat0();
if((LED_DAT&0x10)==0x10) h_dat1(); else h_dat0();
if((LED_DAT&0x08)==0x08) h_dat1(); else h_dat0();
if((LED_DAT&0x04)==0x04) h_dat1(); else h_dat0();
if((LED_DAT&0x02)==0x02) h_dat1(); else h_dat0();
if((LED_DAT&0x01)==0x01) h_dat1(); else h_dat0();
LED_DAT=RR;
if((LED_DAT&0x80)==0x80) h_dat1(); else h_dat0();
if((LED_DAT&0x40)==0x40) h_dat1(); else h_dat0();
if((LED_DAT&0x20)==0x20) h_dat1(); else h_dat0();
if((LED_DAT&0x10)==0x10) h_dat1(); else h_dat0();
if((LED_DAT&0x08)==0x08) h_dat1(); else h_dat0();
if((LED_DAT&0x04)==0x04) h_dat1(); else h_dat0();
if((LED_DAT&0x02)==0x02) h_dat1(); else h_dat0();
if((LED_DAT&0x01)==0x01) h_dat1(); else h_dat0();
LED_DAT=BB;
if((LED_DAT&0x80)==0x80) h_dat1(); else h_dat0();
if((LED_DAT&0x40)==0x40) h_dat1(); else h_dat0();
if((LED_DAT&0x20)==0x20) h_dat1(); else h_dat0();
if((LED_DAT&0x10)==0x10) h_dat1(); else h_dat0();
if((LED_DAT&0x08)==0x08) h_dat1(); else h_dat0();
if((LED_DAT&0x04)==0x04) h_dat1(); else h_dat0();
if((LED_DAT&0x02)==0x02) h_dat1(); else h_dat0();
if((LED_DAT&0x01)==0x01) h_dat1(); else h_dat0();
}
void send_string_data()
{
 
uchar i;
for(i=0;i<size;i++)
{
 
send_single_data();
 
}
   Reset();
 
}
void RGB_open() //RGB长亮
{
send_string_data();
}

//=======================RGB呼吸灯=======================//
void RGB_PWM()
{
uint i;
//RR=255; GG=0; BB=0;
send_string_data(); //发送RGB灰度数据
for(i=0; i<256; i++) 
{
//P1OUT |= 0x02;待改动
delay_us(i*50);
//P1OUT &= ~0x02;待改动
delay_us((256-i)*50);
}

for(i=256; i>0; i--)
{
//P1OUT |= 0x02;待改动
delay_us(i*50);
//P1OUT &= ~0x02;待改动
delay_us((256-i)*50);
}

}
void RGB_ALARM()
{
 
RR=0; GG=0; BB=0;
send_string_data(); //发送RGB灰度数据
delay_ms(100);
RR=255; GG=0; BB=0;
send_string_data(); //发送RGB灰度数据
delay_ms(100);
}
//ms延时函数
void delay_ms(unsigned char ms)
{
    delay_us(1000*ms);
}
//us延时函数
void delay_us(unsigned long int us)
{
   unsigned long int j;
   for (j = 25*us; j> 0; j--) ;

}

控制中一定要注意时序的控制应当非常精确,最好用示波器观察0码和1码的具体数值

项目中用到的ws2811炫彩灯控制程序相关推荐

  1. iOS:项目中用到的Cookie

    1.介绍: 做了这么长时间开发,Cookie真是用的不多,可是现在不一样了,这次的项目我用到了Cookie.其实,Cookie的使用在项目中愈加的频繁,一般情况下,提供的接口是用Cookie来识别用户 ...

  2. 基于ESP8266和WS2812B的智能炫彩灯牌设计

    一 产品介绍 本产品使用esp8266模块和ws2812b灯珠制作了一款wifi控制的智能家居炫彩灯牌.你还可以结合家中的其他物件,对其进行包装,实现各个灯的颜色变化.比如台灯,手电筒等等,甚至你还把 ...

  3. iOS 项目中用到的一些开源库和第三方组件

    iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...

  4. yaml for java_细数Java项目中用过的配置文件(YAML篇)

    灵魂拷问:YAML,在项目中用过没?它与 properties 文件啥区别? 目前 SpringBoot.SpringCloud.Docker 等各大项目.各大组件,在使用过程中几乎都能看到 YAML ...

  5. python能调用身份证读卡器吗_最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册...

    最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册 1.定义 应用函数开发包含下列文件: termb.dll      API函数的动态联接库 sdtapi.dll     内部动态库 ...

  6. iOS项目中用到的一些第三方库

    今天来总结一下项目中用到的一些第三方库. 1. AFNetworking,在github上有3万多颗的星星,用作处理网络请求. 2. MZGuidePages, 这是一个小工具,用于创建首次使用app ...

  7. 高薪程序员面试题精讲系列96之分库分表了解吗?你项目中用到过吗?怎么用的?

    一. 面试题及剖析 1. 今日面试题 分库分表了解吗? 有哪些分库分表的实现方案? 你项目中用到过分库分表吗?怎么用的? 数据库有没有进行过分区? 2. 题目剖析 现在我们出去面试时的现状,真的很贴合 ...

  8. IDEA为java项目中用到python的模块设置Python interpreter

    IDEA为java项目中用到python的模块设置Python interpreter Java项目中模块用到了python,没有为模块设置Python解释器,因此点击右上角Configure Pyt ...

  9. 在项目中用ts封装axios

    写在前面 虽然说Fetch API已经使用率已经非常的高了,但是在一些老的浏览器还是不支持的,而且axios仍然每周都保持2000多万的下载量,这就说明了axios仍然存在不可撼动的地位,接下来我们就 ...

  10. c读取ini配置文件_细数Java项目中用过的配置文件(ini 篇)

    Java 菜鸟,会把可变的配置信息写死在代码里:Java 老鸟,会把可变的配置信息提取到配置文件中.坊间流传这么一句非科学的衡量标准,来评判程序员的级别. 那么,项目中的配置信息,你平时都是怎样来实现 ...

最新文章

  1. 关于appcan自动升级功能
  2. Delphi 7 在程序中直接执行SQL脚本文件
  3. Openstack 中的消息总线 AMQP
  4. Go语言可能会遇到的坑
  5. TCL语言笔记:TCL中的String命令
  6. 【洛谷P4719】动态DP【LCT】【矩阵】
  7. 无人驾驶入门(影子测试)
  8. 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  9. mysql的分页存储过程,能够传出总记录数
  10. kettle-连接mysql数据库
  11. 【ArcGIS风暴】气象台站气温(降水)矢量数据插值成栅格气温(降水)空间数据
  12. ARM的九种寻址方式
  13. 存储容量及相关计算单位
  14. 插入排序及其时间复杂度推导
  15. 宜信支付结算账户系统浅析
  16. 东北电力计算机考研分数线,东北电力大学2019年考研复试分数线已公布
  17. 侃谈移动端音视频发展与现状
  18. vue2.0基于element ui 上月 本月 下月
  19. 基于labelme创建自己的仿cityscapes的训练数据集(视频转图片训练集)
  20. 教学计算机语音软件,数字语音室软件教学系统

热门文章

  1. 【剑指Offer学习】【所有面试题汇总】
  2. 索引,用户授权,备份
  3. JAVA基础语法:java编程规范和常用数据类型
  4. Javashop电商系统7.1.5源码,Java电商系统源码分享
  5. Junit4测试报错:java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
  6. AD格式生产文件Gerber文件的制作
  7. KEIL下载程序失败系列问题
  8. 一图读懂3GPP R16(附思维导图下载)
  9. [转贴]记那对住在我隔壁储藏室的大学刚毕业的小夫妻
  10. 【DJ-ZBS2 DH-70L两档切换漏电继电器】