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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

4x4x4光立方制作 附單片機源碼

  [復制鏈接]
跳轉到指定樓層
樓主
第一次做光立方,走了些彎路,但好在做出來了,效果還不錯。
材料清單:5mm霧狀燈珠64個,9x15cm洞洞板,STC12C5A60S2單片機,20p插針兩個,5VDC電源座一個,開關一個,導線若干。


直接用單片機驅動,不用任何其他芯片。燈一定不要貪小便宜,之前買的30塊錢1000個3mm的燈珠,用之前是好的,焊成一排后發現很多都不亮,第一次做還以為因為沒上電,結果焊到板子上還是不亮,耽誤了幾天,跟客服還吵了一架,郁悶


采用層共陰束共陽接法,未用P0口驅動小燈,用P1和P3口控制束,P2口控制層。


寫程序就容易多了,人眼的視覺暫留嘛,簡單說就是把自己想要的動畫分成幀,每一時幀后加延時就好了。

原理圖

單片機源程序如下:
  1. #include<reg51.h>

  2. typedef unsigned char uchar;
  3. typedef unsigned int  uint;
  4. sbit led1=P2^4;
  5. sbit led2=P2^5;
  6. sbit led3=P2^6;
  7. sbit led4=P2^7;
  8. sbit gongyin1=P2^3;         //最頂層
  9. sbit gongyin2=P2^2;         //第三層
  10. sbit gongyin3=P2^1;  //第二層
  11. sbit gongyin4=P2^0;         //最底層

  12. uchar wei1[]={1,0,1,0,1,0,1,0,1};
  13. uchar wei2[]={0,1,1,1,0,1,1,1};
  14. uchar wei3[]={0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1};
  15. uchar gongyang10[]={0x0f,0x8e,0x8c,0x88,0x80,0x00,0x00,0x00,0x10,0x11,0x60,0x40,0x00,0x20};
  16. uchar gongyang30[]={0x00,0x00,0x08,0x88,0xc8,0xe8,0xf0,0x71,0x31,0x11,0x00,0x04,0x06,0x02};
  17. uchar gongyang11[]={0x01,0x33,0x77,0xff,0xe0,0x00,0x00,0x08,0xcc,0xee,0xff,0x70,0x00,0x00};
  18. uchar gongyang31[]={0x00,0x00,0x07,0xff,0xee,0xcc,0x80,0x00,0x00,0x0e,0xff,0x77,0x33,0x10};
  19. uchar gongyang12[]={0x48,0x44,0x22,0x21,0x30,0xc0};
  20. uchar gongyang32[]={0x12,0x22,0x44,0x84,0x0c,0x03};
  21. uchar gongyang13[]={0x0f,0x8e,0x8c,0x88,0x80,0x00,0x00,0x00,0x10,0x11,0x12,0x17};
  22. uchar gongyang33[]={0x00,0x00,0x08,0x88,0xc8,0xe8,0xf0,0x71,0x31,0x11,0x01,0x00};

  23. void delay(uint time)   //延時函數
  24. {
  25.     unsigned int i,j;
  26.     for(i=0;i<time;i++)
  27.         for(j=0;j<250;j++);
  28. }


  29. void display1()                        //動畫1:全亮并閃爍
  30. {
  31.   uchar i,j;
  32.   j=10;
  33.   while(j--)
  34.   {
  35.   for(i=0;i<2;i++)
  36.   {
  37.         gongyin1=wei1[i];
  38.         gongyin2=wei1[i+2];
  39.         gongyin3=wei1[i+4];
  40.         gongyin4=wei1[i+6];
  41.         P1=0XFF;
  42.         P3=0XFF;
  43.         delay(350);
  44.   }
  45.   }
  46. }

  47. void display2()          //動畫2:上下每層閃動
  48. {
  49.    uint i,j;
  50.    j=5;
  51.    while(j--)
  52.    {
  53.    for(i=0;i<4;i++)
  54.    {
  55.          gongyin1=wei2[i];
  56.          gongyin2=wei2[i+3];
  57.          gongyin3=wei2[i+2];
  58.          gongyin4=wei2[i+1];
  59.          P1=0XFF;
  60.          P3=0XFF;
  61.          delay(800);
  62.    }
  63.    }
  64. }
  65. void display3()           //動畫3:從上旋轉而下,一直有四個燈亮
  66. {
  67.   uint i,j;
  68.   for(i=0;i<4;i++)
  69.   {
  70.     gongyin1=wei2[i];
  71.         gongyin2=wei2[i+3];
  72.         gongyin3=wei2[i+2];
  73.         gongyin4=wei2[i+1];
  74.         for(j=0;j<9;j++)
  75.         {
  76.           P1=gongyang10[j];
  77.           P3=gongyang30[j];
  78.           delay(300);
  79.         }
  80.   }
  81. }
  82. void display4()         //動畫4:四面循環,由外向內
  83. {
  84.   uint i,j;
  85.   j=3;
  86.   while(j--)
  87.   {
  88.   for(i=0;i<14;i++)
  89.   {
  90.         gongyin1=0;
  91.         gongyin2=0;
  92.         gongyin3=0;
  93.         gongyin4=0;
  94.         P1=gongyang10[i];
  95.         P3=gongyang30[i];
  96.         delay(350);
  97.   }
  98.     delay(200);
  99.   }
  100. }




  101. void display5()          //動畫5:由外角向內點亮
  102. {
  103.   uchar i=10;
  104.   while(i--)
  105.   {
  106.   gongyin1=0;
  107.   gongyin2=1;
  108.   gongyin3=1;
  109.   gongyin4=0;
  110.   P1=0x09;
  111.   P3=0x90;
  112.   delay(450);
  113.   gongyin1=1;
  114.   gongyin2=0;
  115.   gongyin3=0;
  116.   gongyin4=1;
  117.   P1=0x60;
  118.   P3=0x06;
  119.   delay(450);
  120.   }
  121. }

  122. void display6()           //動畫6:角對角
  123. {
  124.   uint i,j,k;
  125.   k=1;
  126.   while(k--)
  127.   {
  128.   for(i=0;i<14;i++)
  129.   {
  130.     gongyin1=wei3[i];
  131.         gongyin2=wei3[i+6];
  132.         gongyin3=wei3[i+5];
  133.         gongyin4=wei3[i+4];
  134.         P1=gongyang11[i];
  135.         P3=gongyang31[i];
  136.         delay(500);
  137.   }
  138.   for(j=13;j>0;j--)
  139.   {
  140.     gongyin1=wei3[j];
  141.         gongyin2=wei3[j+6];
  142.         gongyin3=wei3[j+5];
  143.         gongyin4=wei3[j+4];
  144.         P1=gongyang11[j];
  145.         P3=gongyang31[j];
  146.         delay(500);
  147.   }
  148.     delay(200);
  149.   }
  150. }

  151. void display7()          //動畫7:一豎排旋轉
  152. {
  153.   uint i,j=
  154.   j=5;
  155.   while(j--)
  156.   {
  157.    for(i=0;i<6;i++)
  158.    {
  159.         gongyin1=0;
  160.         gongyin2=0;
  161.         gongyin3=0;
  162.         gongyin4=0;
  163.         P1=gongyang12[i];
  164.         P3=gongyang32[i];
  165.         delay(350);
  166.    }
  167.    delay(200);
  168.   }
  169. }


  170. void display8()                //動畫8:豎排左右
  171. {
  172.    uint a=2;
  173.    while(a--)
  174.    {
  175. …………
  176. …………
  177. …………限于本文篇幅 余下代碼請從51黑下載附件…………
  178.          delay(70);
  179.   }
  180.   z3=3;
  181.   while(z3--)
  182.   {
  183.   gongyin1=0;
  184.      gongyin2=1;
  185.      gongyin3=1;
  186.      gongyin4=1;
  187.          P1=0xff;
  188.          P3=0xff;
  189.          delay(15);
  190.          gongyin1=1;
  191.      gongyin2=1;
  192.      gongyin3=1;
  193.      gongyin4=0;
  194.          P1=0x09;
  195.          P3=0x00;
  196.          delay(70);
  197.   }
  198.   z4=3;
  199.   while(z4--)
  200.   {
  201.   gongyin1=0;
  202.      gongyin2=1;
  203.      gongyin3=1;
  204.      gongyin4=1;
  205.          P1=0xff;
  206.          P3=0xff;
  207.          delay(70);
  208.   }
  209.   }
  210. }


  211. void main()
  212. {
  213.    while(1)
  214.    {
  215.       led1=1;
  216.           led2=1;
  217.           led3=1;
  218.           led4=1;
  219.           display1(); //動畫1:全亮并閃爍
  220.           display2(); //動畫2:上下每層閃動
  221.           display3(); //動畫3:從上旋轉而下,一直有四個燈亮
  222.           display4(); //動畫4:四面循環,由外向內
  223.           display5(); //動畫5:由外角向內點亮
  224.           display6();  //動畫6:角對角
  225.           display7();  //動畫7:一豎排旋轉
  226.           display16(); //動畫16:四側面循環
  227.           display17();  //動畫17:四底面循環-兩排
  228.           display8();        //動畫8:豎排左右
  229.       display9();         //動畫9:左右波浪
  230.       display10();        //動畫10:前后波浪
  231.           display18();  //動畫18:四底面循環 -單排
  232.           display11();        //動畫11:X字形前后左右
  233.           display6();  //動畫6:角對角
  234.           display19();  //動畫19:隨機下落
  235.       display12();        //動畫12:正方體大小變換
  236.           display13();         //動畫13:方框大小變換
  237.           display14();        //動畫14:方塊隨機移動
  238.           display15();        //動畫15:方塊形成大方塊
  239.          
  240.    }
  241. }
