miércoles, 8 de mayo de 2013

Secuencia Auto Increíble

Descripción 

Una efecto de luces muy conocido es la de KITT, el auto increible, el cual se distinguia por asemejar un haz de luz que recorria toda la parte inferior de su cofre de lado a lado y luego formada dos haces que se cruzaban y asi sucesivamente 

Material necesario

  • Interfase BDM
  • Microcontrolador MC9S08SE8
  • 8 LEDs (preferiblemente rojos dado a que ese es el color original)

Programación

Para esta secuencia se realizara un deslizamiento del bit activo hacia un lado y luego hacia el otro y posteriormente dos haces de luz que se cruzaran 2 veces

Codigo:

_Startup:
            LDHX   #RAMEnd+1        ; initialize the stack pointer
            TXS
            CLI                     ; enable interrupts
            
            MOV #$FF,PTBDD          ;Habilitar puerto PTBD como salida
            CLR PTBD
            
mainLoop:
            LDA #$C0
            BSR CICLO_1
            LDA #$03
            BSR CICLO_2
            BSR CICLO_3
            BSR CICLO_3
            feed_watchdog
            BRA    mainLoop
                        
CICLO_1:
            STA PTBD
            BSR RETARDO
            LSRA
            BNE CICLO_1
            RTS
CICLO_2:
            STA PTBD
            BSR RETARDO
            LSLA
            BNE CICLO_2
            RTS
CICLO_3:     
            LDA #$81
            STA PTBD
            BSR RETARDO
            LDA #$42
            STA PTBD
            BSR RETARDO
            NSA
            STA PTBD
            BSR RETARDO
            LDA #$18
            STA PTBD
            BSR RETARDO
            LDA #$24
            STA PTBD
            BSR RETARDO
            NSA
            STA PTBD
            BSR RETARDO
            LDA #$81
            STA PTBD
            BSR RETARDO
            RTS
             
RETARDO:
            CLR $80
            CLR $81
            MOV #1,$82              ; Podemos acelerar el proceso de conteo cambiando "MOV #[numero],$82"
            
            VOLVER:
            DBNZ    $80,VOLVER
            feed_watchdog
            DBNZ    $81,VOLVER
            feed_watchdog
            DBNZ    $82,VOLVER
            feed_watchdog
             
            RTS

Conclusion

Como se puede apreciar solo con ver el codigo es una secuencia muy sencilla, mas que nada nos ayuda a practicar el uso de llamado de subrutinas, manipulación y movimiento de bits con un menos numero de instrucciones.

Lo ideal es que ustedes tomen este código e intenten innovarlo, ya sea desarrollando secuencias mas conplejas, usando los demas puertos o simplificandolo y asi ahorrandonos espacio en la memoria, lo cual a la larga sera de gran ayuda en proyectos futuros.

1 comentario: