Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Sesión 3. LED's, pulsadores e interruptores.
- * Ejercicio 5.
- * Written by : Sofía Andújar Muñoz
- * Date : 07/03/2021
- * Description: Vamos a hacer un programa que cuente del 0 al 9 y del
- * 9 al 0 y vuelva a empezar, visualizando la cuenta en el
- * 7 segmentos ($E00000)
- *-----------------------------------------------------------
- ORG $1000
- RETARDO EQU 50 * Pongo un retardo de 0.5 s
- SEG1 EQU $E00000
- START:
- MOVE.B #0,$E00002
- MOVE.B #0,$E00004
- MOVE.B #0,$E00006
- MOVE.B #0,$E00008
- MOVE.B #0,$E0000A
- MOVE.B #0,$E0000C
- MOVE.B #0,$E0000E * Así solo se ilumina el 7seg que estamos utilizando
- CLR.B D1 * En D1 llevaremos la cuenta del 0 al 9
- MOVE #TABLA,A1 * Guardamos en A1 la dirección de la tabla
- BUCLE JSR COUNT_UP * Primero tenemos que contar hacia arriba
- JSR COUNT_DOWN * Después contamos hacia abajo
- JMP BUCLE
- SHOW_NUM MOVE.B 0(A1,D1),SEG1 * Sumamos al contenido de A1 el valor 0 y el contenido de D1 y lo movemos a SEG1
- JSR WAIT
- RTS
- COUNT_UP JSR SHOW_NUM
- ADD.B #$1,D1
- CMP.B #$9,D1 * Si D1 es menor que 9 -> repetimos
- BCS COUNT_UP
- RTS
- COUNT_DOWN JSR SHOW_NUM
- SUB #$1,D1
- CMP.B #$0,D1 * Si D1 es mayor que 0 -> repetimos
- BHI COUNT_DOWN
- RTS
- WAIT MOVEM.L D0-D1,-(A7)
- MOVE.B #RETARDO,D1
- MOVE.B #23,D0
- TRAP #15
- MOVEM.L (A7)+,D0-D1
- RTS
- SIMHALT ; halt simulator
- ORG $2000
- TABLA DC.B $3F DIGITO 0 -> 0011_1111 Se encienden todos los segmentos menos el de en medio y el punto
- DC.B $06 DIGITO 1
- DC.B $5B DIGITO 2
- DC.B $4F DIGITO 3
- DC.B $66 DIGITO 4
- DC.B $6D DIGITO 5 * TABLA + 5
- DC.B $7D DIGITO 6
- DC.B $07 DIGITO 7
- DC.B $7F DIGITO 8
- DC.B $6F DIGITO 9
- DC.B $00 DIGITO OFF
- DC.B $80 PUNTO
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement