pregunta 5
DESCRIPTION
ejercicio en codigo assemblerTRANSCRIPT
PREGUNTA 5
MODIFICAR EL PROBLEMA ANTERIOR, AHORA CONSIDERANDO UN DISPLAY DE 7 SEGMENTOS. AL PRESIONAR Y SOLTAR EL PULSADOR SE VISUALIZARÁ: 0 1 2 … 9 A B C D E F 0 1 2… SUGERENCIA: UTILIZAR UN DECODIFICADOR BCD 7447 A LA SALIDA DEL PUERTO B DEL MICROCONTROLADOR.
/* * AssemblerApplication5.asm *PROBLEMA 5:CONTADOR ASCENDENTE DESCENDENTE 0-15 * Created: 04/09/2015 09:33:18 a.m. * Author: jalvarado */
.CSEG.ORG $00 rjmp INICIO INICIO: LDI R16,0X00 ; configuro el puerto b como el pulsador OUT DDRB,R16 ; LDI R16,0XFF OUT DDRC,R16 ; configuro el puerto c como salida al display LDI R30,0X00 ; guardo el min valor en el registro para luego comparar LDI R31,17 ; guardo el max valor en el registro para luego comparar
UP: ; me indica el pusador en alto SBIS PINB,0
RJMP UP L1: SBIC PINB,0 ; me indica el pusador en bajo
RJMP L1 RJMP UP_UNIDADES ;actico el pulsador y cuenta ascedente UP1:
SBIS PINB,0 RJMP UP1
L2: SBIC PINB,0 RJMP L2 RJMP DOWN_UNIDADES
UP_UNIDADES: ;contador ascendente
INC R16 OUT PORTC,R16 CP R16,R31 BREQ DOWN_UNIDADES ; si el contador llega a 15 salta a desendente(down unidades) RJMP UP
DOWN_UNIDADES: ;contador descendente DEC R16 OUT PORTC,R16 CPI R16,-1 BREQ UP_UNIDADES ; si el contador llega a 0 salta a ascendente (up unidades) RJMP UP1
Conclusiones:
Para contar con un pulsador de tal manera que se activa el conteo en pulsar y soltar las instrucciones SBIS , SBIC son las adecuadas.
Según mi experiencia en la simulación el display en bcd es más adecuado que el display 7 segmentos en este problema