找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23525|回复: 32
收起左侧

小蛮腰 led广州塔diy程序

  [复制链接]
ID:136752 发表于 2016-8-14 21:07 | 显示全部楼层 |阅读模式

广州 塔diy程序,效果详见:http://www.51hei.com/bbs/dpj-48911-1.html

  1. /********************************************************/
  2. /****** 名称:广州塔          ***************************/
  3. /****** 编写:忧伤的季节      ***************************/
  4. /****** 时间: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};// 一个灯顺时针流水
  13. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};// 一个灯顺时针流水
  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. /******************两条单个顺时针滴水*********************/
  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. /******************两条单个逆时针滴水*********************/
  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. /******************单层从底向上旋转*********************/
  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. /******************单层从顶向上旋转*********************/
  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. /******************两层竖立向圆顺时针合围*********************/
  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. /******************两层竖立向圆顺时针回收*********************/
  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. /******************两层竖立向圆逆时针回收*********************/
  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. /******************两层竖立向圆逆时针合围*********************/
  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. /******************四条单个顺时针滴水闪*********************/
  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. /******************四条单个顺时针滴水闪*********************/
  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. /******************四条单个顺时针滴水转*********************/
  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();}//两层上跳动
  251.   for(a=0;a<5;a++){P0=0xff;P1=0xff;yiceng1();}//两层下跳动
  252.   for(a=0;a<5;a++){P0=0xff;P1=0xff;yiceng();yiceng1();}//两层上下跳动
  253.   for(a=0;a<8;a++){dishushun();}   //两条单个顺时针滴水
  254.   for(a=0;a<8;a++){dishuni();}           //两条单个逆时针滴水
  255.   for(a=0;a<5;a++){dishushun();dishuni();}//两条单个顺时+逆时针滴水
  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();}//两层竖立向圆顺+逆时针合围
  262.   for(a=0;a<2;a++){shw1();shw3();}//两层竖立向圆顺+逆时针回收
  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();//单层从底向上旋转
  267.   danxuand();//单层从顶向下旋转
  268.   for(a=0;a<3;a++){shw();} //两层竖立向圆顺时针合围
  269.   for(a=0;a<3;a++){shw2();}//两层竖立向圆逆时针合围
  270.   for(a=0;a<2;a++){shw1();}//两层竖立向圆顺时针回收
  271.   for(a=0;a<2;a++){shw3();}//两层竖立向圆逆时针回收
  272.   for(a=0;a<4;a++){sidisun1();}
  273.   sxs();//四滴下闪
  274.   sxss();//四滴上闪
  275. }                                                  
  276. }
  277. /********************* the end******************************/
复制代码


广州塔程序.rar

34.61 KB, 下载次数: 170, 下载积分: 黑币 -5

评分

参与人数 5黑币 +73 收起 理由
12323ff + 5 绝世好帖!
hxj + 5 很给力!
便是晴天 + 1 赞一个!
xljxlj + 12 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:137211 发表于 2016-8-21 19:46 | 显示全部楼层
厉害,太棒了
回复

使用道具 举报

ID:137531 发表于 2016-8-24 23:07 来自手机 | 显示全部楼层
好强大,我是菜鸟,正在发奋中
回复

使用道具 举报

ID:137531 发表于 2016-8-24 23:08 | 显示全部楼层
学习了,强大
回复

使用道具 举报

ID:130196 发表于 2016-8-25 11:01 | 显示全部楼层
这个具体是怎么焊的
回复

使用道具 举报

ID:140256 发表于 2016-9-23 19:40 | 显示全部楼层
太棒了
回复

使用道具 举报

ID:140488 发表于 2016-10-25 23:42 来自手机 | 显示全部楼层
有原理图不
回复

使用道具 举报

ID:71993 发表于 2016-10-28 00:20 来自手机 | 显示全部楼层
厉害厉害
回复

使用道具 举报

ID:136362 发表于 2016-10-28 20:38 | 显示全部楼层
666,学习了,不错
回复

使用道具 举报

ID:91274 发表于 2016-11-16 15:11 | 显示全部楼层
厉害了
回复

使用道具 举报

ID:149207 发表于 2016-11-21 13:44 | 显示全部楼层
请问有原理图可以参考一下吗,楼主
回复

使用道具 举报

ID:149207 发表于 2016-11-21 13:45 | 显示全部楼层
请问有原理图可以参考一下吗,楼主,谢谢了
回复

使用道具 举报

ID:149373 发表于 2016-11-22 01:14 | 显示全部楼层
学习了,强大
回复

使用道具 举报

ID:143203 发表于 2016-11-22 09:33 | 显示全部楼层
怎么焊接的呢
回复

使用道具 举报

ID:169910 发表于 2017-3-11 16:59 | 显示全部楼层
我也做了一个了
回复

使用道具 举报

ID:198502 发表于 2017-5-9 09:34 | 显示全部楼层
厉害,太棒了
回复

使用道具 举报

ID:186673 发表于 2017-6-12 22:03 | 显示全部楼层
厉害厉害
回复

使用道具 举报

ID:246755 发表于 2017-11-6 22:39 | 显示全部楼层
这个好玩  找了好久
回复

使用道具 举报

ID:246755 发表于 2017-11-6 22:39 | 显示全部楼层
这个好玩  找了好久
回复

使用道具 举报

ID:246755 发表于 2017-11-6 22:48 | 显示全部楼层
厉害了我的原始人
回复

使用道具 举报

ID:229527 发表于 2017-11-16 09:58 | 显示全部楼层
厉害了  
回复

使用道具 举报

ID:242562 发表于 2017-11-16 11:19 来自手机 | 显示全部楼层
学习下,太好了
回复

使用道具 举报

ID:249520 发表于 2017-11-27 23:50 来自手机 | 显示全部楼层
Free_Electron 发表于 2016-8-21 19:46
厉害,太棒了

这个代码可以?
回复

使用道具 举报

ID:251357 发表于 2017-11-29 10:34 来自手机 | 显示全部楼层
我现在正在研究888过来参观参观
回复

使用道具 举报

ID:283578 发表于 2018-2-10 19:37 | 显示全部楼层
很好
回复

使用道具 举报

ID:273332 发表于 2018-6-3 13:09 | 显示全部楼层
这个是代码吗有没有原理图什么的哦 楼主
回复

使用道具 举报

ID:398234 发表于 2018-9-15 10:24 来自手机 | 显示全部楼层
学习下,太好了
回复

使用道具 举报

ID:416364 发表于 2018-10-27 17:03 | 显示全部楼层
赞一个
回复

使用道具 举报

ID:416364 发表于 2018-10-27 17:05 | 显示全部楼层
还在研究中
回复

使用道具 举报

ID:419063 发表于 2018-11-25 18:12 | 显示全部楼层
学习中,有空玩玩,多谢了!
回复

使用道具 举报

ID:468218 发表于 2019-1-15 09:19 | 显示全部楼层
真的很好。
回复

使用道具 举报

ID:524639 发表于 2019-4-29 18:27 | 显示全部楼层
ssli 发表于 2016-8-25 11:01
这个具体是怎么焊的

用烙铁焊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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