找回密码
 立即注册

QQ登录

只需一步,快速开始

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

试做的RGB全彩LED广州塔(单片机源码PCB电路图资料分享)

  [复制链接]
跳转到指定楼层
楼主
本帖最后由 浸染的夜 于 2018-8-30 08:09 编辑

RGB全彩LED广州塔效果视频:
https://v.youku.com/v_show/id_XMzgwMTY3Nzk5Ng==.html
灯体焊接教程视频
http://www.tudou.com/programs/view/U1rRxIadz0Q/


折灯方法:







模板制作:
a4纸1:1打印(模板文件在资料里)


用脱水、胶带都可以




孔是5mm的,烙铁头,镊子等都是可以打孔的



焊接:










上图LED灯为早期买的,这种小草帽不太好
要买这种,RGB全彩共阴,别买错了



以上是焊好和灯塔,不过我建议做好底板电路,每焊一层灯,就接到板子上,


LED灯买上图这种,

焊接板子时没有拍照,忘了。
我用的插件的单片机与2803、573,适合洞洞板焊接。

Altium Designer画的RGB全彩LED广州塔原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1.       
  2.       /*////////////////////////////////////////////////////////////////////
  3.       //   本程序禁止用于未经本人同意的其它商用目的,一经发现,各种骚扰   //
  4.       ////////////////////////////////////////////////////////////////////*/
  5. #include<reg52.h>                         //头文件
  6. #define uint unsigned int         //宏定义
  7. #define uchar unsigned char         //宏定义
  8. #include<intrins.h>                         //循环函数的头文件
  9. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//从低位往高位灭一个灯流水
  10. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//从高位往低位灭一个灯流水
  11. uchar code table2[]={0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00};//从低位到高位逐步全部熄灭
  12. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//从高位到低位逐步全部熄灭
  13. uchar code table4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//从低位到高位逐步全部点亮
  14. uchar code table5[]={0x80,0xa0,0xe0,0xf0,0xf8,0xfa,0xfe,0xff};//从高位到低位逐步全部点亮
  15. uchar code table6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//从低位到高位,亮一个灯移动
  16. uchar code table7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//从高位到低位,亮一个灯移动

  17. uchar code table8[]={0xfc,0xfe,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf1};
  18. uchar code table9[]={0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x7f,0x3f,0x1f,0x0f,0x07};

  19. uchar code table10[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01};
  20. uchar code table11[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};

  21. uchar code table12[]={0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x7f,0x3f};
  22. uchar code table13[]={0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0};


  23. uchar i,b;


  24. sbit r1=P3^2; //红色上8层片选
  25. sbit r2=P3^3; //红色下8层片选
  26. sbit b1=P3^4; //绿色上8层片选
  27. sbit b2=P3^5; //绿色下8层片选
  28. sbit g1=P3^6; //蓝色上8层片选
  29. sbit g2=P3^7; //蓝色下8层片选

  30. void delay(uint z) //延时函数
  31. {
  32.         uint x,y;
  33.         for(x=z;x>0;x--)
  34.                 for(y=314;y>0;y--);
  35. }
  36. /******************************************/
  37. void liushui0()//两列红色逆时针转动
  38. {
  39.         r1=1;        //开红色使能
  40.         r2=1;        //开红色使能

  41.         P0=0xff;//
  42.         for(i=0;i<8;i++)
  43.         {
  44.                 P1=table6[i];
  45.                 P2=table6[i];
  46.                 delay(30);
  47.         }
  48.            P1=0x00;P2=0x00;
  49.         P0=0x00;
  50.         r1=0;  //关红色使能
  51.         r2=0;  //关红色使能
  52. }
  53. void rr()//红色亮一会儿
  54. {
  55.         r1=1;
  56.         r2=1;
  57.         P0=0xff;
  58.         P2=0xff;
  59.         P1=0xff;
  60.         delay(100);
  61.         P0=0x00;
  62.         r1=0;
  63.         r2=0;
  64.         P2=0x00;
  65.         P1=0x00;
  66. }
  67. /******************************************/
  68. void liushui1()//两列绿色逆时针转动
  69. {
  70.         g1=1;        //开绿色使能
  71.         g2=1;        //开绿色使能

  72.         P0=0xff;//
  73.         for(i=0;i<8;i++)
  74.         {
  75.                 P1=table6[i];
  76.                 P2=table6[i];
  77.                 delay(30);
  78.         }
  79.            P1=0x00;P2=0x00;
  80.         P0=0x00;
  81.         g1=0;  //关绿色使能
  82.         g2=0;  //关绿色使能
  83. }
  84. void gg()//绿色亮一会儿
  85. {
  86.         g1=1;
  87.         g2=1;
  88.         P0=0xff;
  89.         P2=0xff;
  90.         P1=0xff;
  91.         delay(100);
  92.         P0=0x00;
  93.         g1=0;
  94.         g2=0;
  95.         P2=0x00;
  96.         P1=0x00;
  97. }
  98. /******************************************/
  99. void liushui2()//两列蓝色逆时针转动
  100. {
  101.         b1=1;        //开蓝色使能
  102.         b2=1;        //开蓝色使能

  103.         P0=0xff;//
  104.         for(i=0;i<8;i++)
  105.         {
  106.                 P1=table6[i];
  107.                 P2=table6[i];
  108.                 delay(30);
  109.         }
  110.            P1=0x00;P2=0x00;
  111.         P0=0x00;
  112.         b1=0;  //关蓝色使能
  113.         b2=0;  //关蓝色使能
  114. }
  115. void bb()//蓝色亮一会儿
  116. {
  117.         b1=1;
  118.         b2=1;
  119.         P0=0xff;
  120.         P2=0xff;
  121.         P1=0xff;
  122.         delay(100);
  123.         P0=0x00;
  124.         b1=0;
  125.         b2=0;
  126.         P2=0x00;
  127.         P1=0x00;
  128. }
  129. void liushui3()//红色单层向上移动
  130. {
  131.         P1=0xff;P2=0xff;
  132.         b2=1;
  133.         for(i=0;i<8;i++)
  134.         {
  135.                 P0=table7[i];
  136.                 delay(30);
  137.         }
  138.         P0=0x00;
  139.         b2=0;
  140. /********* **********/
  141.         P1=0xff;P2=0xff;
  142.         b1=1;
  143.         for(i=0;i<8;i++)
  144.         {
  145.                 P0=table7[i];
  146.                 delay(30);
  147.         }
  148.         P0=0x00;
  149.         b1=0;
  150. }
  151. /***********************/
  152. void liushui4()//红、黄、绿、青、蓝、洋红、白、红,向上流动
  153. {
  154.         uchar a,b,c;//绿、红、蓝


  155.         a=0x8d;
  156.         b=0x38;
  157.         c=0xe1;
  158. /////////////

  159.         r1=1;P0=b;r1=0;
  160.         r2=1;P0=b;r2=0;

  161.         g1=1;P0=a;g1=0;
  162.         g2=1;P0=a;g2=0;

  163.         b1=1;P0=c;b1=0;
  164.         b2=1;P0=c;b2=0;

  165.         P1=0xff;P2=0xff;

  166.         for(i=0;i<8;i++)
  167.         {
  168.                 a=_cror_(a,1);//循环左移
  169.                 b=_cror_(b,1);//循环左移
  170.                 c=_cror_(c,1);//循环左移
  171.                 delay(80);//延时
  172.         r1=1;P0=b;r1=0;
  173.         r2=1;P0=b;r2=0;

  174.         g1=1;P0=a;g1=0;
  175.         g2=1;P0=a;g2=0;

  176.         b1=1;P0=c;b1=0;
  177.         b2=1;P0=c;b2=0;

  178.         }
  179.         P3=0xff;P0=0x00;P3=0x00;
  180.         P1=0x00;P2=0x00;

  181. }

  182. /*************************************************/
  183. void liushui5()//红、黄、绿、青、蓝、洋红、白、红,向下流动
  184. {
  185.         uchar a,b,c;//绿、红、蓝


  186.         a=0x8d;
  187.         b=0x38;
  188.         c=0xe1;
  189. /////////////

  190.         r1=1;P0=b;r1=0;
  191.         r2=1;P0=b;r2=0;

  192.         g1=1;P0=a;g1=0;
  193.         g2=1;P0=a;g2=0;

  194.         b1=1;P0=c;b1=0;
  195.         b2=1;P0=c;b2=0;

  196.         P1=0xff;P2=0xff;

  197.         for(i=0;i<8;i++)
  198.         {
  199.                 a=_crol_(a,1);//循环左移
  200.                 b=_crol_(b,1);//循环左移
  201.                 c=_crol_(c,1);//循环左移
  202.                 delay(80);//延时
  203.         r1=1;P0=b;r1=0;
  204.         r2=1;P0=b;r2=0;

  205.         g1=1;P0=a;g1=0;
  206.         g2=1;P0=a;g2=0;

  207.         b1=1;P0=c;b1=0;
  208.         b2=1;P0=c;b2=0;

  209.         }
  210.         P3=0xff;P0=0x00;P3=0x00;
  211.         P1=0x00;P2=0x00;

  212. }
  213. void liushui6()//白色单层向上
  214. {
  215.         uchar a,b,c;//绿、红、蓝


  216.         a=0x80;
  217.         b=0x80;
  218.         c=0x80;
  219. /////////////

  220.         r2=1;P0=b;r2=0;
  221.         g2=1;P0=a;g2=0;
  222.         b2=1;P0=c;b2=0;

  223.         P1=0xff;P2=0xff;

  224.         for(i=0;i<8;i++)
  225.         {
  226.                 a=_cror_(a,1);//循环左移
  227.                 b=_cror_(b,1);//循环左移
  228.                 c=_cror_(c,1);//循环左移
  229.                 delay(25);//延时

  230.         r2=1;P0=b;r2=0;
  231.         g2=1;P0=a;g2=0;
  232.         b2=1;P0=c;b2=0;

  233.         }
  234.         P3=0xff;P0=0x00;P3=0x00;
  235.         P1=0x00;P2=0x00;
  236. /*****************************************/
  237.         r1=1;P0=b;r1=0;
  238.         g1=1;P0=a;g1=0;
  239.         b1=1;P0=c;b1=0;

  240.         P1=0xff;P2=0xff;

  241.         for(i=0;i<8;i++)
  242.         {
  243.                 a=_cror_(a,1);//循环左移
  244.                 b=_cror_(b,1);//循环左移
  245.                 c=_cror_(c,1);//循环左移
  246.                 delay(25);//延时

  247.         r1=1;P0=b;r1=0;
  248.         g1=1;P0=a;g1=0;
  249.         b1=1;P0=c;b1=0;

  250.         }
  251.         P3=0xff;P0=0x00;P3=0x00;
  252.         P1=0x00;P2=0x00;
  253. }
  254. /****************************************************/
  255. void liushui7()//白色单层向下
  256. {
  257.         uchar a,b,c;//绿、红、蓝


  258.         a=0x01;
  259.         b=0x01;
  260.         c=0x01;
  261. /////////////


  262.         r1=1;P0=b;r1=0;
  263.         g1=1;P0=a;g1=0;
  264.         b1=1;P0=c;b1=0;

  265.         P1=0xff;P2=0xff;

  266.         for(i=0;i<8;i++)
  267.         {
  268.                 a=_crol_(a,1);//循环左移
  269.                 b=_crol_(b,1);//循环左移
  270.                 c=_crol_(c,1);//循环左移
  271.                 delay(25);//延时

  272.         r1=1;P0=b;r1=0;
  273.         g1=1;P0=a;g1=0;
  274.         b1=1;P0=c;b1=0;

  275.         }
  276.         P3=0xff;P0=0x00;P3=0x00;
  277.         P1=0x00;P2=0x00;
  278. /*****************************************/        
  279.         r2=1;P0=b;r2=0;
  280.         g2=1;P0=a;g2=0;
  281.         b2=1;P0=c;b2=0;

  282.         P1=0xff;P2=0xff;

  283.         for(i=0;i<8;i++)
  284.         {
  285.                 a=_crol_(a,1);//循环左移
  286.                 b=_crol_(b,1);//循环左移
  287.                 c=_crol_(c,1);//循环左移
  288.                 delay(25);//延时

  289.         r2=1;P0=b;r2=0;
  290.         g2=1;P0=a;g2=0;
  291.         b2=1;P0=c;b2=0;

  292.         }
  293.         P3=0xff;P0=0x00;P3=0x00;
  294.         P1=0x00;P2=0x00;
  295. }
  296. /********************************************************************/
  297. void liushui8()//6色向上流动
  298. {
  299.         P1=0x00;P2=0x00;
  300.         P1=0xff;P2=0xff;
  301.         for(i=0;i<16;i++)
  302.         {
  303.                 r2=1;P0=table8[i];r2=0;
  304.                 r1=1;P0=table9[i];r1=0;
  305.         P1=0x00;P2=0x00;
  306.         P1=0xff;P2=0xff;
  307.                 /******/
  308.                 g2=1;P0=table10[i];g2=0;
  309.                 g1=1;P0=table11[i];g1=0;

  310.         P1=0x00;P2=0x00;
  311.         P1=0xff;P2=0xff;

  312.                 b2=1;P0=table12[i];b2=0;
  313.                 b1=1;P0=table13[i];b1=0;
  314.                 delay(25);
  315.         }

  316.         P3=0xff;P0=0x00;P3=0x00;
  317. }
  318. /***********************************************************************/
  319. void liushui9()//6色向下流动
  320. {
  321.         P1=0x00;P2=0x00;
  322.         P1=0xff;P2=0xff;
  323.         for(i=16;i>0;i--)
  324.         {
  325.                 r2=1;P0=table8[i];r2=0;
  326.                 r1=1;P0=table9[i];r1=0;
  327.         P1=0x00;P2=0x00;
  328.         P1=0xff;P2=0xff;
  329.                 /******/
  330.                 g2=1;P0=table10[i];g2=0;
  331.                 g1=1;P0=table11[i];g1=0;

  332.         P1=0x00;P2=0x00;
  333.         P1=0xff;P2=0xff;

  334.                 b2=1;P0=table12[i];b2=0;
  335.                 b1=1;P0=table13[i];b1=0;
  336.                 delay(25);
  337.         }

  338.         P3=0xff;P0=0x00;P3=0x00;
  339. }
  340. /********************************************************************************
  341. *********************************************************************************
  342. *********************************************************************************/
  343. void main()
  344. {
  345.         r1=1;P0=0x80;r1=0;
  346.         r2=1;P0=0x80;r2=0;

  347.         g1=1;P0=0x00;g1=0;
  348.         g2=1;P0=0x00;g2=0;

  349.         b1=1;P0=0x00;b1=0;
  350.         b2=1;P0=0x00;b2=0;
  351.         P1=0x00;
  352.         P2=0x00;
  353. /**************************************/

  354. while(1)
  355.          {
  356. /*        */
  357.           liushui0();//两列红色逆时针转动
  358.           liushui1();//两列绿色逆时针转动
  359.           liushui2();//两列蓝色逆时针转动
  360.           liushui3();//红色单层向上移动
  361.          
  362.           gg();//绿色亮一会儿
  363.           rr();//红色亮一会儿
  364.           bb();//蓝色亮一会儿

  365.           liushui4();//红、黄、绿、青、蓝、洋红、白、红,向上流动
  366.           liushui4();//红、黄、绿、青、蓝、洋红、白、红,向上流动
  367.           liushui4();//红、黄、绿、青、蓝、洋红、白、红,向上流动

  368.           liushui5();//红、黄、绿、青、蓝、洋红、白、红,向下流动
  369.           liushui5();//红、黄、绿、青、蓝、洋红、白、红,向下流动
  370.           liushui5();//红、黄、绿、青、蓝、洋红、白、红,向下流动


  371.           liushui6();//白色单层向上
  372.           liushui7();//白色单层向下


  373.           liushui8();//6色向上流动
  374.           liushui8();//6色向上流动
  375.           liushui8();//6色向上流动
  376.           liushui9();//6色向下流动
  377.           liushui9();//6色向下流动
  378.           liushui9();//6色向下流动
  379. /******************************************/

  380.         }
  381.          
  382. }
复制代码


所有资料51hei提供下载:
RGB广州塔16x16.zip (19.2 MB, 下载次数: 444)


先这样,有什么不懂的,加上面群交流吧。

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:1 发表于 2018-8-30 01:17 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:328014 发表于 2018-8-30 15:14 | 只看该作者
看视频,效果太棒了,很逼真,羡慕,貌似pcb是自动布线?
回复

使用道具 举报

地板
ID:89366 发表于 2018-8-30 16:48 | 只看该作者
51hei团团 发表于 2018-8-30 15:14
看视频,效果太棒了,很逼真,羡慕,貌似pcb是自动布线?

我手动布比自动还难看
回复

使用道具 举报

5#
ID:89366 发表于 2018-8-30 16:51 | 只看该作者
原理图与pcb供个参考,有些电路可能没用,哈哈
回复

使用道具 举报

6#
ID:340761 发表于 2018-9-26 23:34 | 只看该作者
能给份元件清单 吗?
回复

使用道具 举报

7#
ID:243748 发表于 2018-9-26 23:46 来自手机 | 只看该作者
做得很不错
回复

使用道具 举报

8#
ID:404554 发表于 2018-10-15 11:05 来自手机 | 只看该作者
有频谱模式没
回复

使用道具 举报

9#
ID:410250 发表于 2018-10-15 22:18 | 只看该作者
我也要动手做一个,就是不知道要哪些元件
回复

使用道具 举报

10#
ID:258965 发表于 2018-11-7 16:41 | 只看该作者
楼主厉害了!我很早之前也想做个RGB的 我用线路板做的灯条 灯都焊好了 就是程序搞不定 就没搞了
回复

使用道具 举报

11#
ID:399179 发表于 2018-11-7 18:08 来自手机 | 只看该作者
这个真不错!
回复

使用道具 举报

12#
ID:414975 发表于 2018-11-7 20:38 | 只看该作者
谢谢分享。
回复

使用道具 举报

13#
ID:326450 发表于 2018-11-8 16:42 | 只看该作者
很不错的资料
回复

使用道具 举报

14#
ID:459353 发表于 2019-1-1 15:50 | 只看该作者
看啊看不错
回复

使用道具 举报

15#
ID:137563 发表于 2019-1-1 17:55 | 只看该作者
大佬,学习了,牛逼,牛逼
回复

使用道具 举报

16#
ID:243748 发表于 2019-1-9 12:41 来自手机 | 只看该作者
用共阳灯,程序怎么改
回复

使用道具 举报

17#
ID:453974 发表于 2019-1-9 19:07 来自手机 | 只看该作者
焊的真漂亮,有技术
回复

使用道具 举报

18#
ID:471375 发表于 2019-2-13 22:41 来自手机 | 只看该作者
太棒了,不错不错
回复

使用道具 举报

19#
ID:344062 发表于 2019-4-14 01:16 来自手机 | 只看该作者
LED灯珠四个脚的和两个脚的链接方法一样吗?
回复

使用道具 举报

20#
ID:344062 发表于 2019-4-14 03:00 来自手机 | 只看该作者
楼主有材料清单吗?分享一下
回复

使用道具 举报

21#
ID:432687 发表于 2019-4-22 04:36 来自手机 | 只看该作者
完美的灵感和学习效果页面。 我很惊讶于聪明才智。 好主意,坚持下去! 不幸的是,我不懂你的语言,我非常依赖翻译。 但意志会放山。
回复

使用道具 举报

22#
ID:493298 发表于 2019-5-9 08:10 | 只看该作者
初学者,来这学习了!厉害厉害
回复

使用道具 举报

23#
ID:510055 发表于 2019-5-13 07:51 来自手机 | 只看该作者
可以试着做一下
回复

使用道具 举报

24#
ID:312815 发表于 2019-7-15 00:04 | 只看该作者
感谢分享
回复

使用道具 举报

25#
ID:105826 发表于 2019-9-12 13:44 | 只看该作者
看了成品视频,效果真的是惊叹,真的很不错,如果有个上位机能像点阵一样显示可玩性会不会好很多?
回复

使用道具 举报

26#
ID:284079 发表于 2019-9-15 16:04 | 只看该作者
很不错的资料
回复

使用道具 举报

27#
ID:621012 发表于 2019-10-9 12:30 | 只看该作者
楼主求一份元器件清单
回复

使用道具 举报

28#
ID:621012 发表于 2019-10-9 18:51 | 只看该作者
楼主我加群为何不通过。
回复

使用道具 举报

29#
ID:246783 发表于 2020-3-3 23:16 来自手机 | 只看该作者
耐心,技术,动手能力缺一不可
回复

使用道具 举报

30#
ID:701939 发表于 2020-3-4 14:36 | 只看该作者
楼主,问下能否弄的出来律动的效果呢?
回复

使用道具 举报

31#
ID:439863 发表于 2020-3-14 14:59 | 只看该作者
这手工,厉害厉害了。
回复

使用道具 举报

32#
ID:161151 发表于 2020-3-14 18:30 | 只看该作者
这是大工程。
回复

使用道具 举报

33#
ID:381496 发表于 2020-3-18 15:34 | 只看该作者
正准备做个全彩的,刚好就看到了你的资料,谢谢分享
回复

使用道具 举报

34#
ID:690363 发表于 2020-3-18 17:11 | 只看该作者
这个更好,上午刚看了单色的广州塔,现在又找到了RGB的塔,简直太棒了
回复

使用道具 举报

35#
ID:639372 发表于 2020-3-19 20:59 | 只看该作者
作为广东人 看到这个很激动啊 加油楼主 51黑有你更精彩
回复

使用道具 举报

36#
ID:711872 发表于 2020-3-22 18:00 | 只看该作者

楼主有材料清单吗?分享一下
回复

使用道具 举报

37#
ID:476465 发表于 2020-3-23 14:57 | 只看该作者
楼主能提供材料清单吗?我也想DIY一个
回复

使用道具 举报

38#
ID:169064 发表于 2020-8-7 12:33 来自手机 | 只看该作者
这个真不错!很好很好
回复

使用道具 举报

39#
ID:851418 发表于 2021-1-18 05:45 | 只看该作者
非常漂亮的全彩广州塔,楼主厉害!
回复

使用道具 举报

40#
ID:1038548 发表于 2022-7-6 11:37 | 只看该作者
学习代码,学习电路图,楼主厉害!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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