復制代碼

所有資料51hei提供下載:
程序2.zip (109.32 KB, 下載次數: 126)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:433534 發表于 2018-11-26 17:10 | 只看該作者
正在做這個,萬分感謝
回復

使用道具 舉報

板凳
ID:433823 發表于 2018-11-26 23:14 | 只看該作者
這個是用樓主用自己的材料制作的,不是從淘寶上買的套裝組裝起來的,樓主很厲害,值得推薦,過程很詳細,適合像我這樣的業余愛好者練習,從里面學...
回復

使用道具 舉報

地板
ID:404720 發表于 2018-11-27 08:20 | 只看該作者
不是套件好評
回復

使用道具 舉報

5#
ID:261148 發表于 2019-4-1 09:04 | 只看該作者
實物圖與原理圖怎么對不上?
回復

使用道具 舉報

6#
ID:432687 發表于 2019-4-22 07:55 來自手機 | 只看該作者
靈感和學習效果的完美頁面..我對這項創新感到非常驚訝好主意,和我們在一起!不幸的是,我不懂你的語言,我嚴重依賴翻譯。謝謝分享。
回復

使用道具 舉報

7#
ID:518809 發表于 2019-4-22 17:44 | 只看該作者
不用焊三極管嗎
回復

使用道具 舉報

