项目中用到的ws2811炫彩灯控制程序
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炫彩灯控制程序相关推荐
- iOS:项目中用到的Cookie
1.介绍: 做了这么长时间开发,Cookie真是用的不多,可是现在不一样了,这次的项目我用到了Cookie.其实,Cookie的使用在项目中愈加的频繁,一般情况下,提供的接口是用Cookie来识别用户 ...
- 基于ESP8266和WS2812B的智能炫彩灯牌设计
一 产品介绍 本产品使用esp8266模块和ws2812b灯珠制作了一款wifi控制的智能家居炫彩灯牌.你还可以结合家中的其他物件,对其进行包装,实现各个灯的颜色变化.比如台灯,手电筒等等,甚至你还把 ...
- iOS 项目中用到的一些开源库和第三方组件
iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...
- yaml for java_细数Java项目中用过的配置文件(YAML篇)
灵魂拷问:YAML,在项目中用过没?它与 properties 文件啥区别? 目前 SpringBoot.SpringCloud.Docker 等各大项目.各大组件,在使用过程中几乎都能看到 YAML ...
- python能调用身份证读卡器吗_最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册...
最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册 1.定义 应用函数开发包含下列文件: termb.dll API函数的动态联接库 sdtapi.dll 内部动态库 ...
- iOS项目中用到的一些第三方库
今天来总结一下项目中用到的一些第三方库. 1. AFNetworking,在github上有3万多颗的星星,用作处理网络请求. 2. MZGuidePages, 这是一个小工具,用于创建首次使用app ...
- 高薪程序员面试题精讲系列96之分库分表了解吗?你项目中用到过吗?怎么用的?
一. 面试题及剖析 1. 今日面试题 分库分表了解吗? 有哪些分库分表的实现方案? 你项目中用到过分库分表吗?怎么用的? 数据库有没有进行过分区? 2. 题目剖析 现在我们出去面试时的现状,真的很贴合 ...
- IDEA为java项目中用到python的模块设置Python interpreter
IDEA为java项目中用到python的模块设置Python interpreter Java项目中模块用到了python,没有为模块设置Python解释器,因此点击右上角Configure Pyt ...
- 在项目中用ts封装axios
写在前面 虽然说Fetch API已经使用率已经非常的高了,但是在一些老的浏览器还是不支持的,而且axios仍然每周都保持2000多万的下载量,这就说明了axios仍然存在不可撼动的地位,接下来我们就 ...
- c读取ini配置文件_细数Java项目中用过的配置文件(ini 篇)
Java 菜鸟,会把可变的配置信息写死在代码里:Java 老鸟,会把可变的配置信息提取到配置文件中.坊间流传这么一句非科学的衡量标准,来评判程序员的级别. 那么,项目中的配置信息,你平时都是怎样来实现 ...
最新文章
- 关于appcan自动升级功能
- Delphi 7 在程序中直接执行SQL脚本文件
- Openstack 中的消息总线 AMQP
- Go语言可能会遇到的坑
- TCL语言笔记:TCL中的String命令
- 【洛谷P4719】动态DP【LCT】【矩阵】
- 无人驾驶入门(影子测试)
- 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
- mysql的分页存储过程,能够传出总记录数
- kettle-连接mysql数据库
- 【ArcGIS风暴】气象台站气温(降水)矢量数据插值成栅格气温(降水)空间数据
- ARM的九种寻址方式
- 存储容量及相关计算单位
- 插入排序及其时间复杂度推导
- 宜信支付结算账户系统浅析
- 东北电力计算机考研分数线,东北电力大学2019年考研复试分数线已公布
- 侃谈移动端音视频发展与现状
- vue2.0基于element ui 上月 本月 下月
- 基于labelme创建自己的仿cityscapes的训练数据集(视频转图片训练集)
- 教学计算机语音软件,数字语音室软件教学系统
热门文章
- 【剑指Offer学习】【所有面试题汇总】
- 索引,用户授权,备份
- JAVA基础语法:java编程规范和常用数据类型
- Javashop电商系统7.1.5源码,Java电商系统源码分享
- Junit4测试报错:java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
- AD格式生产文件Gerber文件的制作
- KEIL下载程序失败系列问题
- 一图读懂3GPP R16(附思维导图下载)
- [转贴]记那对住在我隔壁储藏室的大学刚毕业的小夫妻
- 【DJ-ZBS2 DH-70L两档切换漏电继电器】