找回密码
 立即注册

QQ登录

只需一步,快速开始

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

广州塔最新单片机程序与PCB文件等资料

  [复制链接]
跳转到指定楼层
楼主


    名称         数量        备注
micro usb接口     1
拨动开关          1   (侧脚 支架 SK12D07VG3 3MM柄高)
220uF电解电容     1
10uF电解电容      1
33PF瓦片电容      2
12M晶振           1
0805电阻22R      1   (塔顶限流)
10K欧4/1W        1
1K欧4/1W         16
120欧4/1W         4
40PID集成座       1
89C52RC单片机     1
M3铜柱螺母        4
底座七彩自闪      4
塔身LED          270

   只限潮壳电子新款电路

单片机源程序如下:
  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. void deng1234()//层灯移位
  23. {
  24.            for(i=0;i<8;i++)
  25.            {
  26.                     P1=table0[i];///从高到低
  27.                  P3=table0[i];
  28.                  delay(30);
  29.            }
  30. }
  31. ///////////////////////////////////////////////////
  32. void deng123()//  
  33. {
  34.                 for(i=0;i<8;i++)
  35.         {
  36.                 P2=table1[i];//从低到高
  37.                 P0=table1[i];
  38.                 delay(30);
  39.         }
  40. }
  41. /***********************************************
  42. ************************************************/
  43. void deng0()//所有灯亮一会儿
  44. {
  45.         P0=0x00;P1=0x00;P2=0x00;P3=0x00;
  46.         delay(300);
  47. }
  48. /////////////////////////////////
  49. void deng0_1()//所有灯灭一会儿
  50. {
  51.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  52.         delay(150);
  53. }
  54. //////////////////////////////////////
  55. void deng1()//两列灯顺时针旋转2遍,然后逐渐降低
  56. {         
  57.           uchar c;
  58.           P1=0x00;P3=0x00;
  59.          
  60.          for(c=3;c>0;c--)
  61.          {
  62.                  deng123();
  63.          }
  64.          ////////////////

  65.         P1=0x03;
  66.         deng123();
  67.         /////////////////               
  68.         P1=0x0f;
  69.         deng123();
  70.         ////////////////
  71.         P1=0x3f;
  72.         deng123();
  73.         ///////////////
  74.         P1=0xff;
  75.         deng123();
  76.         ////////////////////////
  77.         P3=0x03;
  78.         deng123();
  79.         //////////////
  80.         P3=0x0f;
  81.         deng123();
  82.         //////////////
  83.         P3=0x3f;
  84.         deng123();
  85.         /////////////
  86.         P3=0xff;
  87.         deng123();
  88.         P2=0xff;P0=0xff;
  89.                
  90. }

  91. ///////////////////////////////////////////////

  92.   void deng2()//四列灯顺时针旋转2遍
  93. {         
  94.           uchar a;
  95.          uchar b;
  96.          b=0x77;
  97.          P2=b;
  98.          P0=b;
  99.          P1=0x00;P3=0x00;
  100.         for(a=8;a>0;a--)
  101.          {
  102.                   for(i=0;i<8;i++)
  103.         {
  104.                 b=_cror_(b,1);//循环左移
  105.                 delay(25);
  106.                 P2=b;
  107.                 P0=b;
  108.         }
  109.          }               
  110.         
  111.         P2=0xff;P0=0xff;P1=0xff;P3=0xff;
  112.                
  113. }
  114. //////////////////////////////////////////////
  115. void deng38()//2列灯顺时针旋转2遍
  116. {         
  117.           uchar u;
  118.          uchar v;
  119.          v=0xf7;
  120.          P2=v;
  121.          P0=v;
  122.          P1=0x00;P3=0x00;
  123.         for(u=8;u>0;u--)
  124.          {
  125.                   for(i=0;i<8;i++)
  126.         {
  127.                 v=_cror_(v,1);//循环左移
  128.                 delay(25);
  129.                 P2=v;
  130.                 P0=v;
  131.         }
  132.          }               
  133.         
  134.         P2=0xff;P0=0xff;P1=0xff;P3=0xff;
  135.                
  136. }
  137. //////////////////////////////////////////////
  138. void deng3()//单层,向上升
  139. {
  140.          P0=0x00;
  141.         P2=0x00;
  142.                
  143.         for(i=0;i<8;i++)
  144.          {
  145.                   P3=table1[i];
  146.                  delay(25);
  147.          }
  148.         P3=0xff;
  149. /*----------------------*/         
  150.          for(i=0;i<8;i++)
  151.          {
  152.                   P1=table1[i];
  153.                  delay(25);
  154.          }
  155.         P1=0xff;
  156. }
  157. /////////////////////////////////////////
  158. void deng4()//单层,向下降
  159. {         
  160.          P2=0x00;P0=0x00;
  161.          for(i=0;i<8;i++)
  162.         {
  163.                 P1=table0[i];
  164.                 delay(25);
  165.         }
  166.         P1=0xff;
  167. /*----------------------*/
  168.         for(i=0;i<8;i++)
  169.         {
  170.                 P3=table0[i];
  171.                 delay(25);
  172.         }
  173.         P3=0xff;P1=0xff;P0=0xff;P2=0xff;        
  174. }
  175. /////////////////////////////////////////
  176. void deng5()//从上到下,逐层全部点亮】
  177. {
  178.          P0=0x00;P2=0x00;
  179.         for(i=0;i<8;i++)
  180.         {
  181.                 P1=table2[i];
  182.                 delay(25);
  183.         }
  184.         for(i=0;i<8;i++)
  185.         {
  186.                 P3=table2[i];
  187.                 delay(25);
  188.         }
  189.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  190. }
  191. ////////////////////////////////////////
  192. void deng6()//从上到下,逐层全部熄灭】
  193. {
  194.          P0=0x00;P2=0x00;
  195.         P1=0x00;P3=0x00;
  196.         for(i=0;i<8;i++)
  197.         {
  198.                 P1=table4[i];
  199.                 delay(25);
  200.         }
  201.         P1=0xff;
  202.         for(i=0;i<8;i++)
  203.         {
  204.                 P3=table4[i];
  205.                 delay(25);
  206.         }
  207.         P3=0xff;
  208.         P0=0xff;P2=0xff;
  209. }
  210. ///////////////////////////////////

  211. void deng7()//四组灯,交替两次
  212. {
  213.         for(i=2;i>0;i--)
  214.         {
  215.                 P1=0x00;P2=0x00;//上左
  216.                 delay(25);
  217.                 P1=0xff;P2=0xff;
  218.                 delay(25);
  219.         
  220.                
  221.         /////////////
  222.         P3=0x00;P0=0x00;//下右
  223.                 delay(25);
  224.                 P3=0xff;P0=0xff;
  225.                 delay(25);
  226.         /////////////
  227.         P3=0x00;P2=0x00;//下左
  228.                 delay(25);
  229.                 P3=0xff;P2=0xff;
  230.                 delay(25);
  231.         /////////////
  232.                 P1=0x00;P0=0x00;//上右
  233.                 delay(25);
  234.                 P1=0xff;P0=0xff;
  235.                 delay(25);
  236.           }
  237.                
  238. }
  239. void deng8()//上半先逐步列点亮,然后再向下点点亮
  240. {
  241.         P0=0xff;P2=0xff;P3=0xff;
  242.         P1=0x00;
  243.         for(i=0;i<8;i++)
  244.         {
  245.                 P0=table3[i];
  246.             P2=table3[i];
  247.                 delay(25);        
  248.         }
  249.          delay(70);
  250.         P1=0x00;P2=0x00;P0=0x00;
  251.         for(i=0;i<8;i++)
  252.         {
  253.                 P3=table2[i];
  254.                 delay(25);
  255.         }

  256.         
  257. }
  258. //////////////////////////////////////
  259. void deng9()//从中间向上、下点亮,再熄灭
  260. {
  261.         P0=0x00;P2=0x00;
  262.         for(i=0;i<8;i++)
  263.         {
  264.                 P1=table3[i];
  265.                 P3=table2[i];
  266.                 delay(150);
  267.         }
  268.         for(i=0;i<8;i++)
  269.         {
  270.                 P1=table4[i];
  271.                 P3=table5[i];
  272.                 delay(150);
  273.         }
  274. }
  275. ///////////////////////////////////////////
  276. void deng10()//从中间向上、下熄灭
  277. {
  278.         P0=0x00;P2=0x00;
  279.         for(i=0;i<8;i++)
  280.         {
  281.                 P1=table5[i];
  282.                 P3=table4[i];
  283.                 delay(25);
  284.         }
  285.         P1=0xff;P3=0xff;

  286. }
  287. void deng11()//逆时针逐列点亮所有灯
  288. {
  289.         P1=0x00;P3=0x00;
  290.         P0=0xff;P2=0xff;
  291.         for(i=0;i<8;i++)
  292.         {
  293.                 P0=table2[i];
  294.                 delay(25);
  295.         }
  296.         for(i=0;i<8;i++)
  297.         {
  298.                 P2=table2[i];
  299.                 delay(25);
  300.         }
  301.         P0=0xff;P2=0xff;P3=0xff;P1=0xff;
  302. }
  303. ///////////////////////////////////////////
  304. void deng12()//闪烁
  305. {
  306.         uchar i;
  307.          uchar b;
  308.          b=0xaa;
  309.          P2=b;
  310.          P0=b;
  311.          P1=b;
  312.          P3=b;
  313.         
  314.          for(i=0;i<8;i++)
  315.         {
  316.                 b=_cror_(b,1);//循环左移
  317.                 delay(100);
  318.                 P2=b;
  319.                 P0=b;
  320.                 P1=b;
  321.                 P3=b;
  322.         
  323.         }
  324.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  325. }
  326. void deng13()//两层灯,分别从中间向上、下移动
  327. {
  328.         P2=0x00;P0=0x00;
  329.         for(i=0;i<8;i++)
  330.         {
  331.                 P1=table1[i];
  332.                 P3=table0[i];
  333.                 delay(50);
  334.         }
  335.         P2=0xff;P0=0xff;P1=0xff;P3=0xff;
  336. }

  337. //////////////////////////////////////////////////
  338. void deng16()  //隔一层亮
  339. {
  340.         P0=0x00;
  341.         P2=0x00;
  342.         P3=0x55;
  343.         P1=0x55;
  344.         delay(500);
  345. }
  346. ////////////////////////////////////////////////////

  347. /////////////////////////////////////////////////////
  348. /////////////////////////////////////////////////////
  349. void deng17()  //1列灯 滴水
  350. {
  351.         uchar d;
  352.     P2=0x7f;P0=0xff;
  353.         for(d=1;d>0;d--)
  354.         {
  355.            deng1234();
  356.         }        
  357. }
  358. ///////////////////////////////////////////////
  359. void deng18()  //1列滴水
  360. {
  361.         uchar f;
  362.         P2=0xfe;P0=0xff;
  363.         for(f=1;f>0;f--)
  364.         {
  365.            deng1234();
  366.         }
  367. }
  368. //////////////////////////////////////////////
  369. void deng19()        //1列滴水
  370. {
  371.         uchar e;
  372.         P2=0xef;P0=0xff;
  373.         for(e=1;e>0;e--)
  374.         {
  375.            deng1234();
  376.         }
  377. }
  378. //////////////////////////////////////////////////
  379. void deng20()          //一列滴水
  380. {
  381.         uchar j;
  382.         P2=0xfd;P0=0xff;
  383.         for(j=1;j>0;j--)
  384.         {
  385.            deng1234();
  386.         }
  387. }
  388. ///////////////////////////////////////////////
  389. void deng01()                        //旋转往下
  390. {
  391.         for(i=0;i<8;i++)
  392.    {
  393.              P1=table0[i];
  394.           P3=table0[i];
  395.           P0=table1[i];
  396.           P2=table1[i];               
  397.           delay(50);
  398.    }
  399. }
  400. ////////////////////////////////////////////////////
  401. void deng21()         //列灯亮
  402. {
  403.    uchar k;
  404.     P1=0x00;P3=0x00;
  405.         for(k=4;k>0;k--)
  406.         {
  407.            P0=0x7f;
  408.            delay(55);
  409.            P2=0x7f;
  410.            delay(55);
  411.            P0=0xef;
  412.            delay(55);
  413.            P2=0xef;
  414.            delay(55);
  415.            P0=0xfd;
  416.            delay(55);
  417.            P2=0xfd;
  418.            delay(55);
  419.            P0=0xdf;
  420.            delay(55);
  421.            P2=0xbf;
  422.            delay(55);           
  423.         }
  424. }
  425. /////////////////////////////////////////////////////
  426. void deng22()                        //P0一列左移
  427. {
  428.    uchar h;
  429.    uchar l;
  430.      l=0x7f;
  431.          P0=l;
  432.          P1=0x00;P3=0x00;
  433.          for(h=8;h>0;h--)
  434.          {                        
  435.                   l=_crol_(l,1);
  436.                   delay(13);
  437.                   P0=l;
  438.          }
  439. }
  440. /////////////////////////////////////////////////
  441. void deng23()                        //P2一列左移
  442. {
  443.    uchar p;
  444.    uchar q;
  445.      q=0x7f;
  446.          P2=q;

  447.          P1=0x00;P3=0x00;
  448.          for(p=8;p>0;p--)
  449.          {               
  450.                   q=_crol_(q,1);
  451.                   delay(13);
  452.                   P2=q;
  453.          }
  454. }
  455. ///////////////////////////////////////////////////////
  456. void deng24()                        //隔一层闪
  457. {
  458.     P0=0x00;
  459.         P2=0x00;
  460.         P3=0x55;
  461.         P1=0x55;
  462.         delay(100);
  463.         P0=0x00;
  464.         P2=0x00;
  465.         P3=0xaa;
  466.         P1=0xaa;
  467.         delay(100);
  468. }
  469. ////////////////////////////////////////////////////////
  470. void deng14_1()//点满一圈的小函数(限内部用)
  471. {        
  472.         P2=0xff;P0=0xff;

  473.         for(i=0;i<8;i++)
  474.         {
  475.                 P2=table2[i];
  476.                 delay(15);
  477.         }
  478.          
  479.         for(i=0;i<8;i++)
  480.         {
  481.                 P0=table2[i];
  482.                 delay(15);
  483.         }
  484.          P2=0xff;P0=0xff;
  485. }
  486. /////////////////////////////////////////////////////////
  487. void deng25()//从下开始,点满一圈后,灭,再上升点亮第二圈
  488. {
  489.         P1=0xff;

  490.         P3=0x7f;//1层
  491.         deng14_1();//点满一圈的小函数(限内部用)
  492.         P3=0xbf;//2层
  493.         deng14_1();//点满一圈的小函数(限内部用)
  494.         P3=0xdf;//3层
  495.         deng14_1();//点满一圈的小函数(限内部用)
  496.         P3=0xef;//4层
  497.         deng14_1();//点满一圈的小函数(限内部用)
  498.         P3=0xf7;//5层
  499.         deng14_1();//点满一圈的小函数(限内部用)
  500.         P3=0xfb;//6层
  501.         deng14_1();//点满一圈的小函数(限内部用)
  502.         P3=0xfd;//7层
  503.         deng14_1();//点满一圈的小函数(限内部用)
  504.         P3=0xfe;//8层
  505.         deng14_1();//点满一圈的小函数(限内部用)
  506.         //////////////////
  507.         P3=0xff;

  508.         P1=0x7f;//1层
  509.         deng14_1();//点满一圈的小函数(限内部用)
  510.         P1=0xbf;//2层
  511.         deng14_1();//点满一圈的小函数(限内部用)
  512.         P1=0xdf;//3层
  513.         deng14_1();//点满一圈的小函数(限内部用)
  514.         P1=0xef;//4层
  515.         deng14_1();//点满一圈的小函数(限内部用)
  516.         P1=0xf7;//5层
  517.         deng14_1();//点满一圈的小函数(限内部用)
  518.         P1=0xfb;//6层
  519.         deng14_1();//点满一圈的小函数(限内部用)
  520.         P1=0xfd;//7层
  521.         deng14_1();//点满一圈的小函数(限内部用)
  522.         P1=0xfe;//8层
  523.         deng14_1();//点满一圈的小函数(限内部用)

  524.         P1=0xff;
  525. }
  526. ////////////////////////////////////////////////////////


  527. /*====================================================
  528. ===================主函数君===========================
  529. ======================================================*/        
  530. void main()
  531. {
  532.         while(1)
  533.         {  
  534.         deng0();   //所有灯亮
  535.         deng0();   //同上
  536.         deng16();  //隔一层亮
  537.         deng22();//隔一层闪        
  538.         deng23();//隔一层闪        
  539.         deng25();
  540.         deng4();//单层,向下降
  541.         deng3();
  542.         deng4();
  543.         deng4();

  544.         deng17();        //1列滴水
  545.         deng18();
  546.         deng19();
  547.         deng20();

  548.         
  549.         deng4();
  550.         deng3();
  551.         deng3();
  552.         deng3();
  553.         deng01();//旋转下
  554.         deng4();
  555.         deng3();
  556.         deng01();//旋转下
  557.         deng01();//旋转下
  558.         deng01();//旋转下
  559.         deng22();
  560.         deng23();//隔一层闪        
  561.         deng5();//从上到下,逐层全部点亮
  562.         deng6();//从上到下,逐层全部熄灭】
  563.         deng5();
  564.         deng6();
  565.         deng5();
  566.         deng6();
  567. ……………………

  568. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
广州塔全套资料含PCB程序.rar (5.41 MB, 下载次数: 134)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:266108 发表于 2018-1-11 23:46 来自手机 | 只看该作者
请问是单层的吗
回复

使用道具 举报

板凳
ID:389610 发表于 2018-8-24 12:39 来自手机 | 只看该作者
672076167@qq.co 发表于 2018-1-11 23:46
请问是单层的吗

不是单层,16层
回复

使用道具 举报

地板
ID:638431 发表于 2019-11-9 03:16 | 只看该作者
可以可以不错不错
回复

使用道具 举报

5#
ID:613618 发表于 2019-11-9 22:10 来自手机 | 只看该作者
为什么不介绍如何焊接呢
回复

使用道具 举报

6#
ID:919762 发表于 2021-11-22 10:40 来自手机 | 只看该作者
还是你详细,耗材多少都告诉我了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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