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