如何运用科学原理的小制作WS制作流程表

后使用快捷导航没有帐号?
来自ValentinRuhry的创意,这哥们用整整500
51单片机驱动WS8212系列集成LED程序及电路图(任意色彩搭配流水灯设计方案)
本帖最后由 E-Man 于
01:37 编辑
据我所知对于广大单片机初学者来说,这个芯片是冷门的!So,最近闲着无聊,又不想更新之前写的帖子,闲来无事看到下面这个家伙,写个程序玩玩,ok,废话不多说,直接上内容,此帖程序内容属于原创,禁止淘宝商家盗用!否则必究!据我所知,网络上还没有这个芯片的51程序。当然,谁会闲着蛋疼51写这个程序。仅以此贴献给刚刚学会流水灯的孩子,学会这个就可以搞任意颜色搭配的流水灯了,而且根本不用考虑引脚个数(碎碎念:只用一个引脚就可以控制几百个以上的灯珠,每个灯珠颜色是255*255*255种)!!!视频还没有审批通过,刚上传!等通过后在后面补上连接。
另外:秉持一贯开源的精神&&...求评分!!!!
貌似从DOC文档中无法带进来图片,我也懒得上图片了,这个东东的资料可以去百度去搜。
/*******************************************************************************************/
/***************************************专用分割线*******************************************/
WS2812B51单片机驱动程序+电路图+视频展示
WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。
数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。
LED具有低电压驱动,环保节能,亮度高,散射角度大,一致性好,超低功率,超长寿命等优点。将控制电路集成于LED上面,电路变得更加简单,体积小,安装更加简便。
机械尺寸(单位mm)
数据传输方法:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png
代码如下:
/********************************************************/
/*作 者:Dyingstraw
/*修改日期:
/*版& & 本:V1.0
/*程序功能:用51单片机控制ws2812 RGB输出,显示全色彩
/*备& && &&&注:51单片机晶振24M
/********************************************************/
#include&reg52.h&
#include&intrins.h&
#define uchar unsigned char
sbit Send_Dat=P1^0;& && && && && &//数据输出,接IN脚
sbit Key=P1^1;& && && && && && && & //按键等待
sbit Send_Dat1=P1^2;& &//中断状态灯
uchar RGB_BUF[24];
void delay();
void delays();
void init();
uchar Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};& && &&&
//存储一个转化后的RGB2进制数&&共24bits
struct My_24bits& && && && && && &&&//结构体
{
& && & uchar G_VAL;& && && && && &&&//绿色&&0-255
& && & uchar R_VAL;& && && && && && &//红色 0-255
& && & uchar B_VAL;& && && && && && &//蓝色0-255
};
/*写入数据时序*/
void Send_A_bit(uchar VAL)
{
//& &&&Send_Dat=0;
& && & if (VAL==1)
& && & {
& && & //& &&&Send_Dat=0;
& && && && &&&Send_Dat=1;
& && && && &&&_nop_();
& && && && &&&//_nop_();
& && && && &&&Send_Dat=0;& && && && &//2.17us
& && && && &&&//_nop_();
& && & //& &&&Send_Dat=1;& && && && && &&&//2.17us
& && & }
& && & else
& && & {
& && & //& &&&Send_Dat=0;
& && && && &&&Send_Dat=1;
& && && && &&&//_nop_();
& && && && &&&//_nop_();
& && && && &&&Send_Dat=0;& && && &&&
& && && && &&&_nop_();
& && & //& &&&Send_Dat=1;
& && & }& && && &&&
& && &
}
/*发送24位字符(包含RGB信息各8位)*/
void Send_24bits(struct My_24bits RGB_VAL )& && && && && && && &
{
& && &
& && & for& &(i=0;i&8;i++)
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.R_VAL&&i&0x01;& && && && && && && && &&&//转化R_VAL
& && & }
& && && && &&&for& &(i=8;i&16;i++)
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.G_VAL&&(i-8)&0x01;& && && && && &//转化G_VAL
& && & }
& && && && &&&for& &(i=16;i&24;i++)& && && && && && && && && && && && && && && && && && & //转化B_VAL
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.B_VAL&&(i-16)&0x01;& &&&
& && & }
& && & for (i=0;i&24;i++)
& && & {
& && && && &&&Send_A_bit(RGB_BUF[i]);
& && & }
& && &
}
/*主函数*/
void main()
{
& && & struct My_24bits a,b,c,d,e,f,g;
& && & a.R_VAL=0
& && & a.G_VAL=0x00;& && && && && && && & //1& && && && && && & 颜色顺序,下同
& && & a.B_VAL=0x00;
& & b.R_VAL=0x00;
& && & b.G_VAL=0& && && && && && && &&&//2
& && & b.B_VAL=0x00;
& && & c.R_VAL=0x00;
& && & c.G_VAL=0x00;& && && && && && && && &&&//3
& && & c.B_VAL=0
& && & d.R_VAL=0& && && && && && && && && &//4
& && & d.G_VAL=0
& && & d.B_VAL=0x00;
& && & e.R_VAL=0
& && & e.G_VAL=0x00;& && && && && && && && && &&&//5
& && & e.B_VAL=0
& && & f.R_VAL=0x00;
& && & f.G_VAL=0& && && && && && && && && && && & //6
& && & f.B_VAL=0
& && & g.R_VAL=0& && && && && && && && && && && & //7
& && & g.G_VAL=0
& && & g.B_VAL=0
& && & init();
& && & while(1)
& && & {
& && & Send_Dat=0;
& && & Send_24bits(a);
& && & Send_Dat=0;& &P0=0xF9;
& && & delays();
& && & while(Key==1);& && && && && && && && && && && && && & //按键等待,当Key=1时停止,等于0时七种颜色流水灯循环,下同(主要方便观察颜色)
& && & Send_24bits(b);
& && & Send_Dat=0;& && && & P0=0xa4;& && && && && &//共阴极数码管显示颜色顺序,下同
& && & delays();
& && & while(Key==1);
& && & Send_24bits(c);
& && & Send_Dat=0;& &P0=0xb0;
& && & delays();
& && & while(Key==1);
& && & Send_24bits(d);
& && & Send_Dat=0;& &P0=Led_Tab[4];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(e);
& && & Send_Dat=0;& &P0=Led_Tab[5];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(f);
& && & Send_Dat=0;& &P0=Led_Tab[6];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(g);
& && & Send_Dat=0;& &P0=Led_Tab[7];
& && & delays();
& && & while(Key==1);
//& &&&PCON|=0x01;& && && && && && && & //空闲模式
& && && && &
& && & }
}
/*中断唤醒测试函数*/
void INT1_ISR(void) interrupt 2
{
& && & P2=1;
}
/*小延时函数*/
/*大概1S吧,随便写的*/
void delay()
{
uchar i,j;
& && & for (i=0;i&250;i++)
& && & {
& && && && &&&for (j=0;j&250;j++);
& && & }
}
/*大延时函数*/
/*十几秒*/
void delays()
{
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();&&
& && & delay();
& && & delay();
& && & delay();
}
/*系统初始化*/
void init()
{
&&P0=0x00;
&&P1=0x00;
&&P2=0x00;
&&P3=0x00;
&&TCON=0x05;
&&TMOD=0x00;
&&TH0=0x00;
&&TL0=0x00;
&&TH1=0x00;
&&TL1=0x00;
&&T2CON=0x00;
&&RCAP2H=0x00;
&&RCAP2L=0x00;
&&IP=0x00;
&&IE=0x85;
&&PCON=0x00;
&&SCON=0x00;
}复制代码东西狠小,一支笔对比!引脚标注是错的,请忽略!
下图序号小时不正确!
集中颜色的图片,意思一下。最后一张是实物图,单片机应该看不到吧(这个图片不是这个程序的,另外的序号不一样)
IMG_651.jpg (28.31 KB, 下载次数: 7)
01:30 上传
IMG_705.jpg (20.2 KB, 下载次数: 3)
01:30 上传
IMG_718.jpg (36.61 KB, 下载次数: 6)
01:30 上传
IMG_805.jpg (31.55 KB, 下载次数: 5)
01:30 上传
IMG_921.jpg (40.69 KB, 下载次数: 4)
01:30 上传
马克笔画出来的,引脚标注是错误的!!!请自觉忽略!!
视频地址:&embed src=&/player.php/sid/XOTQ2MTg0NjA0/v.swf& allowFullScreen=&true& quality=&high& width=&480& height=&400& align=&middle& allowScriptAccess=&always& type=&application/x-shockwave-flash&&&/embed&
自己嗨,好无聊,感谢hai.yang20189评分!
本帖最后由 ianon 于
21:18 编辑
这个LED要求速率很高,用STC来做有点紧张,楼主还用了点技巧,赞
花了不少时间调时序吧,我刚好可以借鉴了
ianon 发表于
这个LED要求速率很高,用STC来做有点紧张,楼主还用了点技巧,赞
花了不少时间调时序吧,我刚好可以借鉴了
其实还行吧,51速率刚好够。现在用stm32写了一个控制器玩,有时间交流
楼主多才多艺,还能玩stm
调时序用了示波器吗?我是两眼一摸黑
ws2812.png (148.35 KB, 下载次数: 4)
WS2812时序图
09:17 上传
其实我们都被误导了,WS8212适应性很强,并不是一定要800K的速率,低速率也可以,只要调好占空比,我试过400K都能用
折腾了2天,输出波形还是不稳定,真应该用PWM输出来做
可恨的是我选的这个STC15L204竟然不带串口不带PWM,晕死了
ianon 发表于
折腾了2天,输出波形还是不稳定,真应该用PWM输出来做
可恨的是我选的这个STC15L204竟然不带串口不带PWM, ...
没有串口毕竟还是少见
Copyright &
Powered by1056人阅读
传感器(1)
////////////////////////////////////////////////////////////////////////////
//控制灯指令如下
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);
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//=============低速模式数码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()
for(i=0;i&i++)
send_single_data();
& &Reset();
void RGB_open() //RGB长亮
send_string_data();
//=======================RGB呼吸灯=======================//
void RGB_PWM()
//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)
& &for (j = 25* j& 0; j--) ;
控制中一定要注意时序的控制应当非常精确,最好用示波器观察0码和1码的具体数值
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2277次
排名:千里之外更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
把视频贴到Blog或BBS
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
收藏成功,可进入查看所有收藏列表
方式1:用手机看
用爱奇艺APP或微信扫一扫,在手机上继续观看:
《巨大》 US外围WS盘口OA程序制作
方式2:一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
爸爸去哪儿2游戏 立即参与
《巨大》 US外围WS盘口OA程序制作
播放量数据:
你可能还想订阅他们:
{{#needAdBadge}} 广告{{/needAdBadge}}
&正在加载...
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制您的装修预算约
0 万元卧室预算 :0 元客厅预算 :0 元厨房预算 :0 元阳台预算 :0 元卫生间预算 :0 元其他预算 :0 元*本价格为毛坯房半包估算价格(不含水电报价),旧房价格由实际工程量决定。 *稍后装修管家将致电您,为您提供免费装修咨询服务。【国威ws824说明书】国威ws824使用方法摘要:“WS824国威无线交换机系统主要针对大中型企业,用来解决企业内部和外部的语音通讯问题,是一款科技含量高、应用面广的交换机产品。...” 感谢您关注福窝小编为您精心挑选和分享的关于【国威ws824说明书】国威ws824使用方法的文章,学装修频道让您了解更专业的装潢装修经验和家居风水知识,内容主要包含:装修技巧、家居风水和室内设计案例。WS824国威无线交换机系统主要针对大中型企业,用来解决企业内部和外部的语音通讯问题,是一款科技含量高、应用面广的交换机产品。真是因为它这样的特性,使得无线交换机系统的布置成为很多企业的难题,往往在厂家布置后,一旦发生故障,自己无法解决。下面我们就详细介绍国威WS824的使用方法并提供说明书。传统的交换机一般采用有线的方式来连接分机和交换机主机,这样的设置大大制约了使用者的随机性和移动性,在信息时效性高度发达的今天,错失一个电话可能意味着丢失一大笔订单!而WS824国威无线交换机将2.4G数字无绳电话技术融合到产品中,与塞纳科技的数字交换机产品配合使用,为用户提供全新的体验。国威WS824说明书共有六个章节和一个附录,不仅概括介绍了产品功能,还从系统规格、组件说明、安装方法、操作使用和常见故障处理六个方面进行了详细说明。一、概述二、系统规格1.基站数量:≤8个。2.子机数量:≤255部。3.基站性能:4.子机性能:14段码液晶显示,蓝色背光,配备耳机接口和卡扣(根据子机型号而定,如WS824-V006H,部分子机不具备);750mAH NIMH电池,单独充电座,联系待机时间80小时,练习通话时间5小时。5.符合标准:RF:符合EN300 328和YD/T 1349EMC:符合EN和GB9254安全:符合EN60590和GB4943三、组件说明1.无线分级板2.基站(图为WS824-V400B)3.子机(图为WS824-V006H)说明:(1)子机的按键功能详见《国威WS824-V006H数字无绳专用话机使用手册》;(2)子机的常用操作指令详见附录一;(3)子机移动使用时在背面的电池仓内需装入两节的1.2V/750mAh的NIMH可充电池,方可正常使用;电量不足时可由配备专用的充电座直接进行充电,如下图:说明:采用专用电源适配器(输入220VAC,输出7.5VDC)四、安装方法1.连接拓扑图说明:国威2.4G无限交换机系统由四部分组成(如上图),分别为数字程控用户交换机,无线分机板,基站及子机。2.安装(1)将无线分机板安装在数字程控用户交换机主机上,安装位置分别是:(2)基站安装在办公场所合适的位置,以便增大有效的覆盖面积,每个基站通过两芯双绞线与无线分机板项链。具体规划根据环境情况建议如下:A、单一楼层较小面积:可安装两个基站,相互间隔不低于20米,两个基站安装在靠近两端1/3的位置;B、单一楼层较大面积:可安装四个基站,相互间隔不低于20米,四个基站安装在靠近四个空间角落1/3的位置;C、多楼层:每个楼层安装一至两个基站,安装位置要根据楼层面积如单一楼层叫小面积的安装方式进行。五、操作使用1.主要功能(1)漫游功能:子机可以在覆盖区域内的任意地方漫游可以接听和呼叫电话(通话过程暂不支持漫游);(2)同振功能:当给某个桌面分机固定座机电话并配备一个子机后有电话呼入时座机与子机将同时响铃,任意一个接听,另一个将自动停止响铃;(3)座机优先功能:当使用子机在通话过程中,回到座机电话位置拿起座机就可以把子机的电话自动切换回座机,使座机优先使用(暂不支持通话切回子机);(4)随身携带功能:子机的卡扣配件,支持使用者把子机卡在身上某个部分,如腰间、衣物的口袋上。2.功能设置(1)功能实现:WS824(10D)升级CPU后,自带此功能;WS824(5D)升级CPU后须在系统编程04项的C小项设置,为1/2表示分机漫游功能未开通;为3/4表示分机漫游功能开通。(5)子机登录和注册:3.使用附录一 子机常用指令本文所讲述的说明内容针对国威WS824无线交换机系统,因为国威WS824系列有很多种不同型号的产品,具体型号对应的使用方法和说明书内容不尽相同,特别是在编程设置方面不同型号差别具体,具体使用方法请根据型号自己在网上检索。以上就是小福为您分享的 《【国威ws824说明书】国威ws824使用方法》 的全部内容,更多有关家居装修的知识和经验,请多多关注爱福窝学装修频道。您还可以订阅我们的官方微信(微信号:fuwocn),免费获取我们给您精心准备的家居装修技巧和精美样板房效果图,还有更多的室内设计师和装修公司等你来挑选哦!上一篇:下一篇:分享至:
浏览此文的人还看过--【国威ws824说明书】国威ws824使用方法

我要回帖

更多关于 word流程图制作 的文章

 

随机推荐