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

本文详细介绍了如何使用51单片机制作LED流星雨灯,包括程序代码、原理图和制作技巧。通过调整程序中的亮度等级和速度参数,可以实现不同效果的流星雨。代码可供学习和修改,但不得用于商业用途。
摘要由CSDN通过智能技术生成

本文主要介绍了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 d

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include <AT89x52.H> //#include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar code hanzi[]; uchar code timer[11][16]; uchar code sw[]; void Show_word(); void Show_pass(); void Send_data(unsigned char *d); sbit resget=P0^7; sbit key_moda=P0^6; sbit key_up=P0^5; sbit key_Down=P0^4; sbit T_CLK=P0^2; sbit T_IO =P0^1; sbit T_RST=P0^0; sbit ACC0=ACC^0; sbit ACC7=ACC^7; uchar starts_time[7]={0x00,0x10,0x22,0x11,0x06,0x07,0x06}; uchar Move,Speed,Flicker,line,Sec,Cent,Hour,Year,Month,Day,Week; uchar a,b,f,h,msec,id,x; uint zimuo; uchar BUFF[10]; void RTInputByte(uchar); uchar RTOutputByte(void); void W1302(uchar, uchar); uchar R1302(uchar); void Set1302(uchar *); void du1302(); void DelayMs(void); void Set(uchar,uchar ); void in_data(); void rxd_data(); void main() { Move=0; zimuo=0; TMOD=0x01; TH0=0x3c; TL0=0xb0; EA=1; TR0=1; ET0=1; SCON=0; while(zimuo<512) { while(Move<16) { for(Speed=0;Speed<10;Speed++) { for(line=0;line<16;line++) { in_data(); rxd_data(); P2_4=1; DelayMs(); P2_7=1; P2=sw[line]; DelayMs(); } } Move++; } Move=0; zimuo=zimuo+32; } zimuo=0; while(1) { if(resget==0) { DelayMs(); if(resget==0) Set1302(starts_time); W1302(0x8e,0x00); W1302(0x90,0xa5); } du1302(); if (key_moda==0) { DelayMs(); if(key_moda==0) { if(id++==9) {id=0;} h=0;msec=0; while(key_moda==0){ Show_word();} } } if(id!=0) { if (key_up==0) { DelayMs(); if(key_up==0) { while(key_up==0) {Show_word();} h=0;msec=0; Set(id,0); } } if (key_Down==0) { DelayMs(); if(key_Down==0) { while(key_Down==0) {Show_word();} h=0;msec=0; Set(id,1); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值