标题: 4*4光立方制作教程 [打印本页]

作者: 丿丶丶    时间: 2016-9-24 17:38
标题: 4*4光立方制作教程
一、硬方面
1.LED:CUBE4光立方需要64个LED,LED的颜色可以自己随意挑选红 黄 蓝 绿 白,个人推荐雾状蓝色LED,夜晚效果超屌。
2.单片机:单片机上采用程序空间大的,运行速度快的STC12C60S2单片机。如果你觉得大了,你可以选择28脚的,能保证有16个IO口控制LED的亮灭。也能自己扩展光立方功能。
3. 一个12Mhz晶振,两个30pF电容,搭建单片机的最小系统
4.上拉电阻:为了提高LED亮度,选用200欧2/1W的。(可加可不加)
5.电源:5V电源。电脑USB口电源或手机适配器输出的即可,不需要太苛刻的要求!
二、电路连接
很多人会在这里纠结,到底该怎么连接电路。不用纠结了,接下来我给大家详细说说怎么连接LED。    本光立方采用的电路与LED点阵屏一样的。接下来看图。


内附有取模 模板,可实现各种汉字,符号在光立方上切换。
从正面看:红色是LED的正极,正极接下去,中间两列相连,外面两列相连接后面依次如此连接。蓝色是LED负极相连,已经标出连接到的IO口号上了。 本光立方负极接到P2口上,所以按照上面的图,左边上面第一个连接到的应该是P2.0口。

从上面看:IO口号已标出,要注意的是中间两列相连的,如5和5是相连的。外面两列相连,如0和0相连的。本光立方在这里连的是P0口,0就连接到P0.0上 5就接到P0.5上 说说上拉电阻:在IO口连接到LED正极的基础上再把电阻连接到VCC和IO口间。好了,硬件就说到这里。有什么不懂的可以加我QQ1323811540.验证信息填光立方三、软方面本光立方有专用取模软件,如果你按上面电路连接,只需要在C语言程序中做一些小修改就可以使用了!C语言程序下面我会打包

你可以不用上面的P0,P2口但是 0.1.2.3.4.5.6.7的顺序必须同上如果你改了,那就请看下面,怎么在程序中改。首先你需要头文件#include <STC12C2052AD.h>,如果没有不用担心我已经打包了,下载再放到keil头文件的文件夹里就OK,如果不会自己百~度。动画我都是封装到一个函数里,看到这里你应该打开C程序来对着看找个短的说明吧!
  1. void allfalloff()  //由全亮到下落关闭只剩一排   动画函数
  2. {
  3.        unsigned char code tabP0[4][8]={    把取模取到的数组直接复制粘贴到这里
  4.        {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  5.        {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},   要改的是数组标号
  6.        {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},   tabP0[4][8]  
  7.        {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}         这里取了4次 所以填写4
  8.        };
  9.        int j,k,i;                                      
  10.        for(j=0;j<4;j++)        这里的4改成和上面数组第一维的数
  11.        {
  12.               for(k=0;k<15;k++)      15是LED点亮的时间  加大LED点亮时间加长
  13.               {
  14.                      for(i=0;i<8;i++)    这里不用改
  15.                      {
  16.                             P0=0;         在看到这里  如果你改了IO组号的话,那这里也需要改        P0改成你接到LED正极上的那个组号
  17.                             P2=tabP2;    这里是接到LED负极上的组号
  18.                             P0=tabP0[j];  这里是正极上的组号
  19.                             ys(10);        这里是LED熄灭的时间。也就是这个LED亮灭后间隔多少时间才到下一个  加大熄灭时间加长
  20.                      }
  21.               }
  22.        }              
  23. }
  24. 怎么自己加动画?

  25. 看完这个你在和其他函数做做对比,相信你会懂的
  26. 不懂还是加我QQ1323811540 验证消息:光立方

  27. void 函数名自己定义()       //记得加上动画注释说明
  28. {
  29.        unsigned char code tabP0[4][8]={
  30.      把取模取到的数组直接贴到这里  在根据你取模的次数修改上面的4
  31.        };
  32.        int j,k,i;
  33.        for(j=0;j<4;j++)        这里的4改成和上面数组第一维的数
  34.        {
  35.               for(k=0;k<15;k++)      15是LED点亮的时间  加大LED点亮时间加长
  36.               {
  37.                      for(i=0;i<8;i++)    这里不用改
  38.                      {
  39.                             P0=0;         在看到这里  如果你改了IO组号的话,那这里也需要改        P0改成你接到LED正极上的那个组号
  40.                             P2=tabP2;    这里是接到LED负极上的组号
  41.                             P0=tabP0[j];  这里是正极上的组号
  42.                             ys(10);        这里是LED熄灭的时间。也就是这个LED亮灭后间隔多少时间才到下一个  加大熄灭时间加长
  43.                      }
  44.               }
  45.        }              
  46. }
复制代码


软件本身无毒,因为是易语言编写,所有360可能会误报。请加入白名单打开软件   上面就是光立方的LED,灰色表示LED熄灭,淡蓝色表示点亮我们看到的是LED的正面。
单击上面的圆点LED自动亮或灭确定图形后点击 给我取!这样你就取得第一帧了、   这里取得的帧数也就是在上面那个数组4要改成的帧数如果需要,继续取模。 方法同上,相信电子爱好者们都会,如果不会的话,那就别.....那什么了。 取模好后直接复制到上面就好了。
  1. MAIN()主函数
  2. Void main()            一小部分说明
  3. {
  4.        while(1)
  5.        {
  6.               begin();                  //全灭 呼吸亮
  7.               allfalloff();              //由全亮到下落关闭只剩一排      直接把动画函数粘贴下来就行
  8.               turnR();                     //由下面一排转到右面
  9.               righttoleft();              //右面平移到左面
  10.               lefttoright();              //左面平移到右面
  11.               righttoleft();              //右面平移到左面
  12.               lefttoright();              //左面平移到右面


复制代码

源程序.zip

8.55 KB, 下载次数: 27, 下载积分: 黑币 -5

取模软件(专用).zip

396.37 KB, 下载次数: 41, 下载积分: 黑币 -5

光立方444.zip

623.3 KB, 下载次数: 70, 下载积分: 黑币 -5

光立方444.doc

247 KB, 下载次数: 22, 下载积分: 黑币 -5


作者: zgzg142536    时间: 2017-3-8 16:35
你的“光立方444.zip”已包含其余三个文件,就不该再列出来了,弄得我都下载,费了好多黑币,真想骂你,还是算了吧,好的我的黑币不少,但是还是不爽。
作者: tsop1    时间: 2017-3-16 19:23
借我点黑币用呀,想下点资料不能下呀!
作者: 无缘无故    时间: 2017-10-13 02:47
感想楼主,打算自己做一个试试
作者: lnwd336    时间: 2017-10-13 14:03
楼主威武
作者: wuxishun    时间: 2018-2-1 09:11
为什么我的只能显示2*4的灯
作者: mrhan1992    时间: 2018-2-1 10:03
自己想做一个小的光立方,感谢楼主提供的资料
作者: MERCURY    时间: 2018-2-2 17:13
感谢提供资料
作者: Crazy_Octopus    时间: 2018-2-21 21:24
非常给力
作者: 1123551003    时间: 2019-10-26 15:36
首先谢谢楼主共享,然后谢谢1楼提醒




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1