首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

基于51的爱心水流灯源码

2012-09-29 
基于51的爱心流水灯源码32颗LED的心形流水灯,是接触51跟C语言初期栋神送的,代码对新手来说还好,对高手貌略

基于51的爱心流水灯源码

32颗LED的心形流水灯,是接触51跟C语言初期栋神送的,代码对新手来说还好,对高手貌似略乱点(目前没时间重写),不过影响不大~

基于51的爱心水流灯源码

#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid 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);} }


热点排行