找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6545|回复: 21
收起左侧

DIY心形流水灯

  [复制链接]
ID:69624 发表于 2014-11-29 10:49 | 显示全部楼层 |阅读模式
电路图我们提供2种格式,一个是DDB格式,一个是PDF格式,2个格式的内容一样,选择一个适合自己的打开。
DDB格式的打开需要安装PROTEL99SE软件
PDF格式的需要安装一个PDF阅读软件
以上2个软件百度里面都可以找到,请亲们自行百度;
0.png 0.png 0.png 0.png

心形流水灯元件清单数量


PCB板1


5MM LED(红发红)34


单片机 底座 DIP401


单片机AT89S52(烧写好程序)1


12M 晶振1


瓷片电容22P2


电解电容10uF1


电阻10K1


0.25W电阻510欧50


DC005电源座1


8*8自锁开关1


USB转DC005电源线1

































心形流水灯程序如下:
  1. #include <REGX52.H>
  2. #define        uint        unsigned int
  3. #define        uchar        unsigned char
  4. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
  5. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
  6. uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
  7. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
  8. uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
  9. uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
  10. uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
  11. uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
  12. uchar i,j;                //定义循环变量
  13. uint tt=70;                //定义时间指数
  14. void delay(uint time)        //延时函数
  15. {
  16.         uint x,y;
  17.         for(x=time;x>0;x--)
  18.         for(y=110;y>0;y--);
  19. }

  20. void disp0()                        //状态0 所有LED闪烁3次
  21. {
  22.         for(i=0;i<3;i++)
  23.         {
  24.                 P0=0x00; P2=0x00; P3=0x00; P1=0x00;
  25.                 delay(300);
  26.                 P0=0xff; P2=0xff; P3=0xff; P1=0xff;
  27.                 delay(300);
  28.         }
  29. }

  30. void disp1()                        //状态1 LED顺时针转一圈
  31. {
  32.         for(i=0;i<8;i++)
  33.         {
  34.                 P2=table1[i];
  35.                 delay(100);
  36.         }
  37.         P2=0xff;
  38.         for(i=0;i<8;i++)
  39.         {
  40.                 P3=table1[i];
  41.                 delay(100);
  42.         }
  43.         P3=0xff;
  44.         for(i=0;i<8;i++)
  45.         {
  46.                 P1=table1[i];        
  47.                 delay(100);
  48.         }
  49.         P1=0xff;
  50.         for(i=0;i<8;i++)
  51.         {
  52.                 P0=table0[i];
  53.                 delay(100);
  54.         }
  55.         P0=0xff;
  56. }

  57. void disp2()                        //状态2 LED逆时针转一圈
  58. {
  59.         for(i=0;i<8;i++)
  60.         {
  61.                 P0=table1[i];
  62.                 delay(100);
  63.         }
  64.         P0=0xff;
  65.         for(i=0;i<8;i++)
  66.         {
  67.                 P1=table0[i];
  68.                 delay(100);
  69.         }
  70.         P1=0xff;
  71.         for(i=0;i<8;i++)
  72.         {
  73.                 P3=table0[i];
  74.                 delay(100);
  75.         }
  76.         P3=0xff;
  77.         for(i=0;i<8;i++)
  78.         {
  79.                 P2=table0[i];
  80.                 delay(100);
  81.         }
  82.         P2=0xff;
  83. }

  84. void disp3()                        //状态3 4个LED同时顺时、逆时针移动1/4圈
  85. {
  86.         for(i=0;i<8;i++)
  87.         {
  88.                 P0=table1[i];
  89.                 P1=table1[i];
  90.                 P2=table1[i];
  91.                 P3=table0[i];
  92.                 delay(100);
  93.         }
  94.         for(i=0;i<8;i++)
  95.         {
  96.                 P0=table0[i];
  97.                 P1=table0[i];
  98.                 P2=table0[i];
  99.                 P3=table1[i];
  100.                 delay(100);
  101.         }
  102.         P3=0xff; P0=0xff;
  103. }

  104. void disp4()                        //状态4  2个LED同时顺时针移动半圈
  105. {
  106.         for(i=0;i<8;i++)
  107.         {
  108.                 P2=table1[i];
  109.                 P1=table1[i];
  110.                 delay(100);
  111.         }
  112.         P2=0xff; P1=0xff;
  113.         for(i=0;i<8;i++)
  114.         {
  115.                 P3=table1[i];
  116.                 P0=table0[i];
  117.                 delay(100);
  118.         }
  119.         P3=0xff; P0=0xff;
  120. }

  121. void disp5()                        //状态5  2个LED同时逆时针移动半圈
  122. {
  123.         for(i=0;i<8;i++)
  124.         {
  125.                 P0=table1[i];
  126.                 P3=table0[i];
  127.                 delay(100);
  128.         }
  129.         P0=0xff; P3=0xff;
  130.         for(i=0;i<8;i++)
  131.         {
  132.                 P1=table0[i];
  133.                 P2=table0[i];
  134.                 delay(100);
  135.         }
  136.         P1=0xff; P2=0xff;
  137. }

  138. void disp6()                        //状态6 LED自上而下逐渐点亮(一半点亮一半不亮)
  139. {
  140.         for(i=0;i<8;i++)
  141.         {
  142.                 P0=table3[i];
  143.                 P2=table3[i];
  144.                 delay(100);
  145.         }
  146.         P0=0xff; P2=0xff;
  147.         for(i=0;i<8;i++)
  148.         {
  149.                 P1=table2[i];
  150.                 P3=table3[i];
  151.                 delay(100);
  152.         }
  153.         P1=0xff; P3=0xff;
  154. }

  155. void disp7()                        //状态7 LED自下而上逐渐点亮(直到全部点亮)
  156. {
  157.         for(i=0;i<8;i++)
  158.         {
  159.                 P1=table3[i];
  160.                 P3=table2[i];
  161.                 delay(100);
  162.         }
  163.         for(i=0;i<8;i++)
  164.         {
  165.                 P0=table2[i];
  166.                 P2=table2[i];
  167.                 delay(100);
  168.         }
  169. }

  170. void disp8()                        //状态8 间断8格的4个LED亮并逆时针旋转
  171. {
  172.         for(j=0;j<2;j++)
  173.         {
  174.                 for(i=0;i<8;i++)
  175.                 {
  176.                         P0=table1[i];
  177.                         P2=table0[i];
  178.                         P1=table0[i];
  179.                         P3=table0[i];
  180.                         delay(100);
  181.                 }
  182.                 P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  183.                 for(i=0;i<8;i++)
  184.                 {
  185.                         P0=table1[i];
  186.                         P2=table0[i];
  187.                         P1=table0[i];
  188.                         P3=table0[i];
  189.                         delay(100);
  190.                 }
  191.                 P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  192.         }
  193. }

  194. void disp9()                        //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  195. {
  196.         for(i=0;i<8;i++)
  197.         {
  198.                 P0=table3[i];
  199.                 P2=table2[i];
  200.                 P1=table2[i];
  201.                 P3=table2[i];
  202.                 delay(100);
  203.         }
  204.         delay(500);        
  205. }

  206. void disp10()                        //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  207. {
  208.         for(i=0;i<9;i++)
  209.         {
  210.                 P0=table5[i];
  211.                 P2=table4[i];
  212.                 P1=table4[i];
  213.                 P3=table4[i];
  214.                 delay(100);
  215.         }
  216.         delay(300);
  217. }

  218. void disp11()                        //状态11 间断8格的4个LED亮并顺时针旋转
  219. {
  220.         for(j=0;j<2;j++)
  221.         {
  222.                 for(i=0;i<8;i++)
  223.                 {
  224.                         P0=table0[i];
  225.                         P2=table1[i];
  226.                         P1=table1[i];
  227.                         P3=table1[i];
  228.                         delay(100);
  229.                 }
  230.                 P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  231.                 for(i=0;i<8;i++)
  232.                 {
  233.                         P0=table0[i];
  234.                         P2=table1[i];
  235.                         P1=table1[i];
  236.                         P3=table1[i];
  237.                         delay(100);
  238.                 }
  239.                 P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  240.         }
  241. }

  242. void disp12()                        //间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮)
  243. {
  244.         for(i=0;i<8;i++)
  245.         {
  246.                 P0=table2[i];
  247.                 P2=table3[i];
  248.                 P1=table3[i];
  249.                 P3=table3[i];
  250.                 delay(100);
  251.         }
  252.         delay(1000);
  253. }

  254. void disp13()                        //状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭)
  255. {
  256.         for(i=0;i<9;i++)
  257.         {
  258.                 P0=table4[i];
  259.                 P2=table5[i];
  260.                 P1=table5[i];
  261.                 P3=table5[i];
  262.                 delay(100);
  263.         }
  264.         delay(300);
  265. }

  266. void disp14()                        //状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐步点亮)
  267. {
  268.         for(i=0;i<8;i++)
  269.         {
  270.                 P0=table2[i];
  271.                 P1=table2[i];
  272.                 P2=table2[i];
  273.                 P3=table3[i];
  274.                 delay(100);
  275.         }
  276. }

  277. void disp15()                        //状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭)
  278. {
  279.         for(i=0;i<9;i++)
  280.         {
  281.                 P0=table5[i];
  282.                 P1=table5[i];
  283.                 P2=table5[i];
  284.                 P3=table4[i];
  285.                 delay(100);
  286.         }
  287.         delay(300);
  288. }

  289. void disp16()                        //状态16 LED灯交替闪烁(频率有慢变快)
  290. {
  291.         for(i=0;i<5;i++)
  292.         {
  293.                 P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  294.                 delay(100);
  295.                 P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  296.                 delay(100);
  297.         }
  298.         for(i=0;i<5;i++)
  299.         {
  300.                 P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  301.                 delay(200);
  302.                 P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  303.                 delay(200);
  304.         }
  305.         for(i=0;i<5;i++)
  306.         {
  307.                 P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  308.                 delay(300);
  309.                 P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  310.                 delay(300);
  311.         }
  312.         P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  313.         delay(300);
  314. }

  315. void disp17()                        //状态17 LED从P0.7开始逆时针逐步点亮,(循环2次)并且速度会逐步提高
  316. {

  317.         for(i=0;i<8;i++)
  318.         {
  319.                 P0=table3[i];
  320.                 delay(100);
  321.         }
  322.         for(i=0;i<8;i++)
  323.         {
  324.                 P1=table2[i];
  325.                 delay(100);
  326.         }        
  327.         for(i=0;i<8;i++)
  328.         {
  329.                 P3=table2[i];
  330.                 delay(100);
  331.         }        
  332.         for(i=0;i<8;i++)
  333.         {
  334.                 P2=table2[i];
  335.                 delay(100);
  336.         }
  337.         P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  338. /*******************************/
  339.         for(i=0;i<8;i++)
  340.         {
  341.                 P0=table3[i];
  342.                 delay(50);
  343.         }
  344.         for(i=0;i<8;i++)
  345.         {
  346.                 P1=table2[i];
  347.                 delay(50);
  348.         }        
  349.         for(i=0;i<8;i++)
  350.         {
  351.                 P3=table2[i];
  352.                 delay(50);
  353.         }        
  354.         for(i=0;i<8;i++)
  355.         {
  356.                 P2=table2[i];
  357.                 delay(50);
  358.         }
  359.         P0=0xff; P1=0xff; P3=0xff; P2=0xff;        
  360. }

  361. void disp18()                        //状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)
  362. {
  363.         for(i=0;i<8;i++)
  364.         {
  365.                 P0=table3[i];
  366.                 delay(100);
  367.         }
  368.         P0=0xff;
  369.         for(i=0;i<8;i++)
  370.         {
  371.                 P1=table2[i];
  372.                 delay(100);
  373.         }        
  374.         P1=0xff;
  375.         for(i=0;i<8;i++)
  376.         {
  377.                 P3=table2[i];
  378.                 delay(100);
  379.         }
  380.         P3=0xff;        
  381.         for(i=0;i<8;i++)
  382.         {
  383.                 P2=table2[i];
  384.                 delay(100);
  385.         }
  386.         P2=0xff;        
  387. }

  388. void disp19()                        //状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高
  389. {
  390.         for(i=0;i<8;i++)
  391.         {
  392.                 P2=table3[i];
  393.                 delay(100);
  394.         }
  395.         for(i=0;i<8;i++)
  396.         {
  397.                 P3=table3[i];
  398.                 delay(100);
  399.         }        
  400.         for(i=0;i<8;i++)
  401.         {
  402.                 P1=table3[i];
  403.                 delay(100);
  404.         }        
  405.         for(i=0;i<8;i++)
  406.         {
  407.                 P0=table2[i];
  408.                 delay(100);
  409.         }
  410.         P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  411. /*******************************/
  412.         for(i=0;i<8;i++)
  413.         {
  414.                 P2=table3[i];
  415.                 delay(50);
  416.         }
  417.         for(i=0;i<8;i++)
  418.         {
  419.                 P3=table3[i];
  420.                 delay(50);
  421.         }        
  422.         for(i=0;i<8;i++)
  423.         {
  424.                 P1=table3[i];
  425.                 delay(50);
  426.         }        
  427.         for(i=0;i<8;i++)
  428.         {
  429.                 P0=table2[i];
  430.                 delay(50);
  431.         }
  432.         P0=0xff; P1=0xff; P3=0xff; P2=0xff;        
  433. }

  434. void disp20()                        //状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)
  435. {
  436.         for(i=0;i<8;i++)
  437.         {
  438.                 P2=table3[i];
  439.                 delay(100);
  440.         }
  441.         P2=0xff;
  442.         for(i=0;i<8;i++)
  443.         {
  444.                 P3=table3[i];
  445.                 delay(100);
  446.         }        
  447.         P3=0xff;
  448.         for(i=0;i<8;i++)
  449.         {
  450.                 P1=table3[i];
  451.                 delay(100);
  452.         }
  453.         P1=0xff;        
  454.         for(i=0;i<8;i++)
  455.         {
  456.                 P0=table2[i];
  457.                 delay(100);
  458.         }
  459.         P0=0xff;               
  460. }

  461. void disp21()                        //状态21 2个LED开始上下移动半圈
  462. {
  463.         for(i=0;i<8;i++)
  464.         {
  465.                 P0=table1[i];
  466.                 P2=table1[i];
  467.                 delay(100);
  468.         }
  469.         P0=0xff; P2=0xff;
  470.         for(i=0;i<8;i++)
  471.         {
  472.                 P1=table0[i];
  473.                 P3=table1[i];
  474.                 delay(100);
  475.         }
  476.         
  477.         for(i=0;i<8;i++)
  478.         {
  479.                 P1=table1[i];
  480.                 P3=table0[i];
  481.                 delay(100);
  482.         }
  483.         P1=0xff; P3=0xff;
  484.         for(i=0;i<8;i++)
  485.         {
  486.                 P0=table0[i];
  487.                 P2=table0[i];
  488.                 delay(100);
  489.         }
  490. }

  491. void disp22()                        //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)
  492. {        
  493.         for(j=0;j<5;j++)
  494.         {
  495.                 for(i=0;i<8;i++)
  496.                 {
  497.                         P0=table1[i];
  498.                         P2=table1[i];
  499.                         delay(tt);
  500.                 }
  501.                 P0=0xff; P2=0xff;
  502.                 for(i=0;i<8;i++)
  503.                 {
  504.                         P1=table0[i];
  505.                         P3=table1[i];
  506.                         delay(tt);
  507.                 }
  508.                 P1=0xff; P3=0xff;
  509.                 tt=tt-10;
  510.         }

  511.         for(j=0;j<16;j++)
  512.         {
  513.                 for(i=0;i<8;i++)
  514.                 {
  515.                         P0=table1[i];
  516.                         P2=table1[i];
  517.                         delay(20);
  518.                 }
  519.                 P0=0xff; P2=0xff;
  520.                 for(i=0;i<8;i++)
  521.                 {
  522.                         P1=table0[i];
  523.                         P3=table1[i];
  524.                         delay(20);
  525.                 }
  526.                 P1=0xff; P3=0xff;
  527.         }
  528.         tt=20;
  529.         for(j=0;j<5;j++)
  530.         {
  531.                 for(i=0;i<8;i++)
  532.                 {
  533.                         P0=table1[i];
  534.                         P2=table1[i];
  535.                         delay(tt);
  536.                 }
  537.                 P0=0xff; P2=0xff;
  538.                 for(i=0;i<8;i++)
  539.                 {
  540.                         P1=table0[i];
  541.                         P3=table1[i];
  542.                         delay(tt);
  543.                 }
  544.                 P1=0xff; P3=0xff;
  545.                 tt=tt+10;
  546.         }
  547.         tt=70;        
  548.                
  549. }

  550. void disp23()                        //状态23 LED上下交替闪烁
  551. {

  552.         for(i=0;i<2;i++)
  553.         {
  554.                 P0=0x00; P2=0x00;
  555.                 delay(1000);
  556.                 P0=0xff; P2=0xff;
  557.                 P1=0x00; P3=0x00;
  558.                 delay(1000);
  559.                 P1=0xff; P3=0xff;
  560.         }
  561. }

  562. void disp24()                        //状态24 LED左右交替闪烁
  563. {
  564.         P1=0xff; P3=0xff; P0=0xff; P2=0xff;
  565.         for(i=0;i<2;i++)
  566.         {
  567.                 P0=0x00; P1=0x00;
  568.                 delay(1000);
  569.                 P0=0xff; P1=0xff;
  570.                 P2=0x00; P3=0x00;
  571.                 delay(1000);
  572.                 P2=0xff; P3=0xff;
  573.         }
  574. }

  575. void disp25()                        //状态25 LED交替闪烁
  576. {
  577.         for(i=0;i<5;i++)
  578.         {
  579.                 P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  580.                 delay(1000);
  581.                 P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  582.                 delay(1000);               
  583.         }
  584. }

  585. void disp26()                        //状态26 2个LED开始上下移动半圈(LED不亮流水)
  586. {
  587.         P0=0x00;P1=0x00;P2=0x00;P3=0x00;
  588.         for(i=0;i<8;i++)
  589.         {
  590.                 P0=~table1[i];
  591.                 P2=~table1[i];
  592.                 delay(200);
  593.         }
  594.         P0=0x00; P2=0x00;
  595.         for(i=0;i<8;i++)
  596.         {
  597.                 P1=~table0[i];
  598.                 P3=~table1[i];
  599.                 delay(200);
  600.         }
  601.         
  602.         for(i=0;i<8;i++)
  603.         {
  604.                 P1=~table1[i];
  605.                 P3=~table0[i];
  606.                 delay(200);
  607.         }
  608.         P1=0x00; P3=0x00;
  609.         for(i=0;i<8;i++)
  610.         {
  611.                 P0=~table0[i];
  612.                 P2=~table0[i];
  613.                 delay(200);
  614.         }
  615. }

  616. void disp27()                        //状态27 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  617. {
  618.         P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  619.         for(j=0;j<2;j++)
  620.         {
  621.                 for(i=0;i<8;i++)
  622.                 {
  623.                         P2=table3[i];
  624.                         P1=table3[i];
  625.                         delay(100);
  626.                 }
  627.                 P2=0xff; P1=0xff;
  628.                 for(i=0;i<8;i++)
  629.                 {
  630.                         P0=table2[i];
  631.                         P3=table3[i];
  632.                         delay(100);
  633.                 }
  634.                 P0=0xff; P3=0xff;
  635.         }
  636. }
  637.                         
  638. void disp28()                        //状态28 P1、P2和P0、P3交替闪烁
  639. {        
  640.         for(i=0;i<2;i++)
  641.         {
  642.                 P1=0x00; P2=0x00; P0=0xff; P3=0xff;
  643.                 delay(1000);
  644.                 P1=0xff; P2=0xff; P0=0x00; P3=0x00;
  645.                 delay(1000);
  646.         }
  647.         P1=0xff; P2=0xff; P0=0xff; P3=0xff;
  648. }

  649. void disp29()                        //状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮P0、P3的LED,再顺时熄灭
  650. {        

  651.         P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  652.         for(j=0;j<2;j++)
  653.         {
  654.                 for(i=0;i<8;i++)
  655.                 {
  656.                         P2=table3[i];
  657.                         P1=table3[i];
  658.                         delay(100);
  659.                 }
  660.                 for(i=0;i<9;i++)
  661.                 {
  662.                         P2=table5[i];
  663.                         P1=table5[i];
  664.                         delay(100);
  665.                 }
  666.                 for(i=0;i<8;i++)
  667.                 {
  668.                         P0=table2[i];
  669.                         P3=table3[i];
  670.                         delay(100);
  671.                 }
  672.                 for(i=0;i<9;i++)
  673.                 {
  674.                         P0=table4[i];
  675.                         P3=table5[i];
  676.                         delay(100);
  677.                 }
  678.         }
  679.         delay(200);        
  680. }

  681. void disp30()                        //状态30 逐步逆时针点亮P2、P1的LED,熄灭后,再逆时针点亮P0、P3的LED
  682. {
  683.         P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  684.         for(j=0;j<2;j++)
  685.         {
  686.                 for(i=0;i<8;i++)
  687.                 {
  688.                         P2=table2[i];
  689.                         P1=table2[i];
  690.                         delay(100);
  691.                 }
  692.                 P2=0xff; P1=0xff;
  693.                 for(i=0;i<8;i++)
  694.                 {
  695.                         P0=table3[i];
  696.                         P3=table2[i];
  697.                         delay(100);
  698.                 }
  699.                 P0=0xff; P3=0xff;
  700.         }
  701. }

  702. void disp31()                        //状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮P0、P3的LED,再逆时熄灭
  703. {
  704.         P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  705.         for(j=0;j<2;j++)
  706.         {
  707.                 for(i=0;i<8;i++)
  708.                 {
  709.                         P2=table2[i];
  710.                         P1=table2[i];
  711.                         delay(100);
  712.                 }
  713.                 for(i=0;i<9;i++)
  714.                 {
  715.                         P2=table4[i];
  716.                         P1=table4[i];
  717.                         delay(100);
  718.                 }
  719.                 for(i=0;i<8;i++)
  720.                 {
  721.                         P0=table3[i];
  722.                         P3=table2[i];
  723.                         delay(100);
  724.                 }
  725.                 for(i=0;i<9;i++)
  726.                 {
  727.                         P0=table5[i];
  728.                         P3=table4[i];
  729.                         delay(100);
  730.                 }
  731.         }
  732.         delay(200);        
  733. }

  734. void disp32()                        //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭
  735. {
  736.         for(i=0;i<8;i++)
  737.         {
  738.                 P0=table3[i];
  739.                 P2=table3[i];
  740.                 delay(100);
  741.         }
  742.         for(i=0;i<8;i++)
  743.         {
  744.                 P1=table2[i];
  745.                 P3=table3[i];
  746.                 delay(100);
  747.         }
  748.         for(i=0;i<9;i++)
  749.         {
  750.                 P1=table5[i];
  751.                 P3=table4[i];
  752.                 delay(100);
  753.         }
  754.         for(i=0;i<9;i++)
  755.         {
  756.                 P0=table4[i];
  757.                 P2=table4[i];
  758.                 delay(100);
  759.         }
  760. }

  761. void disp33()                        //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)
  762. {
  763.         for(i=0;i<8;i++)
  764.         {
  765.                 P0=table2[i];
  766.                 P1=table2[i];
  767.                 delay(100);
  768.         }
  769.         for(i=0;i<8;i++)
  770.         {
  771.                 P2=table3[i];
  772.                 P3=table2[i];
  773.                 delay(100);
  774.         }
  775.         delay(500);
  776.         for(i=0;i<9;i++)
  777.         {
  778.                 P2=table4[i];
  779.                 P3=table5[i];
  780.                 P1=table4[i];
  781.                 P0=table4[i];
  782.                 delay(100);
  783.         }
  784.         delay(300);
  785. }

  786. void disp34()                        //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭
  787. {
  788.         for(i=0;i<8;i++)
  789.         {
  790.                 P2=table2[i];
  791.                 P3=table3[i];
  792.                 delay(100);
  793.         }
  794.         for(i=0;i<8;i++)
  795.         {
  796.                 P0=table3[i];
  797.                 P1=table3[i];
  798.                 delay(100);
  799.         }
  800.         delay(500);
  801.         for(i=0;i<9;i++)
  802.         {
  803.                 P2=table5[i];
  804.                 P3=table4[i];
  805.                 P1=table5[i];
  806.                 P0=table5[i];
  807.                 delay(100);
  808.         }
  809.         delay(300);        
  810. }

  811. void disp35()                        //状态35  从P2.7、P1.7开始同时顺时针旋转,直到LED全亮
  812. {
  813.         for(i=0;i<8;i++)
  814.         {
  815.                 P2=table3[i];
  816.                 P1=table3[i];
  817.                 delay(100);
  818.         }
  819.         for(i=0;i<8;i++)
  820.         {
  821.                 P3=table3[i];
  822.                 P0=table2[i];
  823.                 delay(100);
  824.         }
  825. }

  826. void disp36()                        //状态36  从P0.7、P3.1开始同时逆时针旋转,直到LED全亮
  827. {
  828.         for(i=0;i<8;i++)
  829.         {
  830.                 P0=table3[i];
  831.                 P3=table2[i];
  832.                 delay(100);
  833.         }
  834.         for(i=0;i<8;i++)
  835.         {
  836.                 P1=table2[i];
  837.                 P2=table2[i];
  838.                 delay(100);
  839.         }
  840. }

  841. void disp37()                        //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次
  842. {
  843.         for(i=0;i<8;i++)
  844.         {
  845.                 P0=table1[i];
  846.                 P2=table1[i];
  847.                 delay(100);
  848.         }
  849.         P0=0xff; P2=0xff;
  850.         for(i=0;i<8;i++)
  851.         {
  852.                 P1=table0[i];
  853.                 P3=table1[i];
  854.                 delay(100);
  855.         }
  856.         
  857.         for(i=0;i<8;i++)
  858.         {
  859.                 P1=table7[i];
  860.                 P3=table6[i];
  861.                 delay(100);
  862.         }
  863.         P1=0x7f; P3=0xfe;
  864.         for(i=0;i<8;i++)
  865.         {
  866.                 P0=table0[i];
  867.                 P2=table0[i];
  868.                 delay(100);
  869.         }
  870.         
  871.         for(i=0;i<8;i++)
  872.         {
  873.                 P0=table1[i];
  874.                 P2=table1[i];
  875.                 P1=table1[i];
  876.                 P3=table0[i];
  877.                 delay(200);
  878.         }
  879.         
  880.         for(i=0;i<8;i++)
  881.         {
  882.                 P0=table0[i];
  883.                 P1=table0[i];
  884.                 P2=table0[i];
  885.                 P3=table1[i];
  886.                 delay(200);
  887.         }        
  888.         P0=0xff;P1=0xff; P2=0xff;P3=0xff;
  889. }

  890. void disp38()                        //状态38 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  891. {
  892.         P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  893.         for(j=0;j<2;j++)
  894.         {
  895.                 for(i=0;i<8;i++)
  896.                 {
  897.                         P2=table3[i];
  898.                         P1=table3[i];
  899.                         delay(100);
  900.                 }
  901.                 P2=0xff; P1=0xff;
  902.                 for(i=0;i<8;i++)
  903.                 {
  904.                         P0=table2[i];
  905.                         P3=table3[i];
  906.                         delay(100);
  907.                 }
  908.                 P0=0xff; P3=0xff;
  909.         }        
  910. }

  911. void disp39()                        //状态39 P1、P3LED(下半部分)一直亮,上半部分LED向外扩张亮,然后闪烁3次
  912. {
  913.         P1=0x00; P3=0x00;
  914.         for(i=0;i<8;i++)
  915.         {
  916.                 P0=table3[i];
  917.                 P2=table3[i];
  918.                 delay(150);
  919.         }
  920.         for(i=0;i<8;i++)
  921.         {
  922.                 P0=table3[i];
  923.                 P2=table3[i];
  924.                 delay(300);
  925.         }
  926.         for(i=0;i<4;i++)
  927.         {
  928.                 P0=~P0; P2=~P2;
  929.                 delay(300);
  930.         }
  931.         delay(1000);
  932. }

  933. void disp40()                        //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭
  934. {
  935.         for(i=0;i<9;i++)
  936.         {
  937.                 P3=table4[i];
  938.                 P0=table5[i];
  939.                 delay(100);
  940.         }
  941.         for(i=1;i<9;i++)
  942.         {
  943.                 P2=table4[i];
  944.                 P1=table4[i];
  945.                 delay(100);
  946.         }
  947.         delay(300);        
  948. }

  949. void disp41()                        //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭
  950. {
  951.         for(i=0;i<9;i++)
  952.         {
  953.                 P2=table5[i];
  954.                 P1=table5[i];
  955.                 delay(100);
  956.         }
  957.         for(i=1;i<9;i++)
  958.         {
  959.                 P0=table4[i];
  960.                 P3=table5[i];
  961.                 delay(100);
  962.         }
  963.         delay(300);               
  964. }

  965. void main()
  966. {        
  967.         while(1)
  968.         {               
  969.                 disp22();                //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)
  970.                 disp0();                //状态0 所有LED闪烁3次
  971.                 disp1();                //状态1 LED顺时针转一圈
  972.                 disp2();                //状态2 LED逆时针转一圈
  973.                 disp3();                //状态3 4个LED同时顺时、逆时针移动1/4圈
  974.                 disp4();                //状态4  2个LED同时顺时针移动半圈
  975.                 disp5();                //状态5  2个LED同时逆时针移动半圈
  976.                 disp6();                //状态6 LED自上而下逐渐点亮(一半点亮一半不亮)
  977.                 disp7();                //状态7 LED自下而上逐渐点亮(直到全部点亮)
  978.                 disp0();                //状态0 所有LED闪烁3次
  979.                 disp8();                //状态8 间断8格的4个LED亮并逆时针旋转
  980.                 disp9();                //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  981.                 disp10();                //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  982.                 disp11();                //状态11 间断8格的4个LED亮并顺时针旋转
  983.                 disp12();                //间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮)
  984.                 disp13();                //状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭)
  985.                 disp14();                //状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐布点亮)   
  986.                 disp15();                //状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭)
  987.                 disp16();                //状态16 LED灯交替闪烁(频率有慢变快)
  988.                 disp17();                //状态17 LED从P0.7开始逆时针逐步点亮,并且速度会逐步提高
  989.                 disp18();                //状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)
  990.                 disp19();                //状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高
  991.                 disp20();                //状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)
  992.                 disp21();                //状态21 2个LED开始上下移动半圈
  993.                 disp22();                //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低
  994.                 disp23();                //状态23 LED上下交替闪烁
  995.                 disp39();                //状态39 P1、P3LED(下半部分)一直亮,上半部分LED向外扩张亮,然后闪烁3次
  996.                 disp24();                //状态24 LED左右交替闪烁
  997.                 disp25();                //状态25 LED交替闪烁  
  998.                 disp8();                //状态8 间断8格的4个LED亮并逆时针旋转
  999.                 disp9();                //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  1000.                 disp10();                //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  1001.                 disp26();                //状态26 2个LED开始上下移动半圈(LED不亮流水)
  1002.                 disp27();                //状态27 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  1003.                 disp28();                //状态28 P1、P2和P0、P3交替闪烁
  1004.                 disp38();                //状态38 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  1005.                 disp29();                //状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮P0、P3的LED,再顺时熄灭
  1006.                 disp30();                //状态30 逐步逆时针点亮P2、P1的LED,熄灭后,再逆时针点亮P0、P3的LED
  1007.                 disp31();                //状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮P0、P3的LED,再逆时熄灭
  1008.                 disp32();                //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭
  1009.                 disp33();                //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)
  1010.                 disp37();                //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次
  1011.                 disp36();                //状态36  从P0.7、P3.0开始同时逆时针旋转,直到LED全亮
  1012.                 disp40();                //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭
  1013.                 disp35();                //状态35  从P2.7、P1.7开始同时顺时针旋转,直到LED全亮
  1014.                 disp41();                //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭
  1015.                 disp34();                //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭
  1016.                 disp28();                //状态28 P1、P2和P0、P3交替闪烁
  1017.         }
  1018. }
