Nota: Esta página es una propuesta; cada docente ajustará todo el contenido de acuerdo a los requerimientos de su comisión.
Asignatura: Electrónica Digital II
Microcontrolador: PIC16F887
Lenguaje: Ensamblador (ASM)
- Como estudiante de Electrónica Digital II (Dev Team Member),
- Quiero enviar el patrón del contador a un display de 7 segmentos mapeado al Puerto C o al Puerto D mediante una tabla de memoria en Ensamblador (
addwf PCL, F), - Para mostrar de forma continua la secuencia de caracteres hexadecimales (
0–9yA–F).
- AC 1.1: El display debe proyectar ordenadamente la secuencia completa:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. - AC 1.2 (Límite Ascendente): Al incrementarse desde el valor
F, el contador se reinicia automáticamente en0. - AC 1.3 (Límite Descendente): Al decrementarse desde el valor
0, el contador salta automáticamente aF. - AC 1.4: El tiempo de permanencia entre cada número se controla mediante subrutinas de retardo por software anidadas en Ensamblador (aprox. 1 s).
- Como cliente (Cátedra de Electrónica Digital II),
- Quiero alternar la dirección del conteo y pausar la marcha leyendo el pin
RB0mediante la verificación de bits (btfsc/btfss), - Para comprobar el control de secuencia y estados mediante lectura por sondeo (polling).
-
AC 2.1 (Estado Inicial): El microcontrolador inicia la ejecución contando automáticamente de forma Ascendente (
0->F). -
AC 2.2 (Pulsación 1 - Pausa): Al presionar el pulsador en
RB0, el contador se Detiene / Congela en el dígito actual mostrado en el display. -
AC 2.3 (Pulsación 2 - Decremento): Al presionar el pulsador por segunda vez, el conteo Reanuda a partir de ese mismo dígito, pero en sentido Descendente (
F->0). -
AC 2.4 (Ciclo Continuo de Estados): Cada pulsación posterior sobre
RB0conmuta cíclicamente el comportamiento:Ascendente -> Pausa -> Decremento -> Pausa -> Ascendente...
-
AC 2.5 (Filtro Antirrebote): Se debe aplicar una subrutina de retardo por software (aprox. 20–30 ms) tras detectar el cambio en
RB0para eliminar el rebote mecánico del pulsador y evitar cambios múltiples de estado no deseados.
Una historia de usuario se considera "Done" (Finalizada y Aprobada) cuando el Scrum Master (Ayudante) y el Product Owner (Docente) verifican los siguientes puntos:
- Uso Exclusivo de Ensamblador: El código está escrito 100% en Ensamblador (.asm), compila sin errores ni warnings y genera el archivo
.hex. - Cumplimiento de la Secuencia de Estados: El sistema responde al pulsador
RB0siguiendo strictly el orden:Ascendente->Pausa->Decremento->Pausa. - Continuidad del Conteo: Al salir del estado de pausa, el conteo retoma exactamente en el último valor que quedó fijo en el display (no vuelve a cero ni se resetea).
- Manejo Correcto de Tabla (PCL): La decodificación del display utiliza la instrucción
addwf PCL, Fy retorna conretlwsin desbordamiento de memoria ni saltos erráticos. - Aislamiento Digital: Los registros
ANSELyANSELHestán configurados para garantizar que el pinRB0funcione como entrada digital pura. - Hardware y Simulación:
- La simulación funciona correctamente (ej. en Proteus).
- El prototipo montado en protoboard responde fluidamente sin falsos disparos por rebote del botón.