8#
ID:520323 發表于 2019-4-24 13:28 | 只看該作者
樓主厲害
回復

使用道具 舉報

9#
ID:343137 發表于 2019-7-21 09:48 | 只看該作者
可以,起碼不用靠淘寶,自己動手好啊
回復

使用道具 舉報

10#
ID:811998 發表于 2020-9-2 16:06 來自手機 | 只看該作者
你好,我有兩個問題不明白想請問一下,第一層是怎么排列的方陣,從左到右,從前到后,從下到上依次引腳應該是多少。這有個疑惑原理圖P24,P25,P26,P27是對應的一二三四層,但程序里標注的又是P20,P21,P22,P23。。
回復

使用道具 舉報

11#
ID:1042173 發表于 2022-9-3 08:50 | 只看該作者
請問,用那個軟件給取模的?
回復

使用道具 舉報

12#
ID:1042582 發表于 2022-9-4 10:59 | 只看該作者
可以加個按鍵切換循環模式就好,不要一直10幾種動畫一直循環
回復

使用道具 舉報

13#
ID:1043730 發表于 2022-9-29 22:31 | 只看該作者
正在教人做這個,萬分感謝
回復

使用道具 舉報

14#
ID:1043730 發表于 2022-9-29 22:32 | 只看該作者
正在制作,感謝
回復

使用道具 舉報

15#
ID:1045889 發表于 2022-9-30 14:35 | 只看該作者
新手提問,這種led不用串限流電阻嗎?
回復

使用道具 舉報

16#
ID:1045889 發表于 2022-9-30 14:36 | 只看該作者
我也是使用的led 3mm的,焊接完畢壞了好多,有的重新焊接了好幾次,最后的結果是燈亮度不同,不知道是我串的電阻阻值有差別還是燈的原因
回復

使用道具 舉報

17#
ID:1050704 發表于 2022-11-6 11:47 | 只看該作者
正在做這個,萬分感謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: aaa天堂 | 91久久精品国产91久久性色tv | 日韩精品一区在线 | 精品一区免费 | 亚洲综合激情 | 精品久久亚洲 | 久草视频在线播放 | 亚洲免费精品 | 91中文| 国产中文视频 | 国产电影一区二区三区爱妃记 | 精品成人免费一区二区在线播放 | 欧美女优在线观看 | 日韩国产免费 | 99国产精品久久久久久久 | 亚洲精品乱码久久久久久按摩观 | 精品国产三级 | 三级黄色片在线播放 | 欧美 日本 国产 | 亚洲男女视频在线观看 | 国产一区视频在线 | 久久国 | 精品乱码久久久久 | 亚洲人在线| 欧美日韩免费视频 | 精品少妇一区二区三区日产乱码 | 成人a免费 | 美日韩精品 | 一级黄色片日本 | 日本精品视频在线观看 | 天天影视亚洲综合网 | 一道本不卡 | 精品久久久久久久 | 国产成人网 | 嫩草国产| 欧美日韩国产在线观看 | 久久久精品国产 | 国产欧美一区二区三区免费 | 欧美 日韩 亚洲91麻豆精品 | 色噜噜色综合 | 日韩精品久久久久久 |