久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3610|回復: 2
打印 上一主題 下一主題
收起左側

單片機控制32流水燈,求程序設計思路

[復制鏈接]
跳轉到指定樓層
樓主
1黑幣
電路圖有問題嘛,要什么樣的程序才可以控制32盞燈依次亮

QQ圖片20190322013319.png (24.29 KB, 下載次數: 42)

QQ圖片20190322013319.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:100826 發表于 2019-3-22 07:40 | 只看該作者
32顆LED 愛心流水燈程序
  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. }
復制代碼
回復

使用道具 舉報

板凳
ID:365802 發表于 2019-3-22 08:17 | 只看該作者
這種思路供你參考, 把燈依次點亮的狀態寫成數組, 循環依次賦值.
unsigned char Disp[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
for(i=0; i<8; i++) P0 = Disp[i];
for(i=0; i<8; i++) P1 = Disp[i];
for(i=0; i<8; i++) P2 = Disp[i];
for(i=0; i<8; i++) P3 = Disp[i];
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人精品在线观看 | 国产精品视频导航 | 日韩av.com| 久久一区| 久久人人国产 | 五月综合激情在线 | 日本精品久久久久 | 日韩三级| 欧美日韩精品在线免费观看 | 精品欧美一区二区精品久久久 | 国产欧美精品一区二区 | 99热这里有精品 | 神马久久av | 成人免费看片 | 日韩国产高清在线观看 | 亚洲国产精品久久久久秋霞不卡 | 精品一区二区三区四区 | 一区二区福利视频 | 草樱av| 欧美日韩成人影院 | 久久99蜜桃综合影院免费观看 | 91精品国产综合久久久动漫日韩 | 三级成人在线观看 | 国产一区二区免费 | 国产一区久久 | 亚洲高清在线播放 | 国产精品日韩欧美一区二区三区 | 国产一区二区视频在线 | 99在线国产 | 日韩在线不卡 | 午夜视频在线观看网站 | 欧美成人精品一区二区三区 | 2019天天操 | 国产精品久久午夜夜伦鲁鲁 | 超碰3| 在线成人免费视频 | 免费在线观看一区二区三区 | 久久人体视频 | 自拍在线 | 国产精品国产三级国产aⅴ无密码 | 国产福利免费视频 |