找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13808|回复: 10
收起左侧

单片机花样流水灯高级版(附源代码电路图)

  [复制链接]
ID:321301 发表于 2019-2-20 02:11 | 显示全部楼层 |阅读模式
下面是我做的第二个系统花样流水灯高级版(附源代码电路图),有兴趣的小伙伴可以下载看看 实现了10几种灯效 一共700多行代码

电路原理图如下:
{3)))YX}75E$_XR$RIKN0TJ (1).png

单片机源程序如下:
  1. /*****************************
  2. *项目:花样流水灯(高级版)*
  3. ******************************/
  4. #include<reg52.h> //包含头文件reg52.h
  5. #include<intrins.h> //包含头文件ntrins.h
  6. #define uint unsigned int //宏定义unsigned int的新名字为 uint 它是一个整?
  7. #define on  0       
  8. #define off 1
  9. sbit d1 = P1^0;
  10. sbit d2 = P1^1;
  11. sbit d3 = P1^2;
  12. sbit d4 = P1^3;
  13. sbit d5 = P1^4;
  14. sbit d6 = P1^5;
  15. sbit d7 = P1^6;
  16. sbit d8 = P1^7;
  17. void delay(uint xms)        //声明延时函数         uint 延时约多少xms毫秒
  18. {
  19.         uint i,j;           //他为i和j
  20.         for(i=xms;i>0;i--)                      //i=xms即延时约xms毫秒
  21.                 for(j=112;j>0;j--);       //j=112,每次延时过后减一 减完后跳出循环
  22. }
  23. void main()           //main(他的名字)函数
  24. {
  25.         int i = 0; //定义i的初值等于零
  26.         int a = 0;//定义a的初值等于零
  27.         int b = 0;//定义b的初值等于零
  28.         int c = 0;//定义c的初值等于零
  29.         while(1)//whlie函数非零就循环 零就不循环
  30.   {

  31.                         P1 = 0xfe;         //点了p1的第一个灯  也就是 1111 1110 最后一位是p1^0
  32.                         for(i = 0;i<8;i++) //如果i=0 i每次循环+1 当i小于8就跳出循环继续运行后面的
  33.                   {
  34.                         delay(200);        //延时0.2秒
  35.                         P1 = P1 << 1;     // p1向左移动一位
  36.       P1 = P1 | 0X01;   /*p1 或 0000 0001 只有加了这个才可以进行灯的移动 没加这个会灯依次亮起来 如果1111 1110
  37.                          他左移动一位就是1111 1100这时就会有两个灯亮起来(p1^0和p1^1) 如果是他移动了一位就要
  38.                                                  给他加个0000 0001 使它后面那一位变成1 因为当0或1的时候就会变成0.这样就实现了位移*/                                   
  39.                   }
  40.                         P1=0xff;                 //p1=1111 1111 全部灯熄灭
  41.        
  42.                        
  43.                        
  44.                         delay(1000);       //延时1秒钟
  45.                         for(b = 0;b<8;b++) //如果b=0 b每次循环+1 当b小于8就跳出循环继续运行后面的
  46.                   {
  47.                         delay(200);         //延时0.2秒
  48.                         P1 = 0x55;          //p1的双数灯亮起 01010101
  49.       P1 = P1 << 2;       //p1像左边移动两位原理同上这里不多做解释
  50.       P1 = P1 | 0x01;                        //同上
  51.                         }
  52.                         P1 = 0xff;          //同上
  53.                        
  54.                         delay(1000);        //以下原理和上面一样只是方向与上面两段相反
  55.                         P1 = 0xaa;
  56.       for(c=0;c<8;c++)
  57.       delay(200);
  58.       P1 = P1 >> 2;   
  59.       P1 = P1|80;               
  60.                         P1 = 0xff;
  61.                        
  62.                        
  63.                         delay(1000);
  64.                         P1 = 0x7f;
  65.                         for(a = 0;a<8;a++)
  66.                   {
  67.                         delay(200);
  68.                         P1 = P1 >> 1;
  69.       P1 = P1 | 0X80;
  70.                   }
  71.                         P1=0xff;
  72. //第二段就源码
  73. //第一部分单数亮一秒后熄灭                       
  74.                         delay(1000); //延时一秒后灯一亮0.5秒熄灭
  75.                          d1 = on;
  76.                         delay(500);
  77.                          d1 = off;
  78.                        
  79.                         delay(1000);//延时一秒后灯三亮0.5秒熄灭?
  80.                          d3 = on;
  81.                         delay(500);
  82.                          d3 = off;
  83.                        
  84.                         delay(1000);//延时一秒后灯五亮0.5秒熄灭
  85.                          d5 = on;
  86.                         delay(500);
  87.                          d5 = off;
  88.                        
  89.                         delay(1000);//延时一秒后灯七亮0.5秒熄灭
  90.                          d7 = on;
  91.                         delay(500);
  92.                          d7 = off;
  93. //第二部分双数亮0.5秒                       
  94.                                                 delay(1000); //原理同第一部分
  95.                          d2 = on;
  96.                         delay(500);
  97.                          d2 = off;
  98.                        
  99.                         delay(1000);
  100.                          d4 = on;
  101.                         delay(500);
  102.                          d4 = off;
  103.                        
  104.                         delay(1000);
  105.                          d6 = on;
  106.                         delay(500);
  107.                          d6 = off;
  108.                        
  109.                         delay(1000);
  110.                          d8 = on;
  111.                         delay(500);
  112.                          d8 = off;
  113.                        
  114. //第三段 单数闪烁三次与双数闪烁三次 7 8各闪一次
  115.       delay(1000);      
  116.       d1 = on;           
  117.       d3 = on;
  118.       d5 = on;
  119.                        
  120.                         delay(500);
  121.                         d1 = off;
  122.       d3 = off;
  123.       d5 = off;         
  124.                        
  125.                         delay(500);
  126.                         d1 = on;           
  127.       d3 = on;
  128.       d5 = on;
  129.                        
  130.                         delay(500);
  131.                         d1 = off;
  132.       d3 = off;
  133.       d5 = off;
  134.                        
  135.                         delay(500);
  136.                         d1 = on;           
  137.       d3 = on;
  138.       d5 = on;
  139.                        
  140.                         delay(500);
  141.                         d1 = off;
  142.       d3 = off;
  143.       d5 = off;
  144.                        
  145.                        
  146.                         delay(1000);
  147.                         delay(500);
  148.                         d2 = on;           
  149.       d4 = on;
  150.       d6 = on;
  151.                        
  152.                         delay(500);
  153.                         d2 = off;
  154.       d4 = off;
  155.       d6 = off;
  156.                        
  157.                         delay(500);
  158.                         d2 = on;           
  159.       d4 = on;
  160.       d6 = on;
  161.                        
  162.                         delay(500);
  163.                         d2 = off;
  164.       d4 = off;
  165.       d6 = off;
  166.                        
  167.                         delay(500);
  168.                         d2 = on;           
  169.       d4 = on;
  170.       d6 = on;
  171.                        
  172.                         delay(500);
  173.                         d2 = off;
  174.       d4 = off;
  175.       d6 = off;
  176.                        
  177.                         delay(1000);
  178.                         d7 = on;
  179.                         delay(500);
  180.                         d7 = off;
  181.                         delay(1000);
  182.                         d8 = on;
  183.                         delay(500);
  184.                         d8 = off;
  185. //第四部分点了全部一个闪一秒后在熄灭       
  186.                         delay(1000);
  187.                         d1 = on;           
  188.       d2 = on;
  189.       d3 = on;
  190.                         d4 = on;           
  191.       d5 = on;           
  192.       d6 = on;
  193.       d7 = on;
  194.                         d8 = on;           
  195.       delay(500);
  196.                         d8 = on;
  197.                         delay(500);
  198.                         d1 = on;           
  199.       d2 = on;
  200.       d3 = on;
  201.                         d4 = on;           
  202.       d5 = on;           
  203.       d6 = on;
  204.       d7 = on;
  205.                         d8 = on;
  206.                         d8 = off;
  207.                         delay(500);
  208.                         d1 = on;           
  209.       d2 = on;
  210.       d3 = on;
  211.                         d4 = on;           
  212.       d5 = on;           
  213.       d6 = on;
  214.       d7 = on;
  215.                         d8 = off;
  216.                         d8 = off;
  217.                         delay(500);
  218.                         d1 = on;           
  219.       d2 = on;
  220.       d3 = on;
  221.                         d4 = on;           
  222.       d5 = on;           
  223.       d6 = on;
  224.       d7 = off;
  225.                         d8 = off;
  226.                         d8 = off;
  227.                         delay(500);
  228.                         d1 = on;           
  229.       d2 = on;
  230.       d3 = on;
  231.                         d4 = on;           
  232.       d5 = on;           
  233.       d6 = off;
  234.       d7 = off;
  235.                         d8 = off;
  236.                         d8 = off;
  237.                         delay(500);
  238.                         d1 = on;           
  239.       d2 = on;
  240.       d3 = on;
  241.                         d4 = on;           
  242.       d5 = off;           
  243.       d6 = off;
  244.       d7 = off;
  245.                         d8 = off;
  246.                         d8 = off;
  247.                         delay(500);
  248.                         d1 = on;           
  249.       d2 = on;
  250.       d3 = on;
  251.                         d4 = off;           
  252.       d5 = off;           
  253.       d6 = off;
  254.       d7 = off;
  255.                         d8 = off;
  256.                         d8 = off;
  257.                         delay(500);
  258.                         d1 = on;           
  259.       d2 = on;
  260.       d3 = off;
  261.                         d4 = off;           
  262.       d5 = off;           
  263.       d6 = off;
  264.       d7 = off;
  265.                         d8 = off;
  266.                         d8 = off;
  267.                         delay(500);
  268.                         d1 = on;           
  269.       d2 = off;
  270.       d3 = off;
  271.                         d4 = off;           
  272.       d5 = off;           
  273.       d6 = off;
  274.       d7 = off;
  275.                         d8 = off;
  276.                         d8 = off;
  277.                         delay(1000);
  278.                         d1 = on;           
  279.       d2 = on;
  280.       d3 = on;
  281.                         d4 = on;           
  282.       d5 = on;           
  283.       d6 = on;
  284.       d7 = on;
  285.                         d8 = on;
  286.       delay(500);                       
  287.                         d1 = off;           
  288.       d2 = on;
  289.       d3 = on;
  290.                         d4 = on;           
  291.       d5 = on;           
  292.       d6 = on;
  293.       d7 = on;
  294.                         d8 = on;
  295.                         delay(500);                       
  296.                         d1 = off;           
  297.       d2 = off;
  298.       d3 = on;
  299.                         d4 = on;           
  300.       d5 = on;           
  301.       d6 = on;
  302.       d7 = on;
  303.                         d8 = on;
  304.                         delay(500);                       
  305.                         d1 = off;           
  306.       d2 = off;
  307.       d3 = off;
  308.                         d4 = on;           
  309.       d5 = on;           
  310.       d6 = on;
  311.       d7 = on;
  312.                         d8 = on;
  313.                         delay(500);                       
  314.                         d1 = off;           
  315.       d2 = off;
  316.       d3 = off;
  317.                         d4 = off;           
  318.       d5 = on;           
  319.       d6 = on;
  320.       d7 = on;
  321.                         d8 = on;
  322.                         delay(500);                       
  323.                         d1 = off;           
  324.       d2 = off;
  325.       d3 = off;
  326.                         d4 = off;           
  327.       d5 = off;           
  328.       d6 = on;
  329.       d7 = on;
  330.                         d8 = on;
  331.                         delay(500);                       
  332.                         d1 = off;           
  333.       d2 = off;
  334.       d3 = off;
  335.                         d4 = off;           
  336.       d5 = off;           
  337.       d6 = off;
  338.       d7 = on;
  339.                         d8 = on;
  340.                         delay(500);                       
  341.                         d1 = off;           
  342.       d2 = off;
  343.       d3 = off;
  344.                         d4 = off;           
  345.       d5 = off;           
  346.       d6 = off;
  347.       d7 = off;
  348.                         d8 = on;
  349.                         delay(500);                               
  350.                         d1 = off;           
  351.       d2 = off;
  352.       d3 = off;
  353.                         d4 = off;           
  354.       d5 = off;           
  355.       d6 = off;
  356.       d7 = off;
  357.                         d8 = off;
  358.                        
  359.                         delay(1000);
  360.                         d1 = on;           
  361.       d2 = on;
  362.       d3 = on;
  363.                         d4 = on;           
  364.       d5 = on;           
  365.       d6 = on;
  366.       d7 = on;
  367.                         d8 = on;
  368.                         delay(500);
  369.                         d1 = off;           
  370.       d2 = off;
  371.       d3 = off;
  372.                         d4 = off;           
  373.       d5 = off;           
  374.       d6 = off;
  375.       d7 = off;
  376.                         d8 = off;
  377.                         delay(500);
  378.                         d1 = on;           
  379.       d2 = on;
  380.       d3 = on;
  381.                         d4 = on;           
  382.       d5 = on;           
  383.       d6 = on;
  384.       d7 = on;
  385.                         d8 = on;
  386.                         delay(500);
  387.                         d1 = off;           
  388.       d2 = off;
  389.       d3 = off;
  390.                         d4 = off;           
  391.       d5 = off;           
  392.       d6 = off;
  393.       d7 = off;
  394.                         d8 = off;
  395.                         delay(500);
  396.                         d1 = on;           
  397.       d2 = on;
  398.       d3 = on;
  399.                         d4 = on;           
  400.       d5 = on;           
  401.       d6 = on;
  402.       d7 = on;
  403.                         d8 = on;
  404.                         delay(500);
  405.                         d1 = off;           
  406.       d2 = off;
  407.       d3 = off;
  408.                         d4 = off;           
  409.       d5 = off;           
  410.       d6 = off;
  411.       d7 = off;
  412.                         d8 = off;
  413.                         delay(500);
  414.                         d1 = on;           
  415.       d2 = on;
  416.       d3 = on;
  417.                         d4 = on;           
  418.       d5 = on;           
  419.       d6 = on;
  420.       d7 = on;
  421.                         d8 = on;
  422.                         delay(500);
  423.                         d1 = off;           
  424.       d2 = off;
  425.       d3 = off;
  426.                         d4 = off;           
  427.       d5 = off;           
  428.       d6 = off;
  429.       d7 = off;
  430.                         d8 = off;
  431.                         delay(500);
  432.                         d1 = on;           
  433.       d2 = on;
  434.       d3 = on;
  435.                         d4 = on;           
  436.       d5 = on;           
  437.       d6 = on;
  438.       d7 = on;
  439.                         d8 = on;
  440.                         delay(500);
  441.                         d1 = off;           
  442.       d2 = off;
  443.       d3 = off;
  444.                         d4 = off;           
  445.       d5 = off;           
  446.       d6 = off;
  447.       d7 = off;
  448.                         d8 = off;
  449.                         delay(1000);
  450.                        
  451.                         d1 = on;           
  452.       d2 = off;
  453.       d3 = on;
  454.                         d4 = off;           
  455.       d5 = on;           
  456.       d6 = off;
  457.       d7 = on;
  458.                         d8 = off;
  459.                         delay(500);
  460.                         d1 = off;           
  461.       d2 = off;
  462.       d3 = off;
  463.                         d4 = off;           
  464.       d5 = off;           
  465.       d6 = off;
  466.       d7 = off;
  467.                         d8 = off;
  468.                         delay(500);
  469.                         d1 = on;           
  470.       d2 = off;
  471.       d3 = on;
  472.                         d4 = off;           
  473.       d5 = on;           
  474.       d6 = off;
  475.       d7 = on;
  476.                         d8 = off;
  477.                         delay(500);
  478.                        
  479.                         d1 = on;           
  480.       d2 = off;
  481.       d3 = on;
  482.                         d4 = off;           
  483.       d5 = on;           
  484.       d6 = off;
  485.       d7 = on;
  486.                         d8 = off;
  487.                         delay(500);
  488.                         d1 = off;           
  489.       d2 = off;
  490.       d3 = off;
  491.                         d4 = off;           
  492.       d5 = off;           
  493.       d6 = off;
  494.       d7 = off;
  495.                         d8 = off;
  496.                         delay(500);
  497.                         d1 = on;           
  498.       d2 = off;
  499.       d3 = on;
  500.                         d4 = off;           
  501.       d5 = on;           
  502.       d6 = off;
  503.       d7 = on;
  504.                         d8 = off;
  505.                         delay(500);
  506.                        
  507.                         d1 = on;           
  508.       d2 = off;
  509.       d3 = on;
  510.                         d4 = off;           
  511.       d5 = on;           
  512.       d6 = off;
  513.       d7 = on;
  514.                         d8 = off;
  515.                         delay(500);
  516.                         d1 = off;           
  517.       d2 = off;
  518.       d3 = off;
  519.                         d4 = off;           
  520.       d5 = off;           
  521.       d6 = off;
  522.       d7 = off;
  523.                         d8 = off;
  524.                         delay(500);
  525.                         d1 = on;           
  526.       d2 = off;
  527.       d3 = on;
  528.                         d4 = off;           
  529.       d5 = on;           
  530.       d6 = off;
  531.       d7 = on;
  532.                         d8 = off;
  533.                         delay(500);
  534.                        
  535.                         d1 = off;           
  536.       d2 = on;
  537.       d3 = off;
  538.                         d4 = off;           
  539.       d5 = off;           
  540.       d6 = off;
  541.       d7 = on;
  542.                         d8 = off;
  543.                         delay(500);
  544.                         d1 = off;           
  545.       d2 = off;
  546.       d3 = off;
  547.                         d4 = off;           
  548.       d5 = off;           
  549.       d6 = off;
  550.       d7 = off;
  551.                         d8 = off;
  552.                         delay(500);
  553.                         d1 = off;           
  554.       d2 = on;
  555.       d3 = off;
  556.                         d4 = off;           
  557.       d5 = off;           
  558.       d6 = off;
  559.       d7 = on;
  560.                         d8 = off;
  561.                         delay(500);
  562.                         d1 = off;           
  563.       d2 = off;
  564.       d3 = off;
  565.                         d4 = off;           
  566.       d5 = off;           
  567.       d6 = off;
  568.       d7 = off;
  569.                         d8 = off;
  570.                         delay(500);
  571.                         d1 = off;           
  572.       d2 = on;
  573.       d3 = off;
  574.                         d4 = off;           
  575.       d5 = off;           
  576.       d6 = off;
  577.       d7 = on;
  578.                         d8 = off;
  579.                         delay(500);
  580.                         d1 = off;           
  581.       d2 = off;
  582.       d3 = off;
  583.                         d4 = off;           
  584.       d5 = off;           
  585.       d6 = off;
  586.       d7 = off;
  587.                         d8 = off;
  588.                         delay(500);
  589.                         d1 = off;           
  590.       d2 = on;
  591.       d3 = off;
  592.                         d4 = off;           
  593.       d5 = off;           
  594.       d6 = off;
  595.       d7 = on;
  596.                         d8 = off;
  597.                         delay(500);
  598.                         d1 = off;           
  599.       d2 = off;
  600.       d3 = on;
  601.                         d4 = off;           
  602.       d5 = off;           
  603.       d6 = on;
  604.       d7 = off;
  605.                         d8 = off;
  606.                         delay(500);
  607.                         d1 = off;           
  608.       d2 = off;
  609.       d3 = off;
  610.                         d4 = off;           
  611.       d5 = off;           
  612.       d6 = off;
  613.       d7 = off;
  614.                         d8 = off;
  615.                         delay(500);
  616.                         d1 = off;           
  617.       d2 = off;
  618.       d3 = on;
  619.                         d4 = off;           
  620.       d5 = off;           
  621.       d6 = on;
  622.       d7 = off;
  623.                         d8 = off;
  624.                         delay(500);
  625.                         d1 = off;           
  626.       d2 = off;
  627.       d3 = on;
  628.                         d4 = off;           
  629.       d5 = off;           
  630.       d6 = on;
  631.       d7 = off;
  632.                         d8 = off;
  633.                         delay(500);
  634.                         d1 = off;           
  635.       d2 = off;
  636.       d3 = off;
  637.                         d4 = off;           
  638.       d5 = off;           
  639.       d6 = off;
  640.       d7 = off;
  641.                         d8 = off;
  642.                         delay(500);
  643.                         d1 = off;           
  644.       d2 = off;
  645.       d3 = on;
  646.                         d4 = off;           
  647.       d5 = off;           
  648.       d6 = on;
  649.       d7 = off;
  650.                         d8 = off;
  651.                         delay(500);
  652.                         d1 = off;           
  653.       d2 = off;
  654.       d3 = on;
  655.                         d4 = off;           
  656.       d5 = off;           
  657.       d6 = on;
  658.       d7 = off;
  659.                         d8 = off;
  660.                         delay(500);
  661.                         d1 = off;           
  662.       d2 = off;
  663.       d3 = off;
  664.                         d4 = off;           
  665.       d5 = off;           
  666.       d6 = off;
  667.       d7 = off;
  668.                         d8 = off;
  669.                         delay(500);
  670.                         d1 = off;           
  671.       d2 = off;
  672.       d3 = on;
  673.                         d4 = off;           
  674.       d5 = off;           
  675.       d6 = on;
  676.       d7 = off;
  677.                         d8 = off;
  678.                        
  679.                         delay(500);
  680.                         d1 = off;           
  681.       d2 = off;
  682.       d3 = off;
  683.                         d4 = on;           
  684. ……………………

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

所有资料51hei提供下载:
花样流水灯高级版.zip (75.72 KB, 下载次数: 152)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:471850 发表于 2019-2-21 05:32 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:321301 发表于 2019-2-21 13:58 | 显示全部楼层

嗯呐以后为更新更多入门教程的
回复

使用道具 举报

ID:321301 发表于 2019-2-22 14:44 | 显示全部楼层

好的好的一起加油吧 可以加一下群 有很多源码
回复

使用道具 举报

ID:243748 发表于 2019-2-22 18:01 来自手机 | 显示全部楼层
好好学习,天天,加油向上
回复

使用道具 举报

ID:388481 发表于 2019-3-1 14:02 | 显示全部楼层
能给个流水从led4,led5向两边扩散的程序吗?
回复

使用道具 举报

ID:531587 发表于 2019-5-9 15:39 | 显示全部楼层
这个流水灯花样挺多的,想要。
回复

使用道具 举报

ID:731155 发表于 2020-4-17 15:58 | 显示全部楼层
谢谢分享,代码能用更简洁、高效的方式那就更好了
回复

使用道具 举报

ID:864648 发表于 2020-12-22 09:37 来自手机 | 显示全部楼层
这个可以用来做呼吸灯吗
回复

使用道具 举报

ID:111875 发表于 2021-3-30 05:07 | 显示全部楼层
感谢分享,51入门从点灯开始
回复

使用道具 举报

ID:897758 发表于 2021-3-30 09:34 来自手机 | 显示全部楼层
好厉害,有没有点阵流水灯呀
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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