本文主要介绍了LED流星雨灯的制作原理,包括成品图片,电路原理图以及所用的51单片机的程序代码。

一、图片分享:

二、PCB文件分享:

三、原理图分享:

上面只做了5根灯管,如果需要增加灯管的话,只需稍微改动下 下面的程序即可。如果增长

连线把灯管摆成圆形或者方形效果也比较牛逼的。

此款流星灯直径只有1.5公分只可以做30公分、50公分、80公分、1000公分等 。

程序代码大家可以随意修改,但不可用于商业用途。

/*流星雨程序代码

单片机型号:STC11F04 IO口16个!原理:

利用PWM来模似流星雨:将亮度等级分为8个

,通过改变每一组LED的亮度来达到流星雨效果。

(因为流星雨是前面亮后面越来越暗,就像一条龙一样,拖着尾巴过来),

完整的程序源代码下载:http://www.51hei.com/f/ledss.rar

*/

#include《reg52.h》//MCU头文件

#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《z;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;

}

}

/***********************************************/

/********************主程序*********************/

/***********************************************/

void main()

{

TMOD=0x01;

EA=1;

ET0=1;

TR0=1;

TH0=(65536-56)/256;

TL0=(65536-56)%256;

while(1)//程序主循环

{

RGBpwm(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15);//调用RGBpwm子程序

}

}

/*************************************************/

/*中断服务子程序(控制LED红绿兰亮灭时间占空比例)*/

/*************************************************/

void zhong() interrupt 1//中断向量位为1

{

uint num;//定时器计数变量

uint ji;//亮度等级控制变量

TH0=(65536-500)/256;//给定时器高8位赋值

TL0=(65536-500)%256;//给定时器低8位赋值

num++;//将定时计数变自动增加1

if(num==shudu)//如果速度变量等于定时计数器变量就执行下面大括号语句

{

num=0;//将计数器清0

ji++;//将亮度等级控制变量加1

if((ji》0)&&(ji《10))//移位移动 流水。..。.

{

d0=yin7;

d1=0;

d2=0;

d3=0;

d4=0;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》10)&&(ji《20))//23456789

{

d0=yin6;

d1=yin7;

d2=0;

d3=0;

d4=0;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》20)&&(ji《30))//345678910

{

d0=yin5;

d1=yin6;

d2=yin7;

d3=0;

d4=0;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》30)&&(ji《40))//4567891011

{

d0=yin4;

d1=yin5;

d2=yin6;

d3=yin7;

d4=0;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》40)&&(ji《50))//12345678

{

d0=yin3;

d1=yin4;

d2=yin5;

d3=yin6;

d4=yin7;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》50)&&(ji《60))//23456789

{

d0=yin2;

d1=yin3;

d2=yin4;

d3=yin5;

d4=yin6;

d5=yin7;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》60)&&(ji《70))//345678910

{

d0=yin1;

d1=yin2;

d2=yin3;

d3=yin4;

d4=yin5;

d5=yin6;

d6=yin7;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》70)&&(ji《80))//4567891011

{

d0=yin0;

d1=yin1;

d2=yin2;

d3=yin3;

d4=yin4;

d5=yin5;

d6=yin6;

d7=yin7;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》80)&&(ji《90))//12345678

{

d0=0;

d1=yin0;

d2=yin1;

d3=yin2;

d4=yin3;

d5=yin4;

d6=yin5;

d7=yin6;

d8=yin7;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》90)&&(ji《100))//345678910

{

d2=yin0;

d3=yin1;

d4=yin2;

d5=yin3;

d6=yin4;

d7=yin5;

d8=yin6;

d9=yin7;

d0=0;

d1=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》100)&&(ji《110))//345678910

{

d3=yin0;

d4=yin1;

d5=yin2;

d6=yin3;

d7=yin4;

d8=yin5;

d9=yin6;

d10=yin7;

d0=0;

d1=0;

d2=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if((ji》110)&&(ji《120))//4567891011

{

d4=yin0;

d5=yin1;

d6=yin2;

d7=yin3;

d8=yin4;

d9=yin5;

d10=yin6;

d11=yin7;

d1=0;

d2=0;

d3=0;

d12=0;

d0=0;

d13=0;

d14=0;

d15=0;

}

if((ji》120)&&(ji《130))//56789101112

{

d5=yin0;

d6=yin1;

d7=yin2;

d8=yin3;

d9=yin4;

d10=yin5;

d11=yin6;

d12=yin7;

d0=0;

d1=0;

d2=0;

d3=0;

d4=0;

d13=0;

d14=0;

d15=0;

}

if((ji》130)&&(ji《140))//678910111213

{

d6=yin0;

d7=yin1;

d8=yin2;

d9=yin3;

d10=yin4;

d11=yin5;

d12=yin6;

d13=yin7;

d0=0;

d1=0;

d2=0;

d3=0;

d4=0;

d5=0;

d14=0;

d15=0;

}

if((ji》140)&&(ji《150))//

{

d7=yin0;

d8=yin1;

d9=yin2;

d10=yin3;

d11=yin4;

d12=yin5;

d13=yin6;

d14=yin7;

d0=0;

d1=0;

d2=0;

d3=0;

d4=0;

d5=0;

d6=0;

d15=0;

}

if((ji》150)&&(ji《160))//

{

d8=yin0;

d9=yin1;

d10=yin2;

d11=yin3;

d12=yin4;

d13=yin5;

d14=yin6;

d15=yin7;

d0=0;

d1=0;

d2=0;

d3=0;

d4=0;

d5=0;

d6=0;

d7=0;

}

if((ji》160)&&(ji《450))//让所有LED都灭掉 等待下一次流星。..。..

{

d0=0;

d1=0;

d2=0;

d3=0;

d4=0;

d5=0;

d6=0;

d7=0;

d8=0;

d9=0;

d10=0;

d11=0;

d12=0;

d13=0;

d14=0;

d15=0;

}

if(ji》450)

{

TR0=0;

ji=0;

TR0=1;

}

}

}

