Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

TP3: Contador Hexadecimal de 7 Segmentos con Control de Estado

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)


1. Product Backlog: Historias de Usuario

User Story 1 (US-01): Visualización y Conteo Hexadecimal en Puerto C o D

  • 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–9 y A–F).

Criterios de Aceptación (Acceptance Criteria):

  • 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 en 0.
  • AC 1.3 (Límite Descendente): Al decrementarse desde el valor 0, el contador salta automáticamente a F.
  • 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).

User Story 2 (US-02): Control de Sentido de Conteo y Pausa mediante Pulsador en RB0

  • Como cliente (Cátedra de Electrónica Digital II),
  • Quiero alternar la dirección del conteo y pausar la marcha leyendo el pin RB0 mediante la verificación de bits (btfsc / btfss),
  • Para comprobar el control de secuencia y estados mediante lectura por sondeo (polling).

Criterios de Aceptación (Acceptance Criteria):

  • 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 RB0 conmuta 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 RB0 para eliminar el rebote mecánico del pulsador y evitar cambios múltiples de estado no deseados.


2. Definition of Done (DoD) — Criterios de Aprobación de la Cátedra

Una historia de usuario se considera "Done" (Finalizada y Aprobada) cuando el Scrum Master (Ayudante) y el Product Owner (Docente) verifican los siguientes puntos:

  1. Uso Exclusivo de Ensamblador: El código está escrito 100% en Ensamblador (.asm), compila sin errores ni warnings y genera el archivo .hex.
  2. Cumplimiento de la Secuencia de Estados: El sistema responde al pulsador RB0 siguiendo strictly el orden: Ascendente -> Pausa -> Decremento -> Pausa.
  3. 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).
  4. Manejo Correcto de Tabla (PCL): La decodificación del display utiliza la instrucción addwf PCL, F y retorna con retlw sin desbordamiento de memoria ni saltos erráticos.
  5. Aislamiento Digital: Los registros ANSEL y ANSELH están configurados para garantizar que el pin RB0 funcione como entrada digital pura.
  6. 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors