LED Cube
LED Cube
Har haft lite lite att göra nu de senaste dagarna så jag har pillat lite och fått för mig att bygga en LED Cube. 
Den är ganska liten. 3*3*3 lysdioder. Så det är 27 dioder. Och eftersom detta var ett test så köpte jag billiga och svaga dioder. Ska kanske uppdatera med nya dioder, vet ej vilken färg men lutar åt blåa.
Lådan har jag gjort av en bit list och mycket spackel samt lite sprayfärg. Men jag ska göra en ny låda lite senare med en ny kub.
Jag använde mig av en PIC 16f690 processor. Den är väl inte den snabbaste men det räcker fint åt mig.
Schema och kod kan jag lägga upp om någon är intresserad. Har iofs bara schemat på en bit vanligt papper men kan rita upp det på datorn om det behövs.
Här är bilder och självklart en film.
Bilder:
http://i478.photobucket.com/albums/rr15 ... 041530.jpg
http://i478.photobucket.com/albums/rr15 ... 041529.jpg
Film:
http://s478.photobucket.com/albums/rr15 ... 041532.flv
			
			
									
									
						Den är ganska liten. 3*3*3 lysdioder. Så det är 27 dioder. Och eftersom detta var ett test så köpte jag billiga och svaga dioder. Ska kanske uppdatera med nya dioder, vet ej vilken färg men lutar åt blåa.
Lådan har jag gjort av en bit list och mycket spackel samt lite sprayfärg. Men jag ska göra en ny låda lite senare med en ny kub.
Jag använde mig av en PIC 16f690 processor. Den är väl inte den snabbaste men det räcker fint åt mig.
Schema och kod kan jag lägga upp om någon är intresserad. Har iofs bara schemat på en bit vanligt papper men kan rita upp det på datorn om det behövs.
Här är bilder och självklart en film.
Bilder:
http://i478.photobucket.com/albums/rr15 ... 041530.jpg
http://i478.photobucket.com/albums/rr15 ... 041529.jpg
Film:
http://s478.photobucket.com/albums/rr15 ... 041532.flv
- 
				-=Fullmoon=-
- Inlägg: 3529
- Blev medlem: 4 december 2007, 16:32:13
- Ort: Jönköping -
- Housepainter
- EF Sponsor
- Inlägg: 1318
- Blev medlem: 19 juli 2006, 18:50:38
- Ort: Borås
- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 35271
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Kod: Markera allt
;-----------------------------------------------------------------------------------------------;
;		LED	cube																				;
;		--------																				;
;											;
;																				;
;																				;
;																								;
;	4MHz internal resonator used 																;
;																								;
;																								;
;	3 layers of 3 x 3 LEDs																		;
;																								;
;	RB6	-	Top layer common																	;
;	RB6	-	Middle layer common																	;
;	RB7	-	Bottom layer common																	;
;																								;
;																								;
;	Each layer of LED's Anodes			;						;
;																								;
;		RC1			RC0			RB4																;
;																								;
;																								;
;		RC4			RC3			RC2																;
;																								;
;																								;
;		RC7			RC6			RC5																;
;																								;
;	4 registers are used to hold the patterns for the LEDs										;
;																								;
;	Layer1 - Top layer (8 Leds)																	;
;	Layer2 - Middle layer (8 Leds)																;
;	Layer3 - Bottom layer (8 Leds)																;
;	Layer4 - bits 7,6 and 5 hold the 9th LED for top, middle and bottom, bits 4 and 3 hold the	;
;			 brightness (how long it is on for), bits 2,1 and 0 is the time the specific		;
;			 pattern is on until the next one is retrieved										;
;																								;
;	There are 4 look-up tables Table1, Table2, Table3 and Table4. These are for each layer		;
;	giving a total of 255 different patterns.													;
;-----------------------------------------------------------------------------------------------;
#include <p16F690.inc>
    __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x20
	Delay1					; delay loop 1
	Delay2					; delay loop 2
	Delay3					; delay loop 3
	TimeDelay				; time delay x 0.001 s
	EndCount				; used to tell PIC the end of the table is reached
	Counter					; used as table counter
	Layer1					; top layer
	Layer2					; middle layer
	Layer3					; bottom layer
	Layer4					; 9th Led on each layer, brightness, and time
	Brightness				; LED brightness
	Time					; time for each pattern to stay
	Temp					; temp register
endc
	org 0
	goto	Start			; jump to Start
;-----------------------------------------------------------------------------------------------;
; Subroutines are here at the top																;
;-----------------------------------------------------------------------------------------------;
;-----------------------------------------------------------------------------------------------;
; BigSmall sub routine																			;
;-----------------------------------------------------------------------------------------------;
BigSmall:
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; FlashingLines sub routine																			;
;-----------------------------------------------------------------------------------------------;
FlashingLines:
	movlw	b'00100100'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'01001001'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'10010010'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00011100'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'10010010'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'01001001'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00100100'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00011100'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; LayerBrightness sub routine																			;
;-----------------------------------------------------------------------------------------------;
LayerBrightness:
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10000000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01000000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00100000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01001000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00010000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00101000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01001000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001000'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; CubeFill sub routine																			;
;-----------------------------------------------------------------------------------------------;
CubeFill:
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00100000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'01100000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11100000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110000'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110010'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110011'
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110011'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00100000'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'01100000'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11100000'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110000'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110010'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110011'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110011'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110111'
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'00100000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'01100000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'11110000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'11110010'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'11110011'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111000'
	movwf	Layer4
	call	Output
	movlw	b'11110011'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11110111'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11011111'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'10011111'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00011111'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001111'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001101'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001100'
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001100'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'11011111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'10011111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00011111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00001111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00001101'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00001100'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00001100'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'11011111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'10011111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'00011111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'00001111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'00001101'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'00001100'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011000'
	movwf	Layer4
	call	Output
	movlw	b'00001100'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011000'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; SideToSide sub routine																			;
;-----------------------------------------------------------------------------------------------;
SideToSide:
	movlw	b'00000011'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111011'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00011100'
	movwf	Layer3
	movlw	b'11011011'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11100000'
	movwf	Layer3
	movlw	b'11011011'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movlw	b'00011100'
	movwf	Layer2
	movlw	b'11100000'
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00000011'
	movwf	Layer1
	movlw	b'11100000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00011100'
	movwf	Layer1
	movlw	b'11100000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00011100'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000011'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movlw	b'00011100'
	movwf	Layer2
	movlw	b'00000011'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'11100000'
	movwf	Layer1
	movlw	b'00000011'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111011'
	movwf	Layer4
	call	Output
	movlw	b'00011100'
	movwf	Layer1
	movlw	b'00000011'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; DiagAroundSides sub routine																			;
;-----------------------------------------------------------------------------------------------;
DiagAroundSides:
	movlw	b'00100000'
	movwf	Layer1
	movlw	b'01000000'
	movwf	Layer2
	movlw	b'10000000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'01000000'
	movwf	Layer1
	movlw	b'10000000'
	movwf	Layer2
	movlw	b'00010000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'10000000'
	movwf	Layer1
	movlw	b'00010000'
	movwf	Layer2
	movlw	b'00000010'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00010000'
	movwf	Layer1
	movlw	b'00000010'
	movwf	Layer2
	movlw	b'00000001'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000010'
	movwf	Layer1
	movlw	b'00000001'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000001'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movlw	b'00000100'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00000100'
	movwf	Layer2
	movlw	b'00100000'
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00000100'
	movwf	Layer1
	movlw	b'00100000'
	movwf	Layer2
	movlw	b'01000000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00100000'
	return
;-----------------------------------------------------------------------------------------------;
; Firework sub routine																			;
;-----------------------------------------------------------------------------------------------;
Firework:
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001000'
	movwf	Layer3
	movlw	b'00001111'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001101'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00001101'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001101'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00001101'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011100'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011100'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'10111000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'01010101'
	movwf	Layer1
	movlw	b'10110000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	movlw	b'00010100'
	movwf	Layer1
	movlw	b'01010101'
	movwf	Layer2
	movlw	b'10110000'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00010110'
	movwf	Layer2
	movlw	b'01010101'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00010110'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; CubeLight sub routine																			;
;-----------------------------------------------------------------------------------------------;
CubeLight:
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11100000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11101000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11110000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11110000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11101000'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11100000'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; LineAround sub routine																			;
;-----------------------------------------------------------------------------------------------;
LineAround:
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'11111011'
	movwf	Layer4
	call	Output
	movlw	b'00000100'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00100000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'01000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'10000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00010000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000010'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000001'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; LayerDrop sub routine																			;
;-----------------------------------------------------------------------------------------------;
LayerDrop:
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'10110110'
	movwf	Layer1
	movlw	b'01001001'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'10110110'
	movwf	Layer2
	movlw	b'01001001'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'01001001'
	movwf	Layer2
	movlw	b'10110110'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'01001001'
	movwf	Layer1
	movlw	b'10110110'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; LayerDrop2 sub routine																			;
;-----------------------------------------------------------------------------------------------;
LayerDrop2:
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'11110111'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'11110111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	movlw	b'11111111'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'11110111'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11110111'
	movwf	Layer2
	movlw	b'00001000'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; Spin sub routine																			;
;-----------------------------------------------------------------------------------------------;
Spin:
	movlw	b'01001001'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00100100'
	movwf	Layer1
	movlw	b'01001001'
	movwf	Layer2
	movlw	b'10010010'
	movwf	Layer3
	movlw	b'10011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11111111'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011001'
	movwf	Layer4
	call	Output
	movlw	b'10010010'
	movwf	Layer1
	movlw	b'01001001'
	movwf	Layer2
	movlw	b'00100100'
	movwf	Layer3
	movlw	b'00111001'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; SnakeLine sub routine																			;
;-----------------------------------------------------------------------------------------------;
SnakeLine:
	movlw	b'10010010'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'11011011'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'01101101'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011001'
	movwf	Layer4
	call	Output
	movlw	b'00100100'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'11011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'01101101'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11011011'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'10010010'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11011011'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'01101101'
	movwf	Layer3
	movlw	b'00111001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00100100'
	movwf	Layer2
	movwf	Layer3
	movlw	b'01111001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'01101101'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'01011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'11011011'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'10010010'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; SpiralDown sub routine																			;
;-----------------------------------------------------------------------------------------------;
SpiralDown:
	movlw	b'00000010'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000001'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'10011001'
	movwf	Layer4
	call	Output
	movlw	b'00000100'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00100000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'01000000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'10000000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00010000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00000100'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00100000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'01000000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'10000000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00010000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00000010'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00000001'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'01011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movwf	Layer3
	movlw	b'00111001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000100'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00100000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'01000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'10000000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00010000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000010'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000001'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001000'
	movwf	Layer3
	movlw	b'00011001'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; UpAndOut sub routine																			;
;-----------------------------------------------------------------------------------------------;
UpAndOut:
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'01011101'
	movwf	Layer1
	movlw	b'00000000'
	movwf	Layer2
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'10100010'
	movwf	Layer1
	movlw	b'01010101'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'10011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'10100010'
	movwf	Layer2
	movlw	b'01010101'
	movwf	Layer3
	movlw	b'01011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11110111'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'11111111'
	movwf	Layer3
	movlw	b'00111011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00001000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00000000'
	movwf	Layer1
	movlw	b'00001000'
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	movlw	b'00001000'
	movwf	Layer1
	movwf	Layer2
	movlw	b'00000000'
	movwf	Layer3
	movlw	b'00011011'
	movwf	Layer4
	call	Output
	return
;-----------------------------------------------------------------------------------------------;
; Output outputs the data to the LEDs. PORTB will be used to turn on transistors to ground the	;
; cathodes of the LEDs																			;
;-----------------------------------------------------------------------------------------------;
Output:
							; set the brightness
	movfw	Layer4			; put layer 4 into W
	andlw	b'00011000'		; get just bits 3 and 5
	movwf	Brightness		; put W into Brightness
	bcf		STATUS,C		; clear the carry flag
	rrf		Brightness,1	; rotate Brightness
	bcf		STATUS,C		; clear the carry flag
	rrf		Brightness,1	; and again
	bcf		STATUS,C		; clear the carry flag
	rrf		Brightness,1	; and again
	incf	Brightness,1	; add 1 to Brightess
	movfw	Layer4			; move layer 4 into W
	andlw	b'00000111'		; get just bits 0,1 and 2
	movwf	Time			; put W into Time
	incf	Time,1			; add 1 to Time
	bcf		STATUS,C		; clear the carry flag
	rlf		Time,1
	bcf		STATUS,C		; clear the carry flag
	rlf		Time,1
	bcf		STATUS,C		; clear the carry flag
	rlf		Time,1
	bcf		STATUS,C		; clear the carry flag
	rlf		Time,1
	bcf		STATUS,C		; clear the carry flag
	rlf		Time,1
Output2:
							; --- Top Layer ---
	clrf	PORTB			; clear port B
	movfw	Layer1			; move layer1 to W
	movwf	PORTC			; put W onto PortC
	btfsc	Layer4,7		; see if LED 9 should be on
	bsf		PORTB,4			; turn on LED 9
	bsf		PORTB,5			; turn on layer 1 buy outputing bit 5 of PortB
	movfw	Brightness		; put brightness into W
	call	Delay			; call the delay
							; brightness can be 1,2,3 or 4, so now we have to call the delay again
							; 4 - brightness with the LEDs off
	bcf		PORTB,5			; turn off layer 1
	movfw	Brightness		; put Brightness into W
	sublw	4				; sub W from 4
	btfss	STATUS,Z		; skip if the zero flag is set
	call	Delay			; call the delay
							; --- Middle Layer ---
	clrf	PORTB			; clear port B
	movfw	Layer2			; move layer2 to W
	movwf	PORTC			; put W onto PortC
	btfsc	Layer4,6		; see if LED 9 should be on
	bsf		PORTB,4			; turn on LED 9
	bsf		PORTB,6			; turn on layer 2 buy outputing bit 6 of PortB
	movfw	Brightness		; put brightness into W
	call	Delay			; call the delay
							; brightness can be 1,2,3 or 4, so now we have to call the delay again
							; 4 - brightness with the LEDs off
	bcf		PORTB,6			; turn off layer 2
	movfw	Brightness		; put Brightness into W
	sublw	4				; sub W from 4
	btfss	STATUS,Z		; skip if the zero flag is set
	call	Delay			; call the delay
	
							; --- Bottom Layer ---
	clrf	PORTB			; clear port B
	movfw	Layer3			; move layer3 to W
	movwf	PORTC			; put W onto PortC
	btfsc	Layer4,5		; see if LED 9 should be on
	bsf		PORTB,4			; turn on LED 9
	bsf		PORTB,7			; turn on layer 2 buy outputing bit 6 of PortB
	movfw	Brightness		; put brightness into W
	call	Delay			; call the delay
							; brightness can be 1,2,3 or 4, so now we have to call the delay again
							; 4 - brightness with the LEDs off
	bcf		PORTB,7			; turn off layer 3
	movfw	Brightness		; put Brightness into W
	sublw	4				; sub W from 4
	btfss	STATUS,Z		; skip if the zero flag is set
	call	Delay			; call the delay
	decfsz	Time			; decrement the Time regiester
	goto	Output2			; repeat
	return
;-----------------------------------------------------------------------------------------------;
; The Delay routine is called with a number put into the W register. This is in multiples of	;
; 100u seconds, (0.1m seconds)																	;
;-----------------------------------------------------------------------------------------------;
Delay:
	movwf	Delay3			; put W into Delay 3
Loop1:
							; After Delay2 decreses to 0, it is reset to..
	movlw	0x1				; put 1 into W
	movwf	Delay2			; put W into Delay2
Loop2:
							; After Delay1 decreses to 0, it is reset to E9h
	movlw	0x1D			; put 80 into W
	movwf	Delay1			; put W into Delay1
Loop3:
	decfsz	Delay1			; decrement Delay1
	goto	Loop3			; jump back to Loop3
	decfsz	Delay2			; decrement Delay2
	goto	Loop2			; jump back to Loop2
	decfsz	Delay3			; decrement Delay3
	goto	Loop1			; jump back to Loop1
	return
;-----------------------------------------------------------------------------------------------;
; Main program starts here																		;
;-----------------------------------------------------------------------------------------------;
Start:
	bsf		STATUS,RP0			; select register page 1
	movlw	0					; put 0 into W
	movwf	TRISC				; set portC all output
	movwf	TRISB				; set portB all outputs
	bsf		STATUS,RP1			; select Page 2,
	bcf		STATUS,RP0			; by setting RP1 in Status register and clearing RP0
	clrf	ANSEL				; select Digital I/O on port C
	clrf	ANSELH				; "		"
    bcf		STATUS,RP1			; back to Register Page 0
	bcf		EndCount,0			; reset the EndCount bit
	clrf	Counter				; clear the Counter register
Loop:
	call	CubeLight
	call	CubeLight
	call	CubeLight
	call	CubeLight
	call	CubeLight
	call	LayerDrop
	call	LayerDrop
	call	LayerDrop
	call	LayerDrop
	call	LayerDrop
	call	Spin
	call	Spin
	call	Spin
	call	Spin
	call	Spin
	call	SnakeLine
	call	SnakeLine
	call	SnakeLine
	call	SnakeLine
	call	SnakeLine
	call	LayerBrightness
	call	LayerBrightness
	call	LayerBrightness
	call	LayerBrightness
	call	LayerBrightness
	call	SpiralDown
	call	UpAndOut
	call	SpiralDown
	call	UpAndOut
	call	SpiralDown
	call	UpAndOut
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	BigSmall
	call	LineAround
	call	LineAround
	call	LineAround
	call	LineAround
	call	LineAround
	call	SideToSide
	call	SideToSide
	call	SideToSide
	call	SideToSide
	call	SideToSide
	call	FlashingLines
	call	FlashingLines
	call	FlashingLines
	call	FlashingLines
	call	FlashingLines
	call	Firework
	call	Firework
	call	Firework
	call	Firework
	call	Firework
	call	DiagAroundSides
	call	DiagAroundSides
	call	DiagAroundSides
	call	DiagAroundSides
	call	DiagAroundSides
	call	LayerDrop2
	call	LayerDrop2
	call	LayerDrop2
	call	LayerDrop2
	call	LayerDrop2
	call	CubeFill
	call	CubeFill
	call	CubeFill
	call	CubeFill
	call	CubeFill
	call	CubeFill
	goto	Loop
end- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 35271
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Varför länkar du inte bara till dom som gjort projektet? 
http://www.das-labor.org/index.en.php
Make magazine har gjort en jätte fin guide för detta projekt.
 
Synd att inte ge creds till som gjort allt jobb.
			
			
									
									
						http://www.das-labor.org/index.en.php
Make magazine har gjort en jätte fin guide för detta projekt.
Synd att inte ge creds till som gjort allt jobb.
Tror knappast citizendildo behövde följa en guide för att göra denna   
 
Sen finns det hur många som helst som gjort sånna här kuber tex:
http://www.instructables.com/id/LED-Cube-4x4x4/
			
			
									
									
						 
 Sen finns det hur många som helst som gjort sånna här kuber tex:
http://www.instructables.com/id/LED-Cube-4x4x4/
 
				








