一、硬方面 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程序来对着看找个短的说明吧!
- void allfalloff() //由全亮到下落关闭只剩一排 动画函数
- {
- unsigned char code tabP0[4][8]={ 把取模取到的数组直接复制粘贴到这里
- {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
- {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF}, 要改的是数组标号
- {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF}, tabP0[4][8]
- {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF} 这里取了4次 所以填写4
- };
- int j,k,i;
- for(j=0;j<4;j++) 这里的4改成和上面数组第一维的数
- {
- for(k=0;k<15;k++) 15是LED点亮的时间 加大LED点亮时间加长
- {
- for(i=0;i<8;i++) 这里不用改
- {
- P0=0; 在看到这里 如果你改了IO组号的话,那这里也需要改 P0改成你接到LED正极上的那个组号
- P2=tabP2; 这里是接到LED负极上的组号
- P0=tabP0[j]; 这里是正极上的组号
- ys(10); 这里是LED熄灭的时间。也就是这个LED亮灭后间隔多少时间才到下一个 加大熄灭时间加长
- }
- }
- }
- }
- 怎么自己加动画?
- 看完这个你在和其他函数做做对比,相信你会懂的
- 不懂还是加我QQ1323811540 验证消息:光立方
- void 函数名自己定义() //记得加上动画注释说明
- {
- unsigned char code tabP0[4][8]={
- 把取模取到的数组直接贴到这里 在根据你取模的次数修改上面的4
- };
- int j,k,i;
- for(j=0;j<4;j++) 这里的4改成和上面数组第一维的数
- {
- for(k=0;k<15;k++) 15是LED点亮的时间 加大LED点亮时间加长
- {
- for(i=0;i<8;i++) 这里不用改
- {
- P0=0; 在看到这里 如果你改了IO组号的话,那这里也需要改 P0改成你接到LED正极上的那个组号
- P2=tabP2; 这里是接到LED负极上的组号
- P0=tabP0[j]; 这里是正极上的组号
- ys(10); 这里是LED熄灭的时间。也就是这个LED亮灭后间隔多少时间才到下一个 加大熄灭时间加长
- }
- }
- }
- }
复制代码
软件本身无毒,因为是易语言编写,所有360可能会误报。请加入白名单打开软件 上面就是光立方的LED,灰色表示LED熄灭,淡蓝色表示点亮我们看到的是LED的正面。
单击上面的圆点LED自动亮或灭确定图形后点击 给我取!这样你就取得第一帧了、 这里取得的帧数也就是在上面那个数组4要改成的帧数如果需要,继续取模。 方法同上,相信电子爱好者们都会,如果不会的话,那就别.....那什么了。 取模好后直接复制到上面就好了。
- MAIN()主函数
- Void main() 一小部分说明
- {
- while(1)
- {
- begin(); //全灭 呼吸亮
- allfalloff(); //由全亮到下落关闭只剩一排 直接把动画函数粘贴下来就行
- turnR(); //由下面一排转到右面
- righttoleft(); //右面平移到左面
- lefttoright(); //左面平移到右面
- righttoleft(); //右面平移到左面
- lefttoright(); //左面平移到右面
- {
- }
复制代码
|