|
|
|
;Cubo de leds 4x4x4
;27/10/09
;Pereyra Molina Pablo,Rodriguez Kenny Federico
;------------------------------------------------
inicio:
;------------------------------------------------
call SetUp
;------------------------------------------------
menu:
;------------------------------------------------
call Juego1
call Juego2
call Juego3
call Juego4
call juego5
call juego6
call juego7
call juego8
jmp menu
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 1 cubo interior
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego1:
;------------------------------------------------
mov P1,#003h ;Dos pisos de arriba
call rota
mov P1,#009h ;Dos pisos del medio
call rota
mov P1,#00Ch ;Dos pisos de abajo
call rota
mov P1,#009h ;Dos pisos del medio
call rota
djnz r3,juego1
ret
;------------------------------------------------
rota:
;------------------------------------------------
mov r7,#3
mov DPTR,#cubo
rota1: clr A
movc A,@A+DPTR
mov P0,A
call demora2
call demora2
inc dptr
DJNZ r7,rota1
mov P0,#000h
mov r7,#3
rota2: clr A
movc A,@A+DPTR
mov P2,A
call demora2
call demora2
inc dptr
DJNZ r7,rota2
mov P2,#000h
ret
;------------------------------------------------
SetUp:
;------------------------------------------------
mov P0,#00h
mov P1,#00h
mov P2,#00h
mov P3,#00h
mov R5,#04h
mov R4,#0Ah
mov R3,#02h
ret
;------------------------------------------------
demora:
;------------------------------------------------
; ret
MOV R0,#0FFh
demo1 MOV R2,#020h
demo0 DJNZ R0,demo0
DJNZ R1,demo1
RET
;------------------------------------------------
demora2:
;------------------------------------------------
; ret
MOV R0,#0DFh
demo3 MOV R2,#020h
demo2 DJNZ R0,demo2
DJNZ R1,demo3
RET
cubo:
DB 00110011b ;P0
DB 01100110b
DB 11001100b ;p0
DB 11001100b ;p2
DB 01100110b
DB 00110011b ;P2
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 2 Persecucion
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
juego2:
call setup
lechori:
mov p0,#00010000b
mov p2,#00001000b
call demora
mov p0,#00110000b
mov p2,#00001100b
call demora
mov p0,#01110000b
mov p2,#00001110b
call demora
mov p0,#11110000b
mov p2,#00001111b
call demora
mov p0,#00h
mov p2,#00h
call demora
mov p0,#10000000b
mov p2,#00000001b
call demora
mov p0,#10001000b
mov p2,#00010001b
call demora
mov p0,#10001001b
mov p2,#10010001b
call demora
mov p0,#10011001b
mov p2,#10011001b
call demora
djnz R4,lechori
call setup
ret
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 3 Espiral
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego3:
;------------------------------------------------
mov P1,#000h
mov P0,#0ffh
mov P2,#0ffh
mov DPTR,#espi1
mov r7,#5
cambio1 clr A
movc A,@A+DPTR
mov P2,A
call demora
inc dptr
DJNZ r7,cambio1
mov r7,#6
cambio2 clr A
movc A,@A+DPTR
mov P0,A
call demora
inc dptr
DJNZ r7,cambio2
mov r7,#3
cambio3 clr A
movc A,@A+DPTR
mov P2,A
call demora
inc dptr
DJNZ r7,cambio3
mov r7,#2
cambio4 clr A
movc A,@A+DPTR
mov P0,A
call demora
inc dptr
DJNZ r7,cambio4
mov DPTR,#espi2
mov r7,#3
cambi1 clr A
movc A,@A+DPTR
mov P2,A
call demora
inc dptr
DJNZ r7,cambi1
mov r7,#3
cambi2 clr A
movc A,@A+DPTR
mov P0,A
call demora
inc dptr
DJNZ r7,cambi2
mov r7,#6
cambi3 clr A
movc A,@A+DPTR
mov P2,A
call demora
inc dptr
DJNZ r7,cambi3
mov r7,#5
cambi4 clr A
movc A,@A+DPTR
mov P0,A
call demora
inc dptr
DJNZ r7,cambi4
DJNZ R5,Juego3
ret
espi2:
DB 00000000B ;P2
DB 00100000B
DB 01100000B ;p2
DB 00000100B ;p0
DB 00000110B
DB 00000111B ;P0
DB 01110000B ;p2
DB 01110001B
DB 01110011B
DB 01110111B
DB 01111111B
DB 11111111B ;p2
DB 00001111B ;p0
DB 10001111B
DB 11001111B
DB 11101111B
DB 11111111B ;p0
espi1:
DB 11111110B ;P2
DB 11111100B
DB 11111000B
DB 11110000B
DB 01110000B ;P2
DB 11110111B ;P0
DB 01110111B
DB 00110111B
DB 00010111B
DB 00000111B
DB 00000110B ;P0
DB 01100000B ;P2
DB 01000000B
DB 00000000B ;P2
DB 00000010B ;P0
DB 00000000B ;P0
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 4 Remolino
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego4:
;------------------------------------------------
mov P1,#000h
mov P0,#10000100b
mov P2,#00100001b
call demora
mov P0,#01000100b
mov P2,#00100010b
call demora
mov P0,#00100010b
mov P2,#01000100b
call demora
mov P0,#00010010b
mov P2,#01001000b
call demora
mov P0,#00000011b
mov P2,#11000000b
call demora
mov P0,#00001100b
mov P2,#00110000b
call demora
djnz R4,juego4
call setup
ret
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 5 Barrido
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego5:
;------------------------------------------------
mov P1,#000h ;habilita los 4 pisos
mov P2,#00Fh ;-*-*-*-*-*-*-*-*
call demora ; ;
mov P2,#0FFh ;hace un barrido;
call demora ;prendiendo todo;
mov P0,#00Fh ;de un lado a ;
call demora ;otro ;
mov P0,#0FFh ; ;
call demora ;*-*-*-*-*-*-*-*
mov P1,#001h ;-*-*-*-*-*-*-*-*
call demora ;
mov P1,#003h ;hace un barrido
call demora ;apagando todo
mov P1,#007h ;de abajo
call demora ;a arriba
mov P1,#00Fh ;
call demora ;*-*-*-*-*-*-*-*
call barrido1
mov P0,#0FFh ;*-*-*-*-*-*-*-*
mov P2,#0FFh ;
call demora ;hace un barrido
mov P1,#0FEh ;prendiendo todo
call demora ;de abajo
mov P1,#0FCh ;a arriba
call demora ;
mov P1,#0F8h ;
call demora ;
mov P1,#0F0h ;
call demora ;*-*-*-*-*-*-*-*
mov r6,#4 ;*-*-*-*-*-*-*-*
mov DPTR,#barri2
barri: clr A ;hace un barrido
movc A,@A+DPTR ;apagando
mov P0,A ;progresivamente
mov P2,A ;de un lado
call demora ;a otro
inc dptr ;
DJNZ r6,barri ;*-*-*-*-*-*-*-*
call barrido2
DJNZ R5,juego5
call setup
ret
;------------------------------------------------
barrido1:
;------------------------------------------------
mov P1,#000h
mov P0,#011h ;hace un barrido
mov P2,#011h ;de un lado a otro
call demora
mov P0,#022h
mov P2,#022h
call demora
mov P0,#044h
mov P2,#044h
call demora
mov P0,#088h
mov P2,#088h
call demora
ret
;------------------------------------------------
barrido2:
;------------------------------------------------
mov P0,#088h ;hace otro barrido
mov P2,#088h ;para el lado contrario
call demora ;del anterior
mov P0,#044h
mov P2,#044h
call demora
mov P0,#022h
mov P2,#022h
call demora
mov P0,#011h
mov P2,#011h
call demora
mov P1,#0FFh
mov P0,#000h
mov P2,#000h
ret
barri2:
DB 01110111B
DB 00110011B
DB 00010001B
DB 00000000B
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 6 ZigZag
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego6:
;------------------------------------------------
mov P1,#005h
call mover
mov P1,#00Ah
call mover
DJNZ R5,juego6
call setup
ret
;------------------------------------------------
mover:
;------------------------------------------------
mov P0,#0F0h
mov P2,#0F0h
call demora
call demora
mov P0,#00Fh
mov P2,#00Fh
call demora
call demora
ret
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 7 Cubo expansivo
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego7:
;------------------------------------------------
call move1
call move2
DJNZ R5,juego7
call setup
ret
;------------------------------------------------
move1:
;------------------------------------------------
mov P1,#00Eh ;prende
mov P2,#001h ;un punto
mov P0,#000h ;en una
call demora ;esquina
mov P1,#00Ch ;prende
mov P2,#033h ;un cubo
call demora ;de 2x2x2
mov P1,#008h ;prende
mov P2,#077h ;un cubo
mov P0,#007h ;de 3x3x3
call demora ;
mov P1,#000h ;prende
mov P2,#0FFh ;un cubo
mov P0,#0FFh ;de 4x4x4
call demora ;
mov P1,#001h ;prende
mov P2,#0E0h ;un cubo
mov P0,#0EEh ;de 3x3x3
call demora ;
mov P1,#003h ;prende
mov P0,#0CCh ;un cubo
mov P2,#000h ;de 2x2x2
call demora ;
mov P1,#007h ;prende
mov P0,#080h ;un punto
call demora ;en una esquina
mov P0,#040h ;mueve
call demora ;el
mov P0,#020h ;punto
call demora ;a la
mov P0,#010h ;esquina
call demora ;contraria
ret
;------------------------------------------------
move2:
;------------------------------------------------
mov P1,#003h ;prende
mov P0,#033h ;un cubo
call demora ;de 2x2x2
mov P1,#001h ;prende
mov P0,#077h ;un cubo
mov P2,#070h ;de 3x3x3
call demora ;
mov P1,#000h ;prende
mov P0,#0FFh ;un cubo
mov P2,#0FFh ;de 4x4x4
call demora ;
mov P1,#008h ;prende
mov P0,#00Eh ;un cubo
mov P2,#0EEh ;de 3x3x3
call demora ;
mov P1,#00Ch ;prende
mov P0,#000h ;un cubo
mov P2,#0CCh ;2x2x2
call demora ;
mov P1,#00Eh ;prende
mov P2,#008h ;un punto
call demora ;en la esquina
mov P2,#004h ;mueve
call demora ;el punto
mov P2,#002h ;a la
call demora ;esquina
mov P2,#001h ;contraria
ret
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; Juego 8 Lluvia
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;------------------------------------------------
juego8:
;------------------------------------------------
mov TMOD,#01h
setb P0.2
call bajar
setb P2.6
call bajar
setb P0.0
call bajar
setb P2.2
call bajar
setb P2.7
call bajar
setb P0.3
call bajar
setb P0.5
call bajar
setb P2.4
call bajar
setb P0.1
call bajar
setb P2.1
call bajar
setb P2.5
call bajar
setb P0.4
call bajar
setb P0.7
call bajar
setb P0.6
call bajar
setb P2.0
call bajar
setb P2.3
call bajar
djnz R5,juego8
call setup
ret
;------------------------------------------------
bajar:
;------------------------------------------------
mov P1,#007h
call demora3
mov P1,#00Bh
call demora3
mov P1,#00Dh
call demora3
mov P1,#00Eh
call demora3
mov P1,#00Fh
mov P0,#000h
mov P2,#000h
ret
;------------------------------------------------
demora3:
;------------------------------------------------
mov TH0,#high(-60000)
mov TL0,#low(-60000)
setb TR0
flag: jnb TF0,flag
clr TR0
clr TF0
ret
end |
|
|
|
|
|
|