找回密码
 立即注册

QQ登录

只需一步,快速开始

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

led广州塔制作 原理图 程序等

  [复制链接]
跳转到指定楼层
楼主
想DIY  led广州塔的来吧
所有资料打包下载:
LED广州塔.zip (186.1 KB, 下载次数: 545)

256+9个3mm蓝雾led1个自闪led。 32个8550三极管。 32个1K贴片电阻。 细导线若干。 9*15洞洞板。 stc8c52一块。 单片机座1个。 12M晶振1个 30pf瓷片电容2个 10uf电解电容1个 10K电阻1个 按键一个 自锁开关一个。 电源输入自已选,   16*16   还有一个22R电阻与顶部串联

30,27,25,22.75,21,19.6,18.5,17.75,17.25,16.75,17,17,16.68,18.5,19.7,21.1

三极管带字一面为正面!
+5V接左脚,,右脚接列(阳)
-5V接右脚,,左脚接横(阴)
  1. #include<reg52.h>
  2. #include<intrins.h>//循环函数的头文件
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//从低位往高位移一个灯
  6. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//从高位往低位移一个灯
  7. uchar code table2[]={0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00};//从低位到高位逐步全部点亮
  8. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//从高位到低位逐步全部点亮
  9. uchar code table4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//从低位到高位逐步全部熄灭
  10. uchar code table5[]={0x80,0xa0,0xe0,0xf0,0xf8,0xfa,0xfe,0xff};//从高位到低位逐步全部熄灭
  11. uchar code table6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//从低位到高位,灭一个灯移动
  12. uchar code table7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//从高位到低位,灭一个灯移动

  13. uchar i;

  14. void delay(uint z) //延时函数
  15. {
  16.         uint x,y;
  17.         for(x=z;x>0;x--)
  18.                 for(y=314;y>0;y--);
  19. }
  20. ///////////////////////////////////////////////////
  21. ///////////////////////////////////////////////////
  22. ///////////////////////////////////////////////////
  23. void deng123()//
  24. {
  25.                 for(i=0;i<8;i++)
  26.         {
  27.                 P2=table1[i];
  28.                 P0=table1[i];
  29.                 delay(25);
  30.         }
  31. }
  32. /***********************************************
  33. ************************************************/
  34. void deng0()//所有灯亮一会儿
  35. {
  36.         P0=0x00;P1=0x00;P2=0x00;P3=0x00;
  37.         delay(150);
  38. }
  39. /////////////////////////////////
  40. void deng0_1()//所有灯灭一会儿
  41. {
  42.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  43.         delay(150);
  44. }
  45. //////////////////////////////////////
  46. void deng1()//两列灯顺时针旋转2遍,然后逐渐降低
  47. {         
  48.          uchar c;
  49.          P1=0x00;P3=0x00;
  50.          
  51.          for(c=2;c>0;c--)
  52.          {
  53.                  deng123();
  54.          }
  55.          ////////////////

  56.         P1=0x03;
  57.         deng123();
  58.         /////////////////               
  59.         P1=0x0f;
  60.         deng123();
  61.         ////////////////
  62.         P1=0x3f;
  63.         deng123();
  64.         ///////////////
  65.         P1=0xff;
  66.         deng123();
  67.         ////////////////////////
  68.         P3=0x03;
  69.         deng123();
  70.         //////////////
  71.         P3=0x0f;
  72.         deng123();
  73.         //////////////
  74.         P3=0x3f;
  75.         deng123();
  76.         /////////////
  77.         P3=0xff;
  78.         deng123();
  79.         P2=0xff;P0=0xff;
  80.                
  81. }

  82. ///////////////////////////////////////////////

  83.   void deng2()//四列灯顺时针旋转2遍
  84. {         
  85.          uchar a;
  86.          uchar b;
  87.          b=0x77;
  88.          P2=b;
  89.          P0=b;
  90.          P1=0x00;P3=0x00;
  91.         for(a=4;a>0;a--)
  92.          {
  93.                   for(i=0;i<8;i++)
  94.         {
  95.                 b=_cror_(b,1);//循环左移
  96.                 delay(25);
  97.                 P2=b;
  98.                 P0=b;
  99.         }
  100.          }               
  101.        
  102.         P2=0xff;P0=0xff;P1=0xff;P3=0xff;
  103.                
  104. }
  105. //////////////////////////////////////////////
  106. void deng3()//单层,向上升
  107. {
  108.         P0=0x00;
  109.         P2=0x00;
  110.                
  111.         for(i=0;i<8;i++)
  112.          {
  113.                   P3=table1[i];
  114.                  delay(25);
  115.          }
  116.         P3=0xff;
  117. /*----------------------*/         
  118.          for(i=0;i<8;i++)
  119.          {
  120.                   P1=table1[i];
  121.                  delay(25);
  122.          }
  123.         P1=0xff;
  124. }
  125. /////////////////////////////////////////
  126. void deng4()//单层,向下降
  127. {         
  128.         P2=0x00;P0=0x00;
  129.         for(i=0;i<8;i++)
  130.         {
  131.                 P1=table0[i];
  132.                 delay(25);
  133.         }
  134.         P1=0xff;
  135. /*----------------------*/
  136.         for(i=0;i<8;i++)
  137.         {
  138.                 P3=table0[i];
  139.                 delay(25);
  140.         }
  141.         P3=0xff;P1=0xff;P0=0xff;P2=0xff;       
  142. }
  143. /////////////////////////////////////////
  144. void deng5()//从上到下,逐层全部点亮】
  145. {
  146.         P0=0x00;P2=0x00;
  147.         for(i=0;i<8;i++)
  148.         {
  149.                 P1=table2[i];
  150.                 delay(25);
  151.         }
  152.         for(i=0;i<8;i++)
  153.         {
  154.                 P3=table2[i];
  155.                 delay(25);
  156.         }
  157.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  158. }
  159. ////////////////////////////////////////
  160. void deng6()//从上到下,逐层全部熄灭】
  161. {
  162.         P0=0x00;P2=0x00;
  163.         P1=0x00;P3=0x00;
  164.         for(i=0;i<8;i++)
  165.         {
  166.                 P1=table4[i];
  167.                 delay(25);
  168.         }
  169.         P1=0xff;
  170.         for(i=0;i<8;i++)
  171.         {
  172.                 P3=table4[i];
  173.                 delay(25);
  174.         }
  175.         P3=0xff;
  176.         P0=0xff;P2=0xff;
  177. }
  178. ///////////////////////////////////

  179. void deng7()//四组灯,交替两次
  180. {
  181.         for(i=2;i>0;i--)
  182.         {
  183.                 P1=0x00;P2=0x00;//上左
  184.                 delay(40);
  185.                 P1=0xff;P2=0xff;
  186.                 delay(40);
  187.        
  188.                
  189.         /////////////
  190.         P3=0x00;P0=0x00;//下右
  191.                 delay(40);
  192.                 P3=0xff;P0=0xff;
  193.                 delay(40);
  194.         /////////////
  195.         P3=0x00;P2=0x00;//下左
  196.                 delay(40);
  197.                 P3=0xff;P2=0xff;
  198.                 delay(40);
  199.         /////////////
  200.                 P1=0x00;P0=0x00;//上右
  201.                 delay(40);
  202.                 P1=0xff;P0=0xff;
  203.                 delay(40);
  204.           }
  205.                
  206. }
  207. void deng8()//上半先逐步列点亮,然后再向下点点亮
  208. {
  209.         P0=0xff;P2=0xff;P3=0xff;
  210.         P1=0x00;
  211.         for(i=0;i<8;i++)
  212.         {
  213.                 P0=table3[i];
  214.             P2=table3[i];
  215.                 delay(25);       
  216.         }
  217.          delay(70);
  218.         P1=0x00;P2=0x00;P0=0x00;
  219.         for(i=0;i<8;i++)
  220.         {
  221.                 P3=table2[i];
  222.                 delay(25);
  223.         }

  224.        
  225. }
  226. //////////////////////////////////////
  227. void deng9()//从中间向上、下点亮,再熄灭
  228. {
  229.         P0=0x00;P2=0x00;
  230.         for(i=0;i<8;i++)
  231.         {
  232.                 P1=table3[i];
  233.                 P3=table2[i];
  234.                 delay(25);
  235.         }
  236.         for(i=0;i<8;i++)
  237.         {
  238.                 P1=table4[i];
  239.                 P3=table5[i];
  240.                 delay(25);
  241.         }
  242. }
  243. ///////////////////////////////////////////
  244. void deng10()//从中间向上、下熄灭
  245. {
  246.         P0=0x00;P2=0x00;
  247.         for(i=0;i<8;i++)
  248.         {
  249.                 P1=table5[i];
  250.                 P3=table4[i];
  251.                 delay(25);
  252.         }
  253.         P1=0xff;P3=0xff;

  254. }
  255. void deng11()//逆时针逐列点亮所有灯
  256. {
  257.         P1=0x00;P3=0x00;
  258.         P0=0xff;P2=0xff;
  259.         for(i=0;i<8;i++)
  260.         {
  261.                 P0=table2[i];
  262.                 delay(25);
  263.         }
  264.         for(i=0;i<8;i++)
  265.         {
  266.                 P2=table2[i];
  267.                 delay(25);
  268.         }
  269.         P0=0xff;P2=0xff;P3=0xff;P1=0xff;
  270. }
  271. ///////////////////////////////////////////
  272. void deng12()//闪烁
  273. {
  274.         uchar i;
  275.          uchar b;
  276.          b=0xaa;
  277.          P2=b;
  278.          P0=b;
  279.          P1=b;
  280.          P3=b;
  281.        
  282.          for(i=0;i<8;i++)
  283.         {
  284.                 b=_cror_(b,1);//循环左移
  285.                 delay(50);
  286.                 P2=b;
  287.                 P0=b;
  288.                 P1=b;
  289.                 P3=b;
  290.        
  291.         }
  292.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  293. }
  294. void deng13()//两层灯,分别从中间向上、下移动
  295. {
  296.         P2=0x00;P0=0x00;
  297.         for(i=0;i<8;i++)
  298.         {
  299.                 P1=table1[i];
  300.                 P3=table0[i];
  301.                 delay(25);
  302.         }
  303.         P2=0xff;P0=0xff;P1=0xff;P3=0xff;
  304. }
  305. void deng14_1()//点满一圈的小函数(限内部用)
  306. {       
  307.         P2=0xff;P0=0xff;

  308.         for(i=0;i<8;i++)
  309.         {
  310.                 P2=table2[i];
  311.                 delay(15);
  312.         }
  313.           
  314.         for(i=0;i<8;i++)
  315.         {
  316.                 P0=table2[i];
  317.                 delay(15);
  318.         }
  319.          P2=0xff;P0=0xff;
  320. }
  321. ///////////////////////////
  322. void deng14()//从下开始,点满一圈后,灭,再上升点亮第二圈
  323. {
  324.         P1=0xff;

  325.         P3=0x7f;//1层
  326.         deng14_1();//点满一圈的小函数(限内部用)
  327.         P3=0xbf;//2层
  328.         deng14_1();//点满一圈的小函数(限内部用)
  329.         P3=0xdf;//3层
  330.         deng14_1();//点满一圈的小函数(限内部用)
  331.         P3=0xef;//4层
  332.         deng14_1();//点满一圈的小函数(限内部用)
  333.         P3=0xf7;//5层
  334.         deng14_1();//点满一圈的小函数(限内部用)
  335.         P3=0xfb;//6层
  336.         deng14_1();//点满一圈的小函数(限内部用)
  337.         P3=0xfd;//7层
  338.         deng14_1();//点满一圈的小函数(限内部用)
  339.         P3=0xfe;//8层
  340.         deng14_1();//点满一圈的小函数(限内部用)
  341.         //////////////////
  342.         P3=0xff;

  343.         P1=0x7f;//1层
  344.         deng14_1();//点满一圈的小函数(限内部用)
  345.         P1=0xbf;//2层
  346.         deng14_1();//点满一圈的小函数(限内部用)
  347.         P1=0xdf;//3层
  348.         deng14_1();//点满一圈的小函数(限内部用)
  349.         P1=0xef;//4层
  350.         deng14_1();//点满一圈的小函数(限内部用)
  351.         P1=0xf7;//5层
  352.         deng14_1();//点满一圈的小函数(限内部用)
  353.         P1=0xfb;//6层
  354.         deng14_1();//点满一圈的小函数(限内部用)
  355.         P1=0xfd;//7层
  356.         deng14_1();//点满一圈的小函数(限内部用)
  357.         P1=0xfe;//8层
  358.         deng14_1();//点满一圈的小函数(限内部用)

  359.         P1=0xff;
  360. }

  361. /*====================================================
  362. ===================主函数君===========================
  363. ======================================================*/       
  364. void main()
  365. {
  366.         while(1)
  367.         {  
  368.             
  369.         deng0_1();//所有灯灭一会儿
  370.         deng0_1();//所有灯灭一会儿       
  371.         deng14();//从下开始,点满一圈后,灭,再上升点亮第二圈       
  372.         deng4();//单层,向下降
  373.        
  374.         deng5();//从上到下,逐层全部点亮
  375.         deng6();//从上到下,逐层全部熄灭】
  376.         deng8();//上半先逐步点亮,然后再向下点亮
  377.         deng0();//所有灯亮一会

  378.         deng6();//从上到下,逐层全部熄灭】
  379.         deng9();//从中间向上、下点亮,再熄灭
  380.         deng9();//从中间向上、下点亮,再熄灭
  381.         deng0_1();//所有灯灭一会儿
  382.         deng11();//逆时针逐列点亮所有灯
  383.         deng10();//从中间向上、下熄灭
  384.         deng0_1();//所有灯灭一会儿
  385.         deng13();//两层灯,分别从中间向上、下移动
  386.         deng3();//单层,向上升
  387.         deng5();//从上到下,逐层全部点亮
  388.         deng12();//闪烁
  389.         deng12();//闪烁
  390.         deng2();//四列灯顺时针旋转2遍
  391.         deng1();//两列灯顺时针旋转2遍,然后逐渐降低
  392.         deng0_1();//所有灯灭一会儿       
  393.         }
  394. }
复制代码


评分

参与人数 1黑币 +10 收起 理由
tieq1952 + 10 很给力!

查看全部评分

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

使用道具 举报

沙发
ID:149544 发表于 2016-11-22 19:40 | 只看该作者
厉害啦。。
回复

使用道具 举报

板凳
ID:155412 发表于 2016-12-19 15:55 来自手机 | 只看该作者
支持一下
回复

使用道具 举报

地板
ID:160372 发表于 2017-1-6 10:53 来自手机 | 只看该作者
没有黑币
回复

使用道具 举报

5#
ID:100223 发表于 2017-1-17 11:59 | 只看该作者
谢谢楼主无私分享
回复

使用道具 举报

6#
ID:162287 发表于 2017-1-18 13:22 | 只看该作者
学渣来学习学习啦
回复

使用道具 举报

7#
ID:162287 发表于 2017-1-18 13:28 | 只看该作者
好想学习学习,但是没有嘿币~爱~~~

评分

参与人数 1黑币 +5 收起 理由
菜用鸡 + 5 淡定

查看全部评分

回复

使用道具 举报

8#
ID:139949 发表于 2017-2-26 12:24 | 只看该作者
谢谢楼主 学习了
回复

使用道具 举报

9#
ID:180730 发表于 2017-3-22 19:28 | 只看该作者
楼主真是牛的不行,新手膜拜..
回复

使用道具 举报

10#
ID:180525 发表于 2017-3-22 19:38 | 只看该作者
太牛叉了,现在没时间搞了!要是有时间也做一个玩玩!
回复

使用道具 举报

11#
ID:170148 发表于 2017-3-22 20:01 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
ID:161831 发表于 2017-3-27 08:04 | 只看该作者
不错的,晒下最终成果吧!
回复

使用道具 举报

13#
ID:164371 发表于 2017-3-31 15:23 | 只看该作者
厉害哈哈哈哈哈哈
回复

使用道具 举报

14#
ID:186080 发表于 2017-4-5 19:47 | 只看该作者
感谢你的帮忙,谢谢
回复

使用道具 举报

15#
ID:186080 发表于 2017-4-5 20:11 | 只看该作者
有没有电路图求分享,谢谢
回复

使用道具 举报

16#
ID:194585 发表于 2017-4-28 16:39 | 只看该作者
请问一下单片机的电路图不是完整的吧,是不是还少了驱动
回复

使用道具 举报

17#
ID:194585 发表于 2017-4-30 12:25 | 只看该作者
有一点小问题可以帮助我一下吗
回复

使用道具 举报

18#
ID:195076 发表于 2017-4-30 18:20 | 只看该作者
我去过广州塔,是三色灯,你的是单色的吧?改三色灯才能做出效果,当然驱动复杂些,程序驱动差不多。若要做出效果要花点时间慢慢研究。
赞下楼主!!
回复

使用道具 举报

19#
ID:157057 发表于 2017-4-30 22:28 | 只看该作者
这个可是好动东。不知道里边有什么资料。。
回复

使用道具 举报

20#
ID:185751 发表于 2017-5-31 11:27 | 只看该作者
太牛叉了,现在没时间搞了!要是有时间也做一个玩玩!
回复

使用道具 举报

21#
ID:55655 发表于 2017-6-23 09:51 | 只看该作者
lalala是不是音乐控制的
回复

使用道具 举报

22#
ID:220216 发表于 2017-7-26 11:06 | 只看该作者
我下载了两次都是服务器错误,黑币都没了,资料也没
回复

使用道具 举报

23#
ID:216962 发表于 2017-7-26 11:21 | 只看该作者
好资料,顶、
回复

使用道具 举报

24#
ID:238866 发表于 2017-10-12 14:27 | 只看该作者
厉害 led广州塔制作 原理图 程序等 [
回复

使用道具 举报

25#
ID:239461 发表于 2017-10-16 14:52 | 只看该作者
好东西,对于新手来说很好
回复

使用道具 举报

26#
ID:259661 发表于 2017-12-10 09:05 | 只看该作者
没有黑币
回复

使用道具 举报

27#
ID:253767 发表于 2017-12-11 07:59 | 只看该作者
这么好的东西怎么没人加分?我加,我下载、学习!
回复

使用道具 举报

28#
ID:269459 发表于 2017-12-31 16:22 来自手机 | 只看该作者
好玩。好学不
回复

使用道具 举报

29#
ID:269459 发表于 2018-1-1 13:52 来自手机 | 只看该作者
下载到手机能看到吗,用什么软件打开资料啊
回复

使用道具 举报

30#
ID:241550 发表于 2018-1-6 16:36 | 只看该作者
很不错!先试试看
回复

使用道具 举报

31#
ID:241550 发表于 2018-1-6 16:38 | 只看该作者
楼主真是牛,新手膜拜..早就想弄一个广州塔了,今天试试看
回复

使用道具 举报

32#
ID:40867 发表于 2018-1-30 09:36 | 只看该作者
楼主真是牛,新手膜拜..早就想弄一个广州塔了,今天试试看
回复

使用道具 举报

33#
ID:269459 发表于 2018-2-10 19:35 | 只看该作者
能更详细的说说制做吗
回复

使用道具 举报

34#
ID:290022 发表于 2018-3-10 14:49 | 只看该作者
谢谢楼主
回复

使用道具 举报

35#
ID:299588 发表于 2018-4-1 22:17 来自手机 | 只看该作者
这个楼主牛
回复

使用道具 举报

36#
ID:300314 发表于 2018-4-4 17:59 来自手机 | 只看该作者
支持一下
回复

使用道具 举报

37#
ID:299588 发表于 2018-4-9 10:14 来自手机 | 只看该作者
楼主好榜样,向你学习
回复

使用道具 举报

38#
ID:48413 发表于 2018-4-9 11:15 | 只看该作者
谢谢楼主共享
回复

使用道具 举报

39#
ID:319628 发表于 2018-4-30 23:01 | 只看该作者
好厉害
回复

使用道具 举报

40#
ID:171273 发表于 2018-5-19 10:55 | 只看该作者
不错,非常详细,谢谢了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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