找回密码
 立即注册

QQ登录

只需一步,快速开始

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

32位流水灯,心形流水灯程序+多图+电路 泡妹子利器

  [复制链接]
跳转到指定楼层
楼主
  玩单片机很久了,以前老觉得流水灯是一些初级入门的东西,没什么深度好玩,做来当玩具玩玩,还不知道能做什么,突然有哥们问,想送个特别的礼物给女友,送什么好。想到这哥们也是电子爱好者,于是帮其搞个心形流水灯吧~~~~~~~~~~~~~~,废话不多说~~,开工~


做这个呢,先布局好“心”~~~



正面图,是不是很美观呢~~~~~~~~~~~~~~~~


上电测试,还可以



全点亮都拍到了~~~~~~~~



还好吧~~~~~~版面算整洁







32流水灯.zip (67.81 KB, 下载次数: 584)

  1. #include<reg52.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. }
复制代码



评分

参与人数 5黑币 +19 收起 理由
kyo123 + 5 绝世好贴
zzwk123456 + 5 很给力!源码好多啊
binbinbin + 5
滴~电子小白 + 3 赞一个!
ghg2hd1f7 + 1 赞一个!

查看全部评分

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

使用道具 举报

来自 2#
ID:85124 发表于 2015-7-11 10:38 | 只看该作者
本帖最后由 可爱的梦扬 于 2015-7-11 10:40 编辑

楼主,拍一下连线图嘿,我做了一个,但是感觉连错了

LED.png (213.98 KB, 下载次数: 513)

LED.png
回复

使用道具 举报

板凳
ID:79477 发表于 2015-5-9 22:46 | 只看该作者
支持一下,楼主辛苦了,,,51hei有你更精彩!!
回复

使用道具 举报

地板
ID:79531 发表于 2015-5-10 16:41 | 只看该作者
牛,水平真高!顺便问一下表白成功了吗?
回复

使用道具 举报

5#
ID:75610 发表于 2015-5-12 19:06 | 只看该作者
楼主辛苦了,学习一下
回复

使用道具 举报

6#
ID:79790 发表于 2015-5-12 20:34 | 只看该作者
没电路图吗
回复

使用道具 举报

7#
ID:79812 发表于 2015-5-12 22:16 | 只看该作者
谢谢你的无私分享,我还停留在8位流水灯的境界...
回复

使用道具 举报

8#
ID:74471 发表于 2015-5-13 07:07 | 只看该作者
led用七彩的效果更好
回复

使用道具 举报

9#
ID:79828 发表于 2015-5-13 10:05 | 只看该作者
感谢楼主分享
回复

使用道具 举报

10#
ID:68997 发表于 2015-5-18 16:15 | 只看该作者
原理图有没有啊
回复

使用道具 举报

11#
ID:80195 发表于 2015-5-20 00:23 来自手机 | 只看该作者
呵呵,我喜欢
回复

使用道具 举报

12#
ID:80833 发表于 2015-5-22 17:25 | 只看该作者
学习一下看看什么样
回复

使用道具 举报

13#
ID:82333 发表于 2015-6-7 20:04 | 只看该作者
没有电路图,仿真也没有啊
回复

使用道具 举报

14#
ID:82895 发表于 2015-6-13 17:12 | 只看该作者
再次表示支持啊   !初学者学习了
回复

使用道具 举报

15#
ID:81140 发表于 2015-6-20 22:47 来自手机 | 只看该作者
请问楼主,你用的芯片是stc89c52吗?
回复

使用道具 举报

16#
ID:85338 发表于 2015-7-10 21:50 | 只看该作者
神器  果断收藏
回复

使用道具 举报

17#
ID:89319 发表于 2015-9-3 14:39 | 只看该作者

神器  果断收藏
回复

使用道具 举报

18#
ID:90042 发表于 2015-9-13 21:38 | 只看该作者
楼组能否给个原理图,谢谢了嘛
回复

使用道具 举报

19#
ID:74441 发表于 2015-10-28 18:47 | 只看该作者
我的天,这。。。。。
回复

使用道具 举报

20#
ID:94143 发表于 2015-10-31 21:19 | 只看该作者
辛苦了楼主
回复

使用道具 举报

21#
ID:101060 发表于 2015-12-29 15:28 | 只看该作者
!谢谢楼主源码!
回复

使用道具 举报

22#
ID:101561 发表于 2016-1-2 22:31 | 只看该作者
感谢楼主
回复

使用道具 举报

23#
ID:91024 发表于 2016-1-3 08:13 | 只看该作者
没有放限流电阻?
回复

使用道具 举报

24#
ID:113678 发表于 2016-4-16 16:57 | 只看该作者
太好了正需要  谢谢了
回复

使用道具 举报

25#
ID:120634 发表于 2016-5-13 22:42 | 只看该作者
看看,支持,我也做一个
回复

使用道具 举报

26#
ID:111218 发表于 2016-5-14 15:58 | 只看该作者
辛苦了
回复

使用道具 举报

27#
ID:127133 发表于 2016-6-17 16:54 | 只看该作者
有没有仿真的图
回复

使用道具 举报

28#
ID:64543 发表于 2016-7-6 23:24 | 只看该作者
谢谢你的无私分享,
回复

使用道具 举报

29#
ID:129887 发表于 2016-7-14 17:37 | 只看该作者
楼主辛苦了,能把仿真图发到我的邮箱1587425871@qq.com谢谢
回复

使用道具 举报

30#
ID:129887 发表于 2016-7-14 19:33 | 只看该作者
楼主求仿真图一份,谢谢。我邮箱1587425871@qq.com
回复

使用道具 举报

31#
ID:141032 发表于 2016-10-1 08:35 来自手机 | 只看该作者
楼主,我是新手,能发一份心形流水灯的焊接图可以吗?
回复

使用道具 举报

32#
ID:141032 发表于 2016-10-1 08:36 来自手机 | 只看该作者
这是我的QQ邮箱:1916780840@qq.com
回复

使用道具 举报

33#
ID:110441 发表于 2016-10-30 21:41 | 只看该作者
大神我真是佩服你 的耐心!
回复

使用道具 举报

34#
ID:145608 发表于 2016-11-2 09:11 | 只看该作者
我好想学。
回复

使用道具 举报

35#
ID:147571 发表于 2016-11-12 22:15 | 只看该作者
nice
!!!
回复

使用道具 举报

36#
ID:148523 发表于 2016-11-17 22:01 | 只看该作者
电路图呢!!
回复

使用道具 举报

37#
ID:144974 发表于 2016-11-19 16:43 | 只看该作者
不错吗
回复

使用道具 举报

38#
ID:151122 发表于 2016-11-29 22:49 | 只看该作者
楼主,为啥下载你的原文件,打开之后是这种情况,求知道的人回答一下是什么意思咋么解决。谢谢诶

@NC_8%YI1%TABCB233~XN{E.png (8.2 KB, 下载次数: 86)

@NC_8%YI1%TABCB233~XN{E.png
回复

使用道具 举报

39#
ID:87088 发表于 2016-12-6 20:58 | 只看该作者
好东西,值得学习,我一定好好看看。
回复

使用道具 举报

40#
ID:153612 发表于 2016-12-10 08:50 | 只看该作者
下载的文件没有原理图
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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