找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2550|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

有哪位大神有廣州塔的編程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:161715 發(fā)表于 2017-1-14 10:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
幫下忙
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:155507 發(fā)表于 2017-1-14 17:29 | 只看該作者
廣州 塔diy程序,效果詳見(jiàn):http://www.torrancerestoration.com/bbs/dpj-54601-1.html
http://www.torrancerestoration.com/bbs/dpj-59352-1.html

  1. /********************************************************/
  2. /****** 名稱(chēng):廣州塔          ***************************/
  3. /****** 編寫(xiě):憂(yōu)傷的季節(jié)      ***************************/
  4. /****** 時(shí)間:2014年12月01日  ***************************/
  5. /********************************************************/
  6. #include<reg52.h>
  7. #include<STC12C5A60S2.H>
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. uchar i,k,a;
  11. uint cy,cy1,pw;
  12. uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};// 一個(gè)燈順時(shí)針流水
  13. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};// 一個(gè)燈順時(shí)針流水
  14. uchar code table2[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
  15. uchar code table3[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
  16. uchar code table4[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  17. uchar code table5[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f};
  18. uchar code table6[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
  19. uchar code table7[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
  20. uchar code table8[]={0x55,0xaa};
  21. uchar code table9[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
  22. uchar code table10[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
  23. void delay1(uint z)
  24. {
  25.         uint x,y;
  26.         for(x=250;x>0;x--)
  27.         for(y=z;y>0;y--);
  28. }
  29. void delay2(uint x)
  30. {
  31.         uint a,b;
  32.         for(a=x;a>0;a--)
  33.         for(b=5;b>0;b--);
  34. }
  35. /******************兩層向上*********************/
  36. void yiceng()
  37. {
  38.         for(k=0;k<8;k++){P3=table[k];P2=table[k];delay1(200);}
  39. }
  40. /******************兩層向下*********************/
  41. void yiceng1()
  42. {
  43.         for(k=0;k<8;k++){P3=table1[k];P2=table1[k];delay1(200);}
  44. }
  45. /******************兩條單個(gè)順時(shí)針滴水*********************/
  46. void dishushun()
  47. {
  48.         for(i=0;i<8;i++)
  49.         {
  50.                 P1=table4[i];
  51.                 P0=table2[i];
  52.                 for(k=0;k<8;k++){P2=table1[k];delay1(5);}P2=0xff;
  53.                 for(k=0;k<8;k++){P3=table1[k];delay1(5);}P3=0xff;
  54.         }
  55. }
  56. /******************兩條單個(gè)逆時(shí)針滴水*********************/
  57. void dishuni()
  58. {
  59.         for(i=0;i<8;i++)
  60.         {
  61.                 P1=table2[i];
  62.                 P0=table4[i];
  63.                 for(k=0;k<8;k++){P2=table1[k];delay1(5);}P2=0xff;
  64.                 for(k=0;k<8;k++){P3=table1[k];delay1(5);}P3=0xff;
  65.         }
  66. }
  67. /******************滴水下*********************/
  68. void liangdix()
  69. {
  70.         for(i=0;i<8;i++)
  71.         {
  72.                 P1=table2[i];
  73.                 P0=table4[i];
  74.                 for(k=0;k<8;k++){P2=table1[k];delay1(50);}P2=0xff;
  75.                 for(k=0;k<8;k++){P3=table1[k];delay1(50);}P3=0xff;
  76.         }
  77. }
  78. /******************滴水上*********************/
  79. void liangdis()
  80. {
  81.         for(i=0;i<8;i++)
  82.         {
  83.                 P1=table4[i];
  84.                 P0=table2[i];
  85.                 for(k=0;k<8;k++){P2=table[k];delay1(50);}P2=0xff;
  86.                 for(k=0;k<8;k++){P3=table[k];delay1(50);}P3=0xff;
  87.         }
  88. }
  89. /******************兩層從中間向上下拉伸*********************/
  90. void sxl()
  91. {
  92.         P1=0xff;
  93.         P0=0xff;
  94.         for(k=0;k<8;k++){P3=table4[k];P2=table4[k];delay1(200);}
  95. }
  96. /******************兩層從頂向下拉伸*********************/
  97. void sxl1()
  98. {
  99.         P1=0xff;
  100.         P0=0xff;
  101.         for(k=0;k<8;k++){P3=table6[k];P2=table6[k];delay1(400);}
  102. }
  103. /******************兩層從中間向上下拉伸*********************/
  104. void sxls()
  105. {
  106.         P1=0xff;
  107.         P0=0xff;
  108.         for(k=0;k<8;k++){P3=table6[k];P2=table7[k];delay1(200);}
  109. }
  110. /******************單層從底向上旋轉(zhuǎn)*********************/
  111. void danxuan()
  112. {  P2=0xff;P3=0xff;
  113.         for(i=0;i<8;i++)
  114.         {
  115.                 P1=0x00;P0=0x00;
  116.                 P3=table[i];
  117.                 for(k=0;k<8;k++){P0=table5[k];delay1(200);}
  118.                 for(k=0;k<8;k++){P1=table3[k];delay1(200);}
  119.         }P3=0xff;
  120.         for(i=0;i<8;i++)
  121.         {
  122.                 P1=0x00;P0=0x00;
  123.                 P2=table[i];
  124.                 for(k=0;k<8;k++){P0=table5[k];delay1(200);}
  125.                 for(k=0;k<8;k++){P1=table3[k];delay1(200);}
  126.         }P2=0xff;
  127. }
  128. /******************單層從頂向上旋轉(zhuǎn)*********************/
  129. void danxuand()
  130. {  P2=0xff;P3=0xff;
  131.         for(i=0;i<8;i++)
  132.         {
  133.                 P1=0x00;P0=0x00;
  134.                 P2=table1[i];
  135.                 for(k=0;k<8;k++){P0=table5[k];delay1(200);}
  136.                 for(k=0;k<8;k++){P1=table3[k];delay1(200);}
  137.         }P2=0xff;
  138.         for(i=0;i<8;i++)
  139.         {
  140.                 P1=0x00;P0=0x00;
  141.                 P3=table1[i];
  142.                 for(k=0;k<8;k++){P0=table5[k];delay1(200);}
  143.                 for(k=0;k<8;k++){P1=table3[k];delay1(200);}
  144.         }P3=0xff;
  145. }
  146. /******************兩層豎立向圓順時(shí)針合圍*********************/
  147. void shw()
  148. {
  149.         P2=0x00;P3=0x00;
  150.         for(k=0;k<8;k++){P0=table5[k];P1=table3[k];delay1(700);}
  151. }
  152. /******************兩層豎立向圓順時(shí)針回收*********************/
  153. void shw1()
  154. {
  155.         P2=0x00;P3=0x00;
  156.         for(k=0;k<8;k++){P0=table6[k];P1=table7[k];delay1(700);}
  157. }
  158. /******************兩層豎立向圓逆時(shí)針回收*********************/
  159. void shw3()
  160. {
  161.         P2=0x00;P3=0x00;
  162.         for(k=0;k<8;k++){P0=table7[k];P1=table6[k];delay1(700);}
  163. }
  164. /******************兩層豎立向圓逆時(shí)針合圍*********************/
  165. void shw2()
  166. {
  167.         P2=0x00;P3=0x00;
  168.         for(k=0;k<8;k++){P0=table9[k];P1=table10[k];delay1(700);}
  169. }
  170. /******************四條單個(gè)順時(shí)針滴水閃*********************/
  171. void sidisun()
  172. {
  173.         for(i=0;i<2;i++)
  174.         {
  175.                 P1=table8[i];
  176.                 P0=table8[i];
  177.                 for(k=0;k<8;k++){P2=table1[k];delay1(50);}P2=0xff;
  178.                 for(k=0;k<8;k++){P3=table1[k];delay1(50);}P3=0xff;delay1(700);
  179.         }
  180. }
  181. /******************四條單個(gè)順時(shí)針滴水閃*********************/
  182. void sidisun1()
  183. {
  184.         for(i=0;i<2;i++)
  185.         {
  186.                 P1=table8[i];
  187.                 P0=table8[i];
  188.                 for(k=0;k<8;k++){P2=table1[k];delay1(50);}P2=0xff;
  189.                 for(k=0;k<8;k++){P3=table1[k];delay1(50);}P3=0xff;
  190.         }
  191. }
  192. /******************四條單個(gè)順時(shí)針滴水轉(zhuǎn)*********************/
  193. void sisunz()
  194. { P2=0x00;
  195.         P3=0x00;
  196.         for(i=0;i<2;i++)
  197.         {
  198.                 P1=table8[i];
  199.                 P0=table8[i];
  200.                 delay1(1000);
  201.         }
  202. }
  203. /******************呼吸燈*********************/
  204. void hxd()
  205. {
  206.         P0=0xff;P1=0xff;
  207.         for(pw=1;pw<cy1;pw++)
  208.         {
  209.                 P2=0x55;P3=0x55;delay2(pw);
  210.                 P2=0xff;P3=0xff;delay2(cy1-pw);         
  211.         }
  212.         for(pw=1;pw<cy1;pw++)
  213.         {
  214.                 P2=0xaa;P3=0xaa;delay2(pw);
  215.                 P2=0xff;P3=0xff;delay2(cy1-pw);         
  216.         }
  217. }
  218. /******************半層呼吸燈*********************/
  219. void bhxd()
  220. {
  221.         P0=0xff;P1=0xff;
  222.         for(pw=1;pw<cy;pw++)
  223.         {
  224.                 P2=0x00;P3=0xff;delay2(pw);
  225.                 P2=0xff;P3=0x00;delay2(cy-pw);         
  226.         }
  227. }
  228. /******************四滴下閃*********************/
  229. void sxs()
  230. {
  231.         P1=0x55;
  232.         P0=0x55;
  233.         for(k=0;k<8;k++){P2=table1[k];delay1(500);}P2=0xff;
  234.         for(k=0;k<8;k++){P3=table1[k];delay1(500);}P3=0xff;
  235. }
  236. /******************四滴上閃*********************/
  237. void sxss()
  238. {
  239.         P1=0xaa;
  240.         P0=0xaa;
  241.         for(k=0;k<8;k++){P3=table[k];delay1(500);}P2=0xff;
  242.         for(k=0;k<8;k++){P2=table[k];delay1(500);}P3=0xff;
  243. }
  244. void main()
  245. {
  246.         cy=2000,cy1=1200,pw=1;
  247.         while(1)
  248.         {

  249.                 bhxd();//半層呼吸
  250.                 for(a=0;a<5;a++){P0=0xff;P1=0xff;yiceng();}//兩層上跳動(dòng)
  251.                 for(a=0;a<5;a++){P0=0xff;P1=0xff;yiceng1();}//兩層下跳動(dòng)
  252.                 for(a=0;a<5;a++){P0=0xff;P1=0xff;yiceng();yiceng1();}//兩層上下跳動(dòng)
  253.                 for(a=0;a<8;a++){dishushun();}   //兩條單個(gè)順時(shí)針滴水
  254.                 for(a=0;a<8;a++){dishuni();}           //兩條單個(gè)逆時(shí)針滴水
  255.                 for(a=0;a<5;a++){dishushun();dishuni();}//兩條單個(gè)順時(shí)+逆時(shí)針滴水
  256.                 for(a=0;a<5;a++){liangdix();}//兩滴掉下
  257.                 for(a=0;a<5;a++){liangdis();}//兩滴掉上
  258.                 for(a=0;a<5;a++){sxl();}
  259.                 for(a=0;a<4;a++){sidisun();}
  260.                 for(a=0;a<2;a++){hxd();}//呼吸燈
  261.                 for(a=0;a<2;a++){shw();shw2();}//兩層豎立向圓順+逆時(shí)針合圍
  262.                 for(a=0;a<2;a++){shw1();shw3();}//兩層豎立向圓順+逆時(shí)針回收
  263.                 for(a=0;a<4;a++){sxl1();}//兩層從頂向下拉伸
  264.                 for(a=0;a<5;a++){sxls();}//兩層從中間向上下拉伸
  265.                 for(a=0;a<4;a++){sisunz();}
  266.                 danxuan();//單層從底向上旋轉(zhuǎn)
  267.                 danxuand();//單層從頂向下旋轉(zhuǎn)
  268.                 for(a=0;a<3;a++){shw();} //兩層豎立向圓順時(shí)針合圍
  269.                 for(a=0;a<3;a++){shw2();}//兩層豎立向圓逆時(shí)針合圍
  270.                 for(a=0;a<2;a++){shw1();}//兩層豎立向圓順時(shí)針回收
  271.                 for(a=0;a<2;a++){shw3();}//兩層豎立向圓逆時(shí)針回收
  272.                 for(a=0;a<4;a++){sidisun1();}
  273.                 sxs();//四滴下閃
  274.                 sxss();//四滴上閃
  275.         }                                                  
  276. }
  277. /********************* the end******************************/

復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表