打开APP精彩内容

点击阅读全文

单片机流星灯_LED流星雨灯的制作(51单片机程序代码)相关推荐

  1. 详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器, ...

  2. 单片机小白学步系列(三) 偶遇51单片机

    单片机有很多种,比较常见的有51单片机,AVR,MSP430,PIC,STM32等.现在我将从比较简单易学的51单片机说起,带领大家进入单片机的精彩世界. 20世纪80年代美国Intel公司推出MCS ...

  3. 单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程(附仿真文件+源代码)

    功能:按一下开关后,单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程 单片机控制蜂鸣器唱生日快乐歌曲 程序源代码如下: /* 生日歌 */ #include <reg51.h&g ...

  4. 7-51单片机ESP8266学习-AT指令(测试TCP服务器--51单片机程序配置8266,用手机TCP调试助手发信息给单片机控制小灯的亮灭)

    http://www.cnblogs.com/yangfengwu/p/8759294.html  如不做任何说明默认最头上的链接为上一篇链接,末尾的链接为下一篇链接 先把源码和资料链接放到这里 链接 ...

  5. 51单片机的四路抢答器c语言,用51单片机制作4路抢答器

    此抢答器具有限时抢答,超时无效的特点,并可以对主持人未喊开始而提前抢答的犯规情况作出判断. 由于用了单片机,所以电路很简单.懒得写译码程序,也不想做驱动电路.干脆直接用了一片74LS48译码驱动器来驱 ...

  6. 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...

    <基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...

  7. 51单片机c语言数字输入输出,第五章 51单片机C语言程序--输入输出接口.pdf

    四川师范大学成都学院 51单片机原理及应用 单片机输入/输出口(I/O口) 主讲教师:刘强 四川师范大学成都学院电子竞赛培训实验中心(刘强) 明德.博学.求实.创新 复习1.单片机的外观 AT89C5 ...

  8. 单片机与PC机一样都是计算机,51单片机与PC机通信资料

    <51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...

  9. 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

    一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...

最新文章

  1. js练习 好友列表选择
  2. 为什么添加Web引用后,客户端就能远程调用WebService了?
  3. 阿里云的linux服务器简单部署网站80端口
  4. boost::spirit模块实现一个类似于 XML 的小型解析器的测试程序
  5. 全球科技界最鼓舞人心领袖揭晓!马斯克第一,马云第五
  6. html5语义化 兼容,HTML5语义化标签,兼容性问题
  7. ajax datatype_Ajax的基本使用
  8. 对学习linux一周的总结
  9. INFORMATION_SESSION_VARIABLES feature is disabled问题
  10. java常用数据结构有哪些
  11. 用vuejs如何实现ajax,vuejs使用FormData实现ajax上传图片文件
  12. vmware桌面云建设项目方案建议书(包含GPU)
  13. 为什么台湾的Yahoo!叫奇摩 ?
  14. 星际2 正在连接服务器,星际征霸游戏连接服务器失败怎么办 解决方案分享
  15. JSON校验和JSON在线编辑器
  16. 图像倾斜校正 Radon 变换原理及函数
  17. (C语言编程)PTA里“三天打鱼两天晒网”
  18. 将 EGL 代码与 DXGI 和 Direct3D 进行比较
  19. ISTQB FL初级认证系列02:ISTQB FL初级认证考试攻略
  20. 【架构技术】分布式平台该如何演化?微服务架构实践!

热门文章

  1. python 提取pdf格式电子发票并改名
  2. 『Kaggle』Elo 用户忠诚度预测
  3. 金蝶Apusic应用服务器
  4. 2020.2.26 数学函数(吃苹果问题)
  5. 表关联之内关联用法案例详解
  6. 一级b计算机excel有几题,一级B练习的Excel题库.doc
  7. celeron处理器_NISE3600E 基于第三代Intel Core i7/i5/i3处理器,无风扇系统,1个PCIex4扩展槽...
  8. 【机器人学】冗余七自由度机械臂的解析解逆解算法
  9. wireshark抓图
  10. 利用Java计算计算贷款的月支付金额和总偿还金额