STEP1
按照电路图搭建3*3的LED矩阵,LED顶端朝自己,LED的负极引脚朝左掰弯,LED的正极引脚朝下掰弯,注意引脚交叉需要一定的间隔,不要短路。
这样就是光立方的一个面,一共需要焊3个面。
STEP2
把3个面立在洞洞板并焊接起来,这就是一个立体的3*3*3立方体。
这时一共有9根LED的引脚焊接到了洞洞板上,分别是每个面的Y0、Y1、Y2。
STEP3
把每层的LED负极分别接在一起,构成层选择线,层0、层1、层2。
STEP4
把底部9个引脚(x、y坐标选择线)和3根层选择线接到单片机最小系统上,引脚可自定义连接。
例如
//底部9个点 LED正极 sbit B00=P0^7; sbit B01=P0^6; sbit B02=P0^5; sbit B10=P0^4; sbit B11=P0^3; sbit B12=P0^2; sbit B20=P2^7; sbit B21=P0^0; sbit B22=P0^1; //层选择线 LED负极 sbit Z0=P2^6; sbit Z1=P2^5; sbit Z2=P2^4;
测试效果
测试程序
#include<reg51.h> //+ 底部9个点 sbit B00=P0^7; sbit B01=P0^6; sbit B02=P0^5; sbit B10=P0^4; sbit B11=P0^3; sbit B12=P0^2; sbit B20=P2^7; sbit B21=P0^0; sbit B22=P0^1; //- 层选择线 sbit Z0=P2^6; sbit Z1=P2^5; sbit Z2=P2^4; void Postion(unsigned char x,unsigned char y,unsigned char z ) { Z0=1;Z1=1;Z2=1; B00=0; //+ B01=0; B02=0; B10=0; B11=0; B12=0; B20=0; B21=0; B22=0; switch(z) { case 0: Z0=0;break; case 1: Z1=0;break; case 2: Z2=0;break; } switch(x*10+y) { case 0: B00=1;break; case 1: B01=1;break; case 2: B02=1;break; case 10:B10=1;break; case 11:B11=1;break; case 12:B12=1;break; case 20:B20=1;break; case 21:B21=1;break; case 22:B22=1;break; } } void delay100ms(void) { unsigned char a,b,c; for(c=19;c>0;c--) for(b=20;b>0;b--) for(a=130;a>0;a--); } void main() { char x=0,y=0,z=0,c=0; while(1) { for(z=0;z<=2;z++){ //Z轴 for(c=0;c<3;c++){ //每层循环次数 for(x=0;x<3;x++){ Postion(x,y,z); delay100ms(); } x=2; for(y=0;y<3;y++){ Postion(x,y,z); delay100ms(); } y=2; for(x=2;x>=0;x--){ Postion(x,y,z); delay100ms(); } x=0; for(y=2;y>=0;y--){ Postion(x,y,z); delay100ms(); } y=0; } } } }