当前位置: 首页 > ops >正文

32LED心形灯程序源代码

#include

unsigned int m=1;

void delayms(int n)       //延时

int       i;

for(;n>0;n--)

for(i=330;i>0;i--)

;

}

void way1()          //花样1:32个LED灯同时从灭到亮

{        

       int k;

       k=m+5;

       while(k)

       {

       int i=5,j=5;

       for(;j>0;j--)

       P0=0X00;

        P1=0X00;

       P2=0X00;

       P3=0X00;

       delayms(200);

        for(;i>0;i--)

       P0=0Xff;

        P1=0Xff;

       P2=0Xff;

       P3=0Xff;

       delayms(200);  

       k--;

       }

}

void way2()  //花样2:交叉点亮,从右往左依次点亮,再依返回。

{        

unsigned int k;

unsigned char temp,temp1,sum=0;

 unsigned int i,j;

       k=m;      

while(k)

       {      

       for(j=2;j>0;j--)

       {

       P0=0X00;P1=0X00;P2=0X00; P3=0X00;//r->l

       delayms(500);

       P0=0Xff;

       P1=0Xff;

       P2=0xff;

       P3=0xff;

      

              temp=0x01;

              for(i=0;i<9;i++)

              {      

                     P0=~temp;

                     delayms(70);

                     temp=temp<<1; 

                     }                    

              temp=0x01;

              for(i=0;i<9;i++)

              {      

                     P2=~temp;

                     delayms(70);

                     temp=temp<<1;

                     }

              temp=0x01;

              for(i=0;i<9;i++)

              {      

                     P3=~temp;

                     delayms(70);

                     temp=temp<<1;

                     }

                 temp=0x01;

              for(i=0;i<9;i++)

              {      

                     P1=~temp;

                     delayms(70);

                     temp=temp<<1;

                     }

          P0=0X00;P1=0X00;P2=0X00; P3=0X00;//l->r

       delayms(500); 

       P0=0Xff;

       P1=0Xff;

       P2=0xff;

       P3=0xff;

      

              temp=0x80;

              for(i=0;i<9;i++)

              {      

                     P1=~temp;

                     delayms(70);

                     temp=temp>>1;

                     }

              temp=0x80;

              for(i=0;i<9;i++)

              {      

                     P3=~temp;

                     delayms(70);

                     temp=temp>>1;

                     }

                 temp=0x80;

              for(i=0;i<9;i++)

              {             

                     P2=~temp;

                     delayms(70);

                     temp=temp>>1;

                     }   

              temp=0x80;

              for(i=0;i<9;i++)

              {      

                     P0=~temp;

                     delayms(70);

                     temp=temp>>1;

                    

                     }                    

       P0=0X00;P1=0X00;P2=0X00; P3=0X00;

       delayms(500);

       P0=0Xff;

       P1=0Xff;

       P2=0xff;

       P3=0xff;

              temp=0x01;temp1=0x80;

              for(i=0;i<9;i++)

              {      

                     P0=~temp;      

                     P1=~temp1;

                     temp=temp<<1;temp1=temp1>>1;

                     delayms(70);

                     }                    

              temp=0x01;temp1=0x80;

              for(i=0;i<9;i++)

              {      

                     P2=~temp;      

                     P3=~temp1;

                     temp=temp<<1;temp1=temp1>>1;

                     delayms(70);

                     }

              temp=0x01;temp1=0x80;

              for(i=0;i<9;i++)

              {      

                     P3=~temp;      

                     P2=~temp1;

                     temp=temp<<1;temp1=temp1>>1;

                     delayms(70);

                     }

                 temp=0x01;temp1=0x80;

              for(i=0;i<9;i++)

              {      

                     P1=~temp;      

                     P0=~temp1;

                     temp=temp<<1;temp1=temp1>>1;

                     delayms(70);

                     }

         }

                     k--;

       }

}

void way3()      

{

 unsigned int i,sum,sum1,k,temp1;

 unsigned int temp=0x01;

 k=m;

        P0=0Xff; //两边同时向下闪

       P1=0Xff;

       P2=0xff;

       P3=0xff;

 while(k)

 {

        temp1=0xfe;

       temp=0x7f;

       sum=0;

 for(i=0;i<8;i++)

        {

       P0=temp1;

       P1=temp;

       delayms(100);

        temp1=temp1<<1;

       temp=temp>>1;      

        }

       temp1=0xfe;

       temp=0x7f;

       sum=0;

 for(i=0;i<8;i++)

        {

       P2=temp1;

       P3=temp;

       delayms(100);

        temp1=temp1<<1;

       temp=temp>>1;      

        }

       P0=0X00;  //全亮

       P1=0X00;

       P2=0x00;

       P3=0x00;

       delayms(100);

       temp=0x01;          //返回

       temp1=0x80;      

       sum=0;sum1=0;

 for(i=0;i<8;i++)

         {       

        sum=sum+temp;P3=sum;temp=temp<<1;

       sum1=sum1+temp1;P2=sum1;temp1=temp1>>1;      

       delayms(100);

        }

       P2=0Xff; P3=0xff;      

       delayms(100);

        temp=0x01;

       temp1=0x80;

       sum=0;sum1=0;

 for(i=0;i<8;i++)

        {

       sum=sum+temp;P1=sum;temp=temp<<1;

       sum1=sum1+temp1;P0=sum1;temp1=temp1>>1;      

       delayms(100);             

        }

       P0=0Xff; //两边同时向上闪

       P1=0Xff;

       P2=0xff;

       P3=0xff;

        temp1=0xfe;

       temp=0x7f;

       sum=0;

 for(i=0;i<8;i++)

        {

       P3=temp1;

       P2=temp;

       delayms(100);

        temp1=temp1<<1;

       temp=temp>>1;      

        }

       temp1=0xfe;

       temp=0x7f;

       sum=0;

 for(i=0;i<8;i++)

        {

       P1=temp1;

       P0=temp;

       delayms(100);

        temp1=temp1<<1;

       temp=temp>>1;      

        }  

       P0=0X00;  //全亮

       P1=0X00;

       P2=0x00;

       P3=0x00;

       delayms(100);

       temp=0x01;          //返回

       temp1=0x80;      

       sum=0;sum1=0;

 for(i=0;i<8;i++)

         {       

        sum=sum+temp;P0=sum;temp=temp<<1;

       sum1=sum1+temp1;P1=sum1;temp1=temp1>>1;      

       delayms(100);

        }

        temp=0x01;

       temp1=0x80;

       sum=0;sum1=0;

 for(i=0;i<8;i++)

        {

       sum=sum+temp;P2=sum;temp=temp<<1;

       sum1=sum1+temp1;P3=sum1;temp1=temp1>>1;      

       delayms(100);             

        }

        k--;

 }

 }

void way4()             //相间交叉闪烁

{

   unsigned int temp=0x55;

    unsigned int k,j;

       k=m+3;j=m+3;

       while(k)

       {

       P0=~temp;

       P1=~temp;

       P2=~temp;

       P3=~temp;

       delayms(200);

       P0=temp;

       P1=temp;

       P2=temp;

       P3=temp;

       delayms(200);

       k--;

       }

       while(j)

       {

       P0=temp;

       P1=temp;

       P2=temp;

       P3=temp;

       delayms(200);

       P0=~temp;

       P1=~temp;

       P2=~temp;

       P3=~temp;

       delayms(200);

       j--;

       }

}

 void way5()  

 {

 unsigned int k,j;       //8个灯一起亮并旋转

 k=m+4;j=m+4;

 while(k)

 {

 P0=0xaa;delayms(200);

 P0=0xff;

 P0=0x55;delayms(200);

 P0=0xff;

 P2=0xaa;delayms(200);

 P2=0xff;

 P2=0x55;delayms(200);

 P2=0xff;

 P3=0xaa;delayms(200);

 P3=0xff;

 P3=0x55;delayms(200);

 P3=0xff;

 P1=0xaa;delayms(200);

 P1=0xff;

 P1=0x55;delayms(200);

 P1=0xff;

 k--;

 }

 while(j)

 {

 P1=0x55;delayms(200);

 P1=0xff;

 P1=0xaa;delayms(200);

 P1=0xff;

 P3=0x55;delayms(200);

 P3=0xff;

 P3=0xaa;delayms(200);

 P3=0xff;

 P2=0x55;delayms(200);

 P2=0xff;

 P2=0xaa;delayms(200);

 P2=0xff;

 P0=0x00;delayms(200);

 P0=0xff;

 P0=0xaa;delayms(200);

 P0=0xff;

 j--;

 }

 }

 void way6()         //两边同时对称闪

 {

  unsigned int i,j,sum,sum1,k,temp1;

 k=m+1;   

 while(k)

 {      

        P0=0Xff;

       P1=0Xff;

       P2=0xff;

       P3=0xff;

        for(j=3;j>0;j--)

       {

        temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P0=temp1;

       P3=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }  

       temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P2=temp1;

       P1=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0Xff;

       delayms(100);

       }

       for(j=3;j>0;j--)

       {         

       temp1=0x7f;         //返回

 for(i=0;i<8;i++)

         {       

       P1=temp1;P2=temp1;temp1=temp1>>1;      

       delayms(100);       

        }

       temp1=0x7f;

 for(i=0;i<8;i++)

        {

       P3=temp1;P0=temp1;temp1=temp1>>1;      

       delayms(100);             

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0xff;

       delayms(100);

       }

       way3();

       for(j=3;j>0;j--)

       {

       temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P0=temp1;

       P3=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0Xff;

       delayms(100);

       temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P2=temp1;

       P1=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0Xff;

       delayms(100);

       }

       for(j=3;j>0;j--)

       {

       temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P0=temp1;

       P3=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0Xff;

       delayms(100);

       temp1=0xfe;

 for(i=0;i<8;i++)

        {

       P2=temp1;

       P1=temp1;

       delayms(100);

        temp1=temp1<<1;      

        }   

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0Xff;

       delayms(100);

       }

       for(j=3;j>0;j--)

       {         

       temp1=0x7f;         //返回

 for(i=0;i<8;i++)

         {       

       P1=temp1;P2=temp1;      

       delayms(100);

       temp1=temp1>>1;             

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0xff;

       delayms(100);

       temp1=0x7f;

 for(i=0;i<8;i++)

        {

       P3=temp1;P0=temp1;      

       delayms(100);

       temp1=temp1>>1;             

        }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0xff;

       delayms(100);      

       }

       k--;

       }

 }

 void way7()

 {

        unsigned int temp,temp1,temp2,i,j;

      

       temp1=0xfe;

       for(j=0;j<8;j++)

       {      

       temp=temp1;

       for(i=0;i<8;i++)

       {

              P0=temp;

              temp=temp<<1;

              delayms(100);

       }

       P0=temp1;

       delayms(100);

       temp=temp1;

       for(i=0;i<8;i++)

       {

              P2=temp;

              temp=temp<<1;

              delayms(100);

       }

       P2=temp1;

       delayms(100);

       temp=temp1;

       for(i=0;i<8;i++)

       {

              P3=temp;

              temp=temp<<1;

              delayms(100);

       }

       P3=temp1;

       delayms(100);

       temp=temp1;

       for(i=0;i<8;i++)

       {

              P1=temp;

              temp=temp<<1;

              delayms(100);

       }

       P1=temp1;

       delayms(100);

       temp1=temp1<<1;

       delayms(100);

       }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0xff;

       delayms(100);

       temp2=0x7f;

       for(j=0;j<8;j++)

       {      

       temp=temp2;

       for(i=0;i<8;i++)

       {

              P1=temp;

              temp=temp>>1;

              delayms(100);

       }

       P1=temp2;

       delayms(100);

       temp=temp2;

       for(i=0;i<8;i++)

       {

              P3=temp;

              temp=temp>>1;

              delayms(100);

       }

       P3=temp2;

       delayms(100);

       temp=temp2;

       for(i=0;i<8;i++)

       {

              P2=temp;

              temp=temp>>1;

              delayms(100);

       }

       P2=temp2;

       delayms(100);

       temp=temp2;

       for(i=0;i<8;i++)

       {

              P0=temp;

              temp=temp>>1;

              delayms(100);

       }

       P0=temp2;

       delayms(100);

       temp2=temp2>>1;

       delayms(100);

       }

       P0=0Xff;  //全灭

       P1=0Xff;

       P2=0xff;

       P3=0xff;

       delayms(100);

 }

void main()   

{

while (1)

{

way1();

way2();

way3();      

way6();

way3();

way7();      

way4();

way5();      

}

}

http://www.xdnf.cn/news/7085.html

相关文章:

  • 常见的 HTTP 接口(请求方法)
  • PCB设计(十九)PCB设计中NPN/PNP选型策略
  • Window远程连接Linux桌面版
  • 掘金欧洲宠物经济新蓝海:比利时天然宠粮市场爆发与跨境新机遇
  • c++从入门到精通(六)--特殊工具与技术-完结篇
  • Azure 机器学习初学者指南
  • Nacos数据写入流程
  • 深入理解EKS 工作节点的网络架构
  • Cadence学习笔记之---PCB器件放置与布局
  • SSM框架整合:从入门到实战
  • 大模型微调步骤整理
  • Flink CEP是什么?
  • 【数据结构与算法】ArrayList 与顺序表的实现
  • C++23 新特性:使某些视图的多参数构造函数显式化(P2711R1)
  • HBM的“暗战”
  • Spring AOP从0到1
  • STM32CubeMX生成UTF-8编码文件的设置方法
  • 第12章 Java多线程机制
  • 阶段四 项目1-苍穹外卖 第一章 Git
  • 基于matlab/simulink锂电池算法学习集合(SOC、SOH、BMS)
  • FloodFill算法:洪水般的图像处理艺术
  • #Redis黑马点评#(六)Redis当中的消息队列
  • 从0到1吃透卷积神经网络(CNN):原理与实战全解析
  • Java基于数组的阻塞队列实现详解
  • Qt音视频开发过程中一个疑难杂症的解决方法/ffmpeg中采集本地音频设备无法触发超时回调
  • 健康生活:养生实用指南
  • 浅谈无服务器WebSocket的优势
  • 什么是open BMC?
  • Spring AI Alibaba集成阿里云百炼大模型
  • 异常日志规范