找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4330|回复: 1
打印 上一主题 下一主题
收起左侧

发一个自己写的心形流水灯程序 花样较多还带proteus仿真

[复制链接]
跳转到指定楼层
楼主
单片机程序加仿真,自己写的,希望有人能用到
所有资料51hei提供下载:
心形流水灯.rar (137.21 KB, 下载次数: 39)

心形流水灯的功能与花样如下:
     while(1)
    {
        ai1();        //呼吸灯
          ai2();        // 从上到下从两边依次亮
        ai3();        //从下到上从两边有一个灭的循环移动
        ai4();      //呼吸
        ai5();        //从0口到7循环左移
        ai6();        //~~~~~~~~左移
        ai7();        //全亮然后从P0和P2口的最高位向最低位依次灭
        ai8();         //P2,P3呼吸灯效果从最亮到最暗()很快
        ai9();        //从下到上从两边隔一个一亮
        ai10();        // 逆时针亮一圈
        ai11();     //从中间到两边依次灭
        ai4();      //闪烁  
        ai12();        //P0,P3逆时针全亮,p1,p2逆时针灭
        ai13();        //p0,p3全亮,p1p2循环左移

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. void delay(uint tt)
  6. {
  7.         uint i,j;
  8.         for(i=tt;i>0;i--)
  9.         for(j=110;j>0;j--);
  10. }
  11. uchar a,b,aa,bb,c,d=30;
  12. uchar code table[]={0x7f,0x5f,0x57,0x55};
  13. uchar code table1[]={0xe7,0xc3,0x81,0x00};
  14. uchar code table2[]={0x7e,0x3c,0x18,0x00};
  15. uchar code mie1[]={0x00,0x18,0x3c,0x7e,0xff};
  16. uchar code mie2[]={0x00,0x81,0xc3,0xe7,0xff};
  17. void ai1()
  18. {
  19.          for(a=0;a<4;a++)
  20.         {
  21.                 for(c=0;c<d;c++)
  22.                 {
  23.                         P0=P1=P2=P3=0x00;
  24.                         delay(c);
  25.                         P0=P1=P2=P3=0xff;
  26.                         delay(d-c);
  27.                 }
  28.                 for(c=d;c>0;c--)
  29.                 {
  30.                         P0=P1=P2=P3=0x00;
  31.                         delay(c);
  32.                         P0=P1=P2=P3=0xff;
  33.                         delay(d-c);                        
  34.                 }
  35.         }
  36. }
  37. void ai2()
  38. {
  39.          aa=0x7f;
  40.         P0=P1=P2=P3=0xff;
  41.         for(a=0;a<8;a++)
  42.         {
  43.                 aa=aa<<1 ;
  44.                 P0=P2=aa;
  45.                 delay(100);
  46.         }
  47.         aa=0x7f;
  48.         P0=P2=0x00;
  49.         P1=P3=0xff;
  50.         for(a=0;a<8;a++)
  51.         {
  52.                 aa=aa<<1 ;
  53.                 P1=P3=aa;
  54.                 delay(100);
  55.         }
  56. }
  57. void ai3()
  58. {
  59.           aa=0x01;
  60.          P0=P1=P2=P3=0x00;
  61.          for(a=0;a<8;a++)
  62.          {
  63.                  aa=_cror_(aa,1);
  64.                 P1=P3=aa;
  65.                 delay(100);
  66.          }
  67.          aa=0x01;
  68.          P0=P1=P2=P3=0x00;
  69.          for(a=0;a<8;a++)
  70.          {
  71.                  aa=_cror_(aa,1);
  72.                 P0=P2=aa;
  73.                 delay(100);
  74.          }
  75. }
  76. void ai4()
  77. {
  78.         for(a=0;a<4;a++)
  79.         {
  80.                         P0=P1=P2=P3=0x55;
  81.                         delay(100);
  82.                         P0=P1=P2=P3=0xaa;
  83.                         delay(100);
  84.         }                        
  85. }
  86. void ai5()
  87. {
  88.          P0=P1=P2=P3=0xff;
  89.         aa=0x7f;
  90.         bb=0xfe;
  91.         for(a=0;a<8;a++)
  92.         {
  93.                 aa=_crol_(aa,1);
  94.                 bb=_cror_(bb,a);
  95.                 P0=P1=aa;
  96.                 P2=P3=bb;
  97.                 delay(100);
  98.         }
  99. }
  100. void ai6()
  101. {
  102.           P0=P1=P2=P3=0xff;
  103.         aa=0x7f;
  104.         bb=0xfe;
  105.         for(a=0;a<8;a++)
  106.         {
  107.                 aa=aa<<1;
  108.                 bb=bb>>1;
  109.                 P0=P1=aa;
  110.                 P2=P3=bb;
  111.                 delay(100);
  112.         }        
  113. }
  114. void ai7()
  115. {
  116.          P0=P1=P2=P3=0x00;
  117.         aa=0xfe;
  118.         for(a=0;a<8;a++)
  119.         {
  120.                 aa=aa>>1;
  121.                 P0=P2=~aa;
  122.                 delay(100);
  123.         }
  124. }
  125. void ai8()
  126. {
  127.          P0=P2=0xff;
  128.         P1=P3=0x00;
  129.         for(c=0;c<d;c++)
  130.         {
  131.                 P1=P3=0x00;
  132.                 delay(d-c);
  133.                 P1=P3=0xff;
  134.                 delay(c);
  135.         }
  136. }
  137. void ai9()
  138. {
  139.   P0=P1=P2=P3=0xff;
  140.   for(a=0;a<4;a++)
  141.   {
  142.           P1=P3=table[a];
  143.         delay(100);
  144.   }
  145.   for(a=0;a<4;a++)
  146.   {
  147.           P0=P2=table[a];
  148.         delay(100);
  149.   }
  150. }               
  151. void ai10()
  152. {
  153.         aa=0x7f;
  154.         for(a=0;a<8;a++)
  155.         {
  156.                 aa=aa<<1;
  157.                 P0=aa;
  158.                 delay(100);
  159.         }
  160.         aa=0x7f;
  161.         for(a=0;a<8;a++)
  162.         {
  163.                 aa=aa<<1;
  164.                 P1=aa;
  165.                 delay(100);
  166.         }
  167.         aa=0xfe;
  168.         for(a=0;a<8;a++)
  169.         {
  170.                 aa=aa>>1;
  171.                 P3=aa;
  172.                 delay(100);
  173.         }
  174.         aa=0xfe;
  175.         for(a=0;a<8;a++)
  176.         {
  177.                 aa=aa>>1;
  178.                 P2=aa;
  179.                 delay(100);
  180.         }
  181. }        
  182. void ai11()
  183. {
  184.          P0=P1=P2=P3=0x00;
  185.         aa=0x7f;
  186.         for(a=0;a<8;a++)
  187.         {
  188.                 aa=aa<<1;
  189.                 P0=P2=~aa;
  190.                 delay(100);
  191.         }
  192.         P0=P2=0xff;
  193.         aa=0x7f;
  194.         for(a=0;a<8;a++)
  195.         {
  196.                 aa=aa<<1;
  197.                 P1=P3=~aa;
  198.                 delay(100);
  199.         }
  200. }
  201. void ai12()
  202. {
  203.    P0=P3=0xff;
  204.    P1=P2=0x00;
  205.    aa=0x7f;
  206.    bb=0xfe;
  207.    for(a=0;a<8;a++)
  208.    {
  209.                    aa=aa<<1;
  210.                 bb=bb>>1;
  211.                 P0=aa;
  212.                 P1=~aa;
  213.                 P2=~bb;
  214.                 P3=bb;
  215.                 delay(150);
  216.    }        
  217. }         
  218. void ai13()
  219. {
  220.         P0=P3=0x00;
  221.         P1=P2=0xff;
  222.         aa=0x7f;
  223.         bb=0xfe;
  224.         for(a=0;a<8;a++)
  225.         {
  226.                 aa=_crol_(aa,1);
  227.                 bb=_cror_(bb,1);
  228.                 P1=aa;
  229.                 P2=bb;
  230.                 delay(130);
  231.         }        
  232. }
  233. void ai14()
  234. {
  235.         P0=P3=0x00;
  236.         P1=P2=0xff;
  237.         aa=0x7f;


  238. ……………………

  239. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码



评分

参与人数 2黑币 +51 收起 理由
wohhhde + 1 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-10-11 03:20 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表