Software
;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
 
 
 
Hoy habia 9 visitantes (9 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis