3D LED Cube - LED Würfel

Entwicklerboard LPC935

Hier eine Bauanleitung für einen 3x3x3 LED Cube. Der Cube wird mit dem Entwicklerboard LPC935 angesteuert.

 

#include
sbit led0 = P2^0;
sbit led1 = P2^1;
sbit led2 = P2^2;
sbit led3 = P2^3;
sbit led4 = P2^4;
sbit led5 = P2^5;
sbit led6 = P2^6;
sbit led7 = P2^7;
sbit led8 = P0^5;
sbit ebene1 = P0^1;
sbit ebene2 = P0^2;
sbit ebene3 = P0^3;
unsigned long int a=0,i,j=0,k,p,x=0,y=0,z=0;
void zeitschleife(void) //Funktion Zeitschleife
{
for (i=0; i<8000; i++);
}
void zeitschleife1(void) //Funktion Zeitschleife1
{
y=y+1000;
for (k=y; k<40000; k++);
}
void zeitschleife2(void) //Funktion Zeitschleife2
{
x=x+1000;
for (p=x; p<30000; p++);
}
void zeitschleife3(void) //Funktion Zeitschleife3
{
for (a=0; a<15000; a++);
}
void variante1(void) //LL von oben nach unten
{
led0 = 1; zeitschleife(); led0 = 0;
led1 = 1; zeitschleife(); led1 = 0;
led2 = 1; zeitschleife(); led2 = 0;
led5 = 1; zeitschleife(); led5 = 0;
led4 = 1; zeitschleife(); led4 = 0;
led3 = 1; zeitschleife(); led3 = 0;
led6 = 1; zeitschleife(); led6 = 0;
led7 = 1; zeitschleife(); led7 = 0;
led8 = 1; zeitschleife(); led8 = 0;
led4 = 1; zeitschleife(); led4 = 0;
}
void ledoff(void) //Alle Led´s off
{
 led0=0;
 led1=0;
 led2=0;
 led3=0;
 led4=0;
 led5=0;
 led6=0;
 led7=0;
 led8=0;
}
void ledon(void) //Alle Led´s on
{
Page: 1
E:\BULME 5ABEL 2009-10\Labor\WLAB\Keil Projekte\C\led_cube.c
 led0=1;
 led1=1;
 led2=1;
 led3=1;
 led4=1;
 led5=1;
 led6=1;
 led7=1;
 led8=1;
}
void led_d1(void) //Diag 1
{
 led0=0;
 led1=1;
 led2=0;
 led3=0;
 led4=1;
 led5=0;
 led6=0;
 led7=1;
 led8=0;
}
void led_d2(void) //Diag 2
{
 led0=0;
 led1=0;
 led2=1;
 led3=0;
 led4=1;
 led5=0;
 led6=1;
 led7=0;
 led8=0;
}
void led_d3(void) //Diag 3
{
 led0=0;
 led1=0;
 led2=0;
 led3=1;
 led4=1;
 led5=1;
 led6=0;
 led7=0;
 led8=0;
}
void led_d4(void) //Diag 4
{
 led0=1;
 led1=0;
 led2=0;
 led3=0;
 led4=1;
 led5=0;
 led6=0;
 led7=0;
 led8=1;
}
void seite1(void) //Aussenseite1
{
 ebene1=1; ebene2=1; ebene3=1;
 led0=1; led3=1; led6=1;
}
Page: 2
E:\BULME 5ABEL 2009-10\Labor\WLAB\Keil Projekte\C\led_cube.c
void seite2(void) //Aussenseite2
{
 led6=1; led7=1; led8=1;
}
void seite3(void) //Aussenseite3
{
 led2=1; led5=1; led8=1;
}
void seite4(void) //Aussenseite4
{
 led0=1; led1=1; led2=1;
}
void main(void)
{
 P2M1 = 0x00;
 P2M2 = 0x00;
 P1M1 = 0x00;
 P1M2 = 0x00;
 P0M1 = 0x00;
 P0M2 = 0x00;
 ebene1=0;
 ebene2=0;
 ebene3=0;
 ledoff();
 ebene1 = 1; variante1();
 ebene2 = 1; variante1();
 ebene3 = 1; variante1(); variante1(); variante1(); variante1();
 for (z=0; z<10; z++) //Alle Led´s blinken
 {
ledoff(); zeitschleife();
ledon(); zeitschleife();
 }
 for (i=0; i<70000; i++)
ledoff();
 for (j=0; j<10; j++)
 {
led_d1(); zeitschleife();
led_d2(); zeitschleife();
led_d3(); zeitschleife();
led_d4(); zeitschleife();
 }
 ledoff(); zeitschleife();
 j=0;
 for (j=0; j<10; j++)
 {
led_d4(); zeitschleife();
led_d3(); zeitschleife();
led_d2(); zeitschleife();
led_d1(); zeitschleife();
 }
 ledoff(); zeitschleife();
 j=0;
 ebene1 = 0;
 ebene2 = 0;
 ebene3 = 0;
Page: 3
E:\BULME 5ABEL 2009-10\Labor\WLAB\Keil Projekte\C\led_cube.c
 for (j=0; j<10; j++)
 {
ebene3 = 1; ledon(); zeitschleife3(); ebene3 = 0;
ebene2 = 1; ledon(); zeitschleife3(); ebene2 = 0;
ebene1 = 1; ledon(); zeitschleife3(); ebene1 = 0;
 }
 j=0;
 ledoff(); zeitschleife(); zeitschleife(); zeitschleife();
 for (j=0; j<10; j++)
 {
seite1(); zeitschleife1(); ledoff();
seite2(); zeitschleife1(); ledoff();
seite3(); zeitschleife1(); ledoff();
seite4(); zeitschleife1(); ledoff();
 }
 j=0;
 ledoff(); zeitschleife(); zeitschleife(); zeitschleife();
 for (j=0; j<20;j++)
 {
led_d1(); zeitschleife2();
led_d3(); zeitschleife2();
 }
 j=0;
 x=0;
 ledoff(); zeitschleife();
 for (j=0; j<20;j++)
 {
led_d2(); zeitschleife2();
led_d4(); zeitschleife2();
 }
 j=0;
 ledoff(); zeitschleife();
 k=0; y=0;
 for (j=0; j<12; j++)
 {
ebene3 = 1; ledon(); zeitschleife1(); ebene3 = 0;
ebene2 = 1; ledon(); zeitschleife1(); ebene2 = 0;
ebene1 = 1; ledon(); zeitschleife1(); ebene1 = 0;
 }
 j=0;
}