复制代码


心形流水灯,电路图在这里http://www.51hei.com/bbs/dpj-28827-1.html

电路图.rar

359.5 KB, 下载次数: 56, 下载积分: 黑币 -5

心形花样灯 程序.rar

47.46 KB, 下载次数: 53, 下载积分: 黑币 -5

元件清单.rar

2.14 KB, 下载次数: 22, 下载积分: 黑币 -5

评分

参与人数 2黑币 +6 收起 理由
377489961 + 3 很给力!
51学者 + 3 本人是51单片机初学者,一直想自己做新型流.

查看全部评分

回复

使用道具 举报

ID:69009 发表于 2014-11-29 22:23 | 显示全部楼层
很好,51黑有你更精彩!!!
回复

使用道具 举报

ID:63924 发表于 2015-3-15 10:33 | 显示全部楼层
楼主,什么都没有啊,只有文件夹啊
回复

使用道具 举报

ID:74484 发表于 2015-4-11 16:39 | 显示全部楼层
看看怎样嘛
回复

使用道具 举报

ID:74484 发表于 2015-4-11 16:42 | 显示全部楼层
都是假的,,,大家别下
回复

使用道具 举报

ID:122423 发表于 2016-8-8 16:02 | 显示全部楼层
握草,什么都没有,空白文件夹!
回复

使用道具 举报

ID:137408 发表于 2016-8-24 01:31 来自手机 | 显示全部楼层
快快快快    好东西
回复

使用道具 举报

ID:136980 发表于 2016-8-24 18:55 | 显示全部楼层
厉害厉害!!!!
回复

使用道具 举报

ID:136460 发表于 2016-8-24 19:53 来自手机 | 显示全部楼层
有意思吗?
回复

使用道具 举报

ID:137531 发表于 2016-8-24 22:51 来自手机 | 显示全部楼层
空文件夹吗?
回复

使用道具 举报

ID:137539 发表于 2016-8-25 06:43 | 显示全部楼层
看看,学习学习
回复

使用道具 举报

ID:137531 发表于 2016-8-25 12:54 来自手机 | 显示全部楼层
空的吗?
回复

使用道具 举报

ID:137531 发表于 2016-8-25 12:54 来自手机 | 显示全部楼层
空的吗?
回复

使用道具 举报

ID:137579 发表于 2016-8-25 14:45 | 显示全部楼层
看上去好厉害~
回复

使用道具 举报

ID:137539 发表于 2016-8-26 23:25 | 显示全部楼层
本人是51单片机初学者,一直想自己做新型流水灯玩玩,学习一下,谢谢分享
回复

使用道具 举报

ID:144191 发表于 2016-10-24 16:12 | 显示全部楼层
不错,下载下来看看!
回复

使用道具 举报

ID:143842 发表于 2016-10-24 23:58 来自手机 | 显示全部楼层
好多...
回复

使用道具 举报

ID:146019 发表于 2016-11-3 23:18 | 显示全部楼层
不错,不错。
回复

使用道具 举报

ID:155803 发表于 2016-12-19 09:38 | 显示全部楼层
niimabi
回复

使用道具 举报

ID:157792 发表于 2016-12-26 16:12 | 显示全部楼层
我很需要 先看看学习一下
回复

使用道具 举报

ID:185238 发表于 2017-3-31 22:24 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:194579 发表于 2017-4-28 16:32 | 显示全部楼层
好666666啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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