基于51的爱心流水灯源码,爱心灯DIY原理图

  1. 这不女友快生日了吗,所以就打算送他一份非常精美的,且有心意的礼物,所以就做了个非常有爱的心形LED灯
  2. 
    
  3. 
    




  1. 1.灯:采用32颗高透明5mm七彩LED设计
    2.音乐:自带靓音蜂鸣器,4首歌曲轮流播放,声音清脆靓丽,后期还会增加的哦
    3.红色:大红色PCB更艳丽,尽显自己的心意,作为礼品赠送更大气
    4.心形:心形底板,PCB就代表我的心
    5.照片:还能在中间放上心仪者的照片哦!!超有爱
    6.电路:电路通过计算省略很多元件,电路更简洁,焊接容易,看着更舒服
    7.焊接:多处焊接点进行优化,大焊盘更易焊接,miniUSB口也特殊处理了哦,人性化设计
    8.外壳:高品质亚克力外壳更精美,透亮,
    9.结构:外壳结构精心设计,只用几颗螺丝就能做到严丝合缝,抛弃有毒的胶水
    10.动画:50个动画,看的眼花撩轮,心花怒放
    
  2. 
    
  3. 部分源代码
  4. 
    
  5. #include<reg52.h>  
    #include<intrins.h>  
    #define uint unsigned int  
    #define uchar unsigned char  
    void delays(uint xms)  
    {  
        uint i,j;  
        for(i=xms;i>0;i--)  
           for(j=110;j>0;j--);  
    }  
    void main()  
    {  
         uint i,j,n; uchar a,b,c,d;   
         for(i=0;i<1;i++)       //                                                               所有灯闪1下  
         {  
             P0=P1=P2=P3=0x00;delays(1000);  
             P0=P1=P2=P3=0xff;delays(1000);  
         }                         
                           P3=P2=0xff;                                                        //两边一起向下流水  
                           for(j=0;j<=8;j++)  
                           {  
                               P1=0xff<<j;P0=0xff<<j;delays(40);  
                           }  
                           for(j=0;j<=8;j++)  
                           {  
                               P3=0xff<<j; P2=0xff>>j;delays(40);  
                           }  
                           P0=P1=P2=P3=0x00;delays(500);  
                           for(j=0;j<8;j++)  
                           {P3=0xff<<(7-j);P2=0xff>>(7-j);delays(40);  
                           }  
                          for(j=0;j<8;j++)  
                           {  
                               P0=0xff<<(7-j);P1=0xff<<(7-j);delays(40);  
                           }                                 
                                        P3=P2=0xff;           //两边 杂乱 闪烁  
                                        for(j=0;j<=8;j++)  
                                        {P1=0xff<<j; P0=0xff<<j; delays(40);  
                                        }  
                                        for(j=0;j<=8;j++)  
                                        {P3=0xff>>j;P2=0xff<<j; delays(40);  
                                        }  
                                        P0=P1=P2=P3=0x00;delays(500);  
                                        for(j=0;j<8;j++)  
                                        {P1=0xff>>(7-j);P0=0xff>>(7-j);delays(40);  
                                        }  
                                        for(j=0;j<8;j++)  
                                        {P2=0xff>>(7-j);P3=0xff<<(7-j);delays(40);  
                                        }                                   
            P0=P1=P2=P3=0xff;    //一边向下流水  
            for(j=0;j<=8;j++)  
            { P1=0xff<<j;delays(30);  
            }        
            for(j=0;j<=8;j++)  
            {  
                  P3=0xff<<j;delays(30);  
            }  
            for(j=0;j<=8;j++)  
            {  
                  P2=0xff<<j;delays(30);  
            }  
            for(j=0;j<=8;j++)  
            {  
                  P0=0xff>>j;delays(30);  
            }    
            P0=P1=P2=P3=0x00;  
            delays(500)  ;  
            for(j=0;j<8;j++)  
            {   
                  P0=0xff>>(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P2=0xff<<(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P3=0xff<<(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P1=0xff<<(7-j);delays(30);  
            }  
            P0=P1=P2=P3=0xff;  
            for(j=0;j<=8;j++)  
            {  
                  P0=0xff<<j; delays(30);  
            }        
            for(j=0;j<=8;j++)  
            {  
                  P2=0xff>>j; delays(30);  
            }  
            for(j=0;j<=8;j++)  
            {  
                  P3=0xff>>j;delays(30);  
            }  
            for(j=0;j<=8;j++)  
            {  
                  P1=0xff>>j;delays(30);  
            }    
            P0=P1=P2=P3=0x00;  
            delays(500)  ;  
            for(j=0;j<8;j++)  
            {   
                  P1=0xff>>(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P3=0xff>>(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P2=0xff>>(7-j);delays(30);  
            }  
            for(j=0;j<8;j++)  
            {   
                  P0=0xff<<(7-j);delays(30);  
            }  //2    
                                         P0=P2=P3=0xff ;  
                           for(i=0;i<=8;i++)  
             {   P1=0xff<<i;delays(50);  
             } delays(800);  
             for(i=0;i<8;i++)  
             {   P1=0xff>>(7-i);delays(50);  
             }  P0=P1=P2=0xff;  
                  for(i=0;i<=8;i++)  
                  {  P3=0xff<<i;delays(50);  
                  }   delays(800);  
                  for(i=0;i<8;i++)  
                  {   P3=0xff>>(7-i);delays(50);  
                  }P0=P1=P3=0xff;   
             for(i=0;i<=8;i++)  
             {  P2=0xff<<i;delays(50);  
                                           }   delays(800);  
             for(i=0;i<8;i++)  
                                           {   P2=0xff>>(7-i);delays(50);  
                                           } P1=P2=P3=0xff;  
                  for(i=0;i<=8;i++)  
                  {  P0=0xff>>i;delays(50);  
                  }      delays(800);  
                  for(i=0;i<8;i++)  
                  {  P0=0xff<<(7-i);delays(50);  
                  }   
            P2=P3=0xff;for(i=0;i<=8;i++)  
                       {  
             P0=0xff<<i;P1=0xff<<i;delays(50);  
        }delays(800);  
        for(i=0;i<8;i++)  
        {  
             P0=0xff>>(7-i);P1=0xff>>(7-i);delays(50);       
        }P0=P1=0xff;  
             for(i=0;i<=8;i++)  
             {  
                 P3=0xff<<i;P2=0xff>>i;delays(50);  
             }delays(800);  
             for(i=0;i<8;i++)  
             {  
                 P3=0xff>>(7-i);P2=0xff<<(7-i);delays(50);  
             }  
             for(i=0;i<3;i++)  
             {  
                 P1=P3=P2=0xcc;P0=0x33;delays(500);P1=P3=P2=0x33;P0=0xcc;delays(500);  
             }  
                              P1=P3=P2=0xcc;   P0=0x33;           //首先逆时针  
                                                            for(i=0;i<120;i++)  
                                                            {      
                                                                   delays(100);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);  
                                                            }  
                                                            delays(1500) ;  
                                                            for(i=0;i<120;i++)  
                                                            {      
                                                                   delays(100); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);  
                                                             } delays(1000);  
        P1=P3=P2=0x0f;   P0=0xf0;           //首先逆时针  
        for(i=0;i<80;i++)  
         {      
            delays(120);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);  
         }  
         delays(1500) ;  
          for(i=0;i<80;i++)  
         {      
            delays(120); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);  
         }    
                    P1=P3=P0=0x77;P2=0xee;  
                    for(i=0;i<50;i++)    //四口来回转  
                    {      
                            delays(100);P0=_crol_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_cror_(P2,1);  
                    }       
      P0=P3=0xff;P1=P2=0xfe;  
                            for(i=0;i<8;i++)  
             {      delays(30);  
                    P1=_crol_(P1,1);P2=_crol_(P2,1);   
             }P1=P2=0xff;P3=0xfe;P0=0x7f;  
             for(i=0;i<8;i++)  
             {      delays(30);  
                    P3=_crol_(P3,1);P0=_cror_(P0,1);  
             }P0=0xfe;P3=0x7f;a=0x7f;  b=0xfe;  
          for(j=1;j<8;j++)  
          {  c=0xff<<j;d=0xff>>j;  
             P1=P2=0xfe;  
                            for(i=0;i<=7;i++)  
             {      delays(30);  
                    P1=_crol_(P1,1);P2=_crol_(P2,1);  
             }P1=P2=0xff;                 
                                                          for(i=0;i<7;i++)  
                                                          {      
                    P0=a&c;P3=b&d;delays(30);  
                                                                 a=_cror_(a,1);b=_crol_(b,1);                                                                  
                                                          }  
           } P0=P3=0x00;b=0xfe;  
         for(j=1;j<8;j++)  
         {  d=0xff>>j;  
               for(i=0;i<7;i++)  
               {  
                  P1=b&d;P2=b&d;delays(30);b=_crol_(b,1);  
               }             
         }  
      n=2;     while(n)  
              {  
                 P1=P2=P3=0x7f;P0=0xfe;  
                 for(i=0;i<7;i++)  
                 {   delays(100);P1=_cror_(P1,1);P2=_cror_(P2,1);P3=_cror_(P3,1);P0=_crol_(P0,1);  
                 } delays(100);  
                 c=0xfe;d=0x7f;a=0x7f;b=0xfe;   
                for(j=0;j<9;j++)  
                {                 
                   for(i=0;i<=8;i++)  
                   {    
                      P1=P2=P3=c&a;P0=b&d;delays(100);  
       a=_cror_(a,1);b=_crol_(b,1);                      
                   } c=_cror_(c,1);d=_crol_(d,1); a=c;b=d;  
                }n--;  
              }  
                                         P3=P2=0xff;        //两边一起向下亮  
                                         for(j=0;j<=8;j++)  
                                         {  
                                               P1=0xff<<j;P0=0xff<<j;delays(40);  
                                         }  
                                         for(j=0;j<=8;j++)  
                                         {  
                                               P3=0xff<<j; P2=0xff>>j;delays(40);  
                                         }  
    while(1)                                                       //一心调频率接近的跳动  
    {  
        P0=P1=P2=P3=0x00;delays(800);  
        P0=P1=P2=P3=0xff;delays(800);  
    }   
    }  

    如果喜欢的话可以直接在淘宝里面搜索“成长路DIY”



  • 11
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值