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;
}
}
}
}