Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Sesión 3. LED's, pulsadores e interruptores.
- * Ejercicio 6.
- * Written by : Sofía Andújar Muñoz
- * Date : 07/03/2021
- * Description: Vamos a hacer un programa que cuente del 0 al 59 y
- * vuelva a empezar, queremos que tarde un segundo.
- *-----------------------------------------------------------
- ORG $1000
- RETARDO EQU 100 * Pongo un retardo de 1 s
- SEG8 EQU $E0000E
- SEG7 EQU $E0000C
- START: MOVE.B #0,$E00000
- MOVE.B #0,$E00002
- MOVE.B #0,$E00004
- MOVE.B #0,$E00006
- MOVE.B #0,$E00008
- MOVE.B #0,$E0000A * Así solo se ilumina los 7seg que estamos utilizando
- CLR.B D1 * En D1 llevaremos la cuenta del 0 al 59
- MOVE.L #TABLA,A1 * Guardamos en A1 la dirección de la tabla
- BUCLE JSR COUNT
- CLR.B D1
- JMP BUCLE
- SHOW_NUM MOVE.L D1,-(A7)
- DIVU.W #10,D1 * Divido D1 entre 10 quedando el resto (unidades) en los 16 bits más significativos
- MOVE.B 0(A1,D1),SEG7 * Muestro en el display de la izquierda el cociente de DIVU (decenas)
- SWAP.W D1
- MOVE.B 0(A1,D1),SEG8 * Y en el display de la derecha el resto de DIVU (las unidades)
- MOVE.L (A7)+,D1
- RTS
- COUNT JSR SHOW_NUM
- JSR WAIT
- ADD.B #$1,D1
- CMP.B #60,D1 * Si D1 es menor que 60 -> repetimos
- BCS COUNT
- RTS
- WAIT MOVEM.L D0-D1,-(A7)
- MOVE.L #RETARDO,D1
- MOVE.L #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
- 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