找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6138|回复: 7
收起左侧

DIY STC11F02E单片机心形流水灯

[复制链接]
ID:243986 发表于 2017-12-11 15:02 | 显示全部楼层 |阅读模式
创作原由:
大多电子爱好者朋友用的40Pin的51单片机做心形流水灯,需要的led量多,焊接时间长,所以本人想着用20Pin的STC11F02E做一个迷你版的心形流水灯。所需led数量少,易焊接,布线。下面给大家介绍这个小制作。有不足的地方可以提出,还望大神指点。(不喜勿喷)
1.jpg
2.jpg

从图中可以看出所需元器件:
1.STC11F02E单片机一片
2.LED灯14个,颜色随意。
3.1K电阻14个(上拉电阻,单片机IO口输出很小)
4.电位器(不要也可以,加了调节电压能调节灯亮度,但是电压过小,单片机无法正常工作)
5.USB母口(也可以用DC插座,不过不好焊)
6.自锁开关
7.USB转TTL (PL2302或者CH340)
8.洞洞板7×9cm
9.面包板(用来测试灯泡好坏,加了上拉之后电阻调整)
10.杜邦线(图中没有)
11.漆包线(后面飞线,也可以用杜邦线飞,就是太粗)
大概就这么点元器件,其他焊接工具就不需要说了吧。

STC11F02E引脚图:
0.jpg

LED和引脚对应关系:
使用P1.0-1.7和P3.0-3.5一共14个引脚。P1.0对应上面中间的LED,其他一次逆时针焊接。也就是下面中间为P1.7。下面中间右边一个为P3.0,继续逆时针。焊接最外圈为GND,VCC在里面。

  1. /**********************/  
  2. /******心形流水灯******/  
  3. /**********************/  
  4. #include <reg52.h>  
  5. #define uchar unsigned char  
  6. #define uint unsigned int  
  7. uchar code table1[]={  
  8. 0x01,0x02,0x04,0x08,  
  9. 0x10,0x20,0x40,0x80};  
  10. uchar code table2[]={  
  11. 0x01,0x02,0x04,0x08,  
  12. 0x10,0x20};  
  13. uchar code table3[]={  
  14. 0x80,0xc0,0xe0,0xf0,  
  15. 0xf8,0xfc,0xfe,0xff};  
  16. uchar code table4[]={  
  17. 0x00,0x01,0x03,0x07,  
  18. 0x0f,0x1f,0x3f};  
  19. void loudou_0();           //左右流水递增  
  20. void loudou_1();           //左右流水  
  21. void loudou_2();           //左右流水  
  22. void shanshuo();           //加减速闪烁  
  23. void quanliang();          //全量  
  24. void banshan();            //左右半闪  
  25. void liushui_vleft();      //逆时针加速转  
  26. void liushui_vright();     //顺时针加速转  
  27. void liushui_left();       //逆时针  
  28. void liushui_right();      //顺时针  
  29. void delay(uint z)  
  30. {  
  31.     uint i,j;  
  32.     for(i=z;i>0;i--)  
  33.         for(j=110;j>0;j--);  
  34. }  
  35. void main()  
  36. {  
  37.   
  38.     while(1)  
  39.     {  
  40.     loudou_0();  
  41.         loudou_1();  
  42.     loudou_2();  
  43.     loudou_0();  
  44.     banshan();  
  45.     quanliang();  
  46.     shanshuo();  
  47.     liushui_right();  
  48.     liushui_vright();  
  49.     liushui_left();  
  50.     liushui_vleft();  
  51.     }  
  52.   
  53. }   
  54. /**********************/  
  55. /*半闪*/  
  56. void banshan()  
  57. {   
  58.     uint x;  
  59.     for(x=0;x<=3;x++)  
  60. {  
  61.     P1=0xff;  
  62.     P3=0x00;  
  63.     delay(1000);  
  64.     P1=0x81;  
  65.     P3=0x3f;  
  66.     delay(1000);  
  67.   }  
  68. }  
  69. /**********************/  
  70. /**********************/  
  71. /*流水左右分往下*/  
  72. void loudou_0()  
  73. {  
  74.     uint i,j,z;  
  75.     for(z=1;z<=8;z++)  
  76.     {  
  77.         i=1;  
  78.         for(j=6;j>=z;j--)  
  79.         {  
  80.            P1=(table1[i])|(table3[z-1]);  
  81.            P3=(table2[j-1])|(table4[z-1]);  
  82.            delay(800);  
  83.            i++;  
  84.         }  
  85.     }  
  86.   
  87. }  
  88.   
  89. /**********************/  
  90. /**********************/  
  91. /*流水左右分往下*/  
  92. void loudou_2()  
  93. {  
  94.     uint i,j,z;  
  95. for(z=0;z<=1;z++)  
  96. {  
  97.     i=1;  
  98.     P1=0x01;  
  99.     delay(600);  
  100.     for(j=6;j>=1;j--)  
  101.     {  
  102.        P1=table1[i];  
  103.        P3=table2[j-1];  
  104.        delay(600);  
  105.        i++;  
  106.     }  
  107.     P3=0x00;  
  108.     P1=0x00;  
  109.     P1=0x80;  
  110.     delay(600);  
  111. }  
  112. }  
  113. /**********************/  
  114. /**********************/  
  115. /*流水左右分往下*/  
  116. void loudou_1()  
  117. {  
  118.     uint i,j,z;  
  119. for(z=0;z<=2;z++)  
  120. {  
  121.     i=1;  
  122.     P1=0xfe;  
  123.     delay(600);  
  124.     for(j=6;j>=1;j--)  
  125.     {  
  126.        P1=~table1[i];  
  127.        P3=~table2[j-1];  
  128.        delay(600);  
  129.        i++;  
  130.     }  
  131.     P3=0xff;  
  132.     P1=0xff;  
  133.     P1=0x7f;  
  134.     delay(600);  
  135. }  
  136. }  
  137.   
  138. /**********************/  
  139. /**********************/  
  140. /*流水右转*/  
  141. void liushui_right()  
  142. {  
  143.     uint i,j;  
  144. //  for(x=0;x<=1;x++)  
  145. //  {   
  146.         for(j=6;j>=1;j--)  
  147.         {  
  148.            P3=~table2[j-1];  
  149.            P1=0xff;  
  150.            delay(800);  
  151.         }  
  152.         P3=0x00;  
  153.         for(i=8;i>=1;i--)  
  154.         {  
  155.            P1=~table1[i-1];  
  156.            P3=0xff;  
  157.            delay(800);  
  158.         }  
  159.         P1=0x00;  
  160.       
  161. //  }  
  162. }  
  163. /**********************/  
  164. /**********************/  
  165. /*流水左转*/  
  166. void liushui_left()  
  167. {  
  168.     uint i,j;  
  169. //  for(x=0;x<=1;x++)  
  170. //  {  
  171.         for(i=0;i<=7;i++)  
  172.         {  
  173.            P1=~table1[i];  
  174.            P3=0xff;  
  175.            delay(800);  
  176.         }  
  177.         P1=0x00;  
  178.         for(j=0;j<=5;j++)  
  179.         {  
  180.            P3=~table2[j];  
  181.            P1=0xff;  
  182.            delay(800);  
  183.         }  
  184.         P3=0x00;  
  185.       
  186. //  }  
  187. }  
  188. /**********************/  
  189. /**********************/  
  190. /*流水加速*/  
  191. void liushui_vleft()  
  192. {  
  193.     uint i,j,y;  
  194. //  for(x=0;x<=1;x++)  
  195. //  {  
  196.         y=900;  
  197.         for(i=0;i<=7;i++)  
  198.         {  
  199.            P1=~table1[i];  
  200.            P3=0xff;  
  201.            delay(y);  
  202.            y=y-100;  
  203.         }  
  204.         P1=0x00;  
  205.         for(j=0;j<=5;j++)  
  206.         {  
  207.            P3=~table2[j];  
  208.            P1=0xff;  
  209.            delay(y);  
  210.            y=y+150;  
  211.         }  
  212.         P3=0x00;      
  213. //  }  
  214. }  
  215. /**********************/  
  216. /**********************/  
  217. /*流水加速*/  
  218. void liushui_vright()  
  219. {  
  220.     uint i,j,y;  
  221. //  for(x=0;x<=1;x++)  
  222. //  {   
  223.         y=900;  
  224.         for(j=6;j>=1;j--)  
  225.         {  
  226.            P3=~table2[j-1];  
  227.            P1=0xff;  
  228.            delay(y);  
  229.            y=y-100;  
  230.         }  
  231.         P3=0x00;  
  232.         for(i=8;i>=1;i--)  
  233.         {  
  234.            P1=~table1[i-1];  
  235.            P3=0xff;  
  236.            delay(y);  
  237.            y=y+150;  
  238.         }  
  239.         P1=0x00;  
  240.       
  241. //  }  
  242. }  
  243. /**********************/  
  244. void quanliang()  
  245. {  
  246.        P1=0xff;  
  247.        P3=0xff;  
  248.        delay(1000);  
  249. }  
  250. /**********************/  
  251. void shanshuo()  
  252. {  
  253.     uint i,j=1000;  
  254.     uchar aa=0xff;  
  255.     for(i=20;i>0;i--)  
  256.     {  
  257.         P1=aa;  
  258.         P3=aa;  
  259.         delay(j);  
  260.         j=j-50;  
  261.         aa=~aa;  
  262.          
  263.     }  
  264.         for(i=20;i>0;i--)  
  265.     {  
  266.         P1=aa;  
  267.         P3=aa;  
  268.         delay(j);  
  269.         j=j+50;  
  270.         aa=~aa;  
  271.          
  272.     }  
  273. }  
  274. /**********************/
复制代码

评分

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

查看全部评分

回复

使用道具 举报

ID:261183 发表于 2017-12-13 19:03 | 显示全部楼层
朋友 有没有ISIS的原理图能不能给我看看 我是萌新想做你这个小东西 麻烦了
回复

使用道具 举报

ID:182887 发表于 2017-12-17 09:43 | 显示全部楼层
学习学习学习学习
回复

使用道具 举报

ID:258542 发表于 2017-12-19 21:09 | 显示全部楼层
大兄弟,你这有没有视频,发上来看看。 我看你这led太少,没有40脚单片机那么与感觉
回复

使用道具 举报

ID:243986 发表于 2017-12-20 10:56 | 显示全部楼层
qw2597758qw 发表于 2017-12-13 19:03
朋友 有没有ISIS的原理图能不能给我看看 我是萌新想做你这个小东西 麻烦了

不好意思 原理图没有  我手画的不知道去哪里了
回复

使用道具 举报

ID:243986 发表于 2017-12-20 10:56 | 显示全部楼层
绊脚石13 发表于 2017-12-19 21:09
大兄弟,你这有没有视频,发上来看看。 我看你这led太少,没有40脚单片机那么与感觉

有空做一个
回复

使用道具 举报

ID:1097534 发表于 2023-10-27 16:37 | 显示全部楼层
这个芯片的vcc是几伏电压供电呀?
回复

使用道具 举报

ID:1057978 发表于 2024-1-9 15:07 | 显示全部楼层
SmallFly 发表于 2023-10-27 16:37
这个芯片的vcc是几伏电压供电呀?

STC11F02E是5V供电,3.3不工作
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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