最近公司出产了一款流星雨灯!现把它共享给我们!
二、PCB文件共享:
三、原理图共享:
四、
上面只做了5根灯管,假如需求添加灯管的话,只需略微改动下 下面的程序即可.假如增加
连线把灯管摆成圆形或许方形作用也比较牛逼的.
此款流星灯直径只要1.5公分只能够做30公分、50公分、80公分、1000公分等 。
这个东东主要是做装修用,技术支持:http://www.51hei.com/下面揭露悉数的源代码.
请我们多多指教.程序代码我们能够随意修正,但不可用于商业用途.
/*流星雨程序代码 作者:胡琴 2011-12-12
单片机类型:STC11F04 IO口16个!原理:
使用PWM来模似流星雨:将亮度等级分为8个
,经过改动每一组LED的亮度来到达流星雨作用。
(由于流星雨是前面亮后边越来越暗,就像一条龙相同,拖着尾巴过来),
完好的程序源代码下载:http://www.51hei.com/f/ledss.rar
*/
#include
#define uchar unsigned char//字浮型宏界说
#define uint unsigned int//整型宏界说
#define shudu 3 //LED突变速度调整
uchar yin0 =31;//LED改变等级调整
uchar yin1 =63;//LED改变等级调整
uchar yin2 =95;//LED改变等级调整
uchar yin3 =127;//LED改变等级调整
uchar yin4 =159;//LED改变等级调整
uchar yin5 =191;//LED改变等级调整
uchar yin6 =223;//LED改变等级调整
uchar yin7 =255;//LED改变等级调整
sbit led0=P3^5;//16个IO口
sbit led1=P3^6;
sbit led2=P3^0;
sbit led3=P3^1;
sbit led4=P3^2;
sbit led5=P3^3;
sbit led6=P3^4;
sbit led7=P3^7;
sbit led8=P1^0;
sbit led9=P1^1;
sbit led10=P1^2;
sbit led11=P1^7;
sbit led12=P1^6;
sbit led13=P1^5;
sbit led14=P1^4;
sbit led15=P1^3;
uchar d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15;//各IO口变量
/**********************延时子程序*******************/
/***************************************************/
void delay(uint z)
{
uint x,y;//局部变量界说
for(x=0;x<5;x++)//延时外循环
for(y=0;y
/**********************************************/
/**********PWM操控红绿兰3种灯亮灭时刻**********/
/**********************************************/
void RGBpwm(uchar d0,uchar d1,uchar d2,uchar d3,uchar d4,uchar d5,uchar d6,uchar d7,uchar d8,uchar d9,uchar d10,uchar d11,uchar d12,uchar d13,uchar d14,uchar d15)//3个局部变量,些部分为带参数函数
{
if(d0!=0)
{
led0=0;
delay(d0);
led0=1;//1
}
if(d1!=0)
{
led1=0;
delay(d1);
led1=1;//1
}
if(d2!=0)
{
led2=0;
delay(d2); //2
led2=1;
}
if(d3!=0)
{
led3=0;
delay(d3);
led3=1;//3
}
if(d4!=0)
{
led4=0;
delay(d4);
led4=1;//4
}
if(d5!=0)
{
led5=0;
delay(d5);
led5=1;//5
}
if(d6!=0)
{
led6=0;
delay(d6);
led6=1;//6
}
if(d7!=0)
{
led7=0;
delay(d7);
led7=1;//7
}
if(d8!=0)
{
led8=0;
delay(d8);
led8=1;//8
}
if(d9!=0)
{
led9=0;
delay(d9);
led9=1;//9
}
if(d10!=0)
{
led10=0;
delay(d10); //10
led10=1;
}
if(d11!=0)
{
led11=0;
delay(d11);
led11=1;//11
}
if(d12!=0)
{
led12=0;
delay(d12);
led12=1;//12
}
if(d13!=0)
{
led13=0;
delay(d13); //13
led13=1;
}
if(d14!=0)//14
{
led14=0;
delay(d14);
led14=1;
}
if(d15!=0)//15
{
led15=0;
delay(d15);
led15=1;
}
}