Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Sesión 3. LED's, pulsadores e interruptores.
- * Ejercicio 4.
- * Written by : Sofía Andújar Muñoz
- * Date : 07/03/2021
- * Description: Vamos a hacer un programa que mediante el uso
- * de LED's y pulsadores, encienda los LED's en fun-
- * fución de los pulsadores.
- *-----------------------------------------------------------
- ORG $1000
- RETARDO EQU 100 * Retardo de 1 segundo
- START:
- RESET MOVE.B #%00000000, $E00010 * Ponemos los LED's a 0
- MOVE.B #0,D2 * Ponemos un 0 en D2 ya que es el registro que usaremos para cargar el estado de los LED's
- INICIO MOVE.B #0,D1 * Ponemos en D1 un 0 que tendrá que ir de 0 a 7 continuamente
- BUCLE MOVE.B $E00014, D0 * Cargamos el estado de los pulsadores en D0
- BTST.L D1,D0 * Comprobamos si el bit D1 de los pulsadores vale cero
- BEQ LED_ON * Si vale 0 quedará Z=1 (con lo que saltaremos)
- VOLVER CMP.B #7,D1 * Si D1 vale 7 tenemos que devolver su valor a 0
- BEQ INICIO * Volvemos a recorrer los 8 bits de los pulsadores
- ADD.B #1,D1 * Sumamos un 1 a D1 hasta llegar a 7
- JMP BUCLE
- LED_ON BSET.L D1,D2 * Ponemos a 1 el bit de D2 que marca D1
- MOVE.B D2,$E00010 * Encendemos los LED's que marque D2
- CMP.B #%11111111, D2 * Si es igual pondremos todos los bits a 0 en la siguiente ejecución
- BEQ LED_OFF
- JMP VOLVER
- LED_OFF JSR SOLTARPUL
- MOVE.B D1,-(A7) * Podría ahorrarme este paso puesto que se va a resetear el valor de D1, pero así practico
- MOVE.B #RETARDO, D1 *
- MOVE.L #23, D0 * Preparamos el retardo
- TRAP #15 * Hacemos el retardo
- MOVE.B (A7)+,D1
- JMP RESET
- SOLTARPUL MOVE.B $E00014,D0
- BTST D1,D0
- BEQ SOLTARPUL * Mientras sea 0 es que sigue pulsado y lo retenemos en el bucle hasta que suelte
- RTS
- SIMHALT ; halt simulator
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement