viernes, septiembre 24, 2010

Práctica 5: Uso de ISIS y Gestión de sub-rutinas


En esta práctica se realizó una simulación en Proteus ISIS del conteo en 16 bits realizado la sesión anterior, y se programó la gestión de sub-rutinas seleccionables por dos entradas de pulsos diferentes.



Como ejemplo se simuló un sistema mínimo de microcontrolador PIC con dos Push Button (RA0 y RA2)

Una vez hecho el diagrama, se cargó el programa de conteo en 16 bits que se realizó la sesión anterior (para más instrucciones acerca del método, revisar la práctica 2)

Como segunda parte, se modificó el programa del conteo en 16 bits para que aceptara precargar el valor que aparezca en el puerto D en el puerto C al presionar el botón PBA2 (que está conectado al bit RA2)

La lógica de programa a seguir es la siguiente:
  1. Configurar el programa de conteo 16 bits y las configuraciones extra
  2. Verificar el valor de RA0
    1. Si RA0==1:
               Ejecutar el programa de conteo en 16 bits de manera normal
    2. Si RA0==0:
      1. Verificar el valor de RA2
        1. Si RA2 ==1:
                          Copiar el valor de PORTD a WREG (Registro W)
                          Mover el valor de W a PORTC
                          Debounce a RA2
                          Regresar a 2
        2. Si RA2 == 0:
                          Regresar a 2

Opciónes extra de programa:
1.- Precargar no solo a PORTC sino también a PORTB.
Detectar RA2
     Precargar PORTC  (Programa anterior)
Debounce RA2
Esperar RA2==1
    Precargar PORTB con lo que haya en PORTD
Debounce RA2

2.- Seleccionar si se quiere o no precargar un valor en el PORT correspondiente
Utilizando RA3 como entrada de validación, si RA3 valida (RA3==1) entonces se hace la precarga del PORT correspondiente según el ciclo en el que se encuentre

Para el reporte:
Reportar cómo se realizó la simulación en Proteus ISIS haciendo énfasis en la experiencia individual (qué errores aparecieron en tu simulación, qué observaciones tuviste que hacer, qué cosas descubriste). Recuerden que el método de configuracion de Proteus ISIS ya está definido en el blog, por lo que no necesito que me reporten exhaustivamente el proceso de configuración, únicamente los pasos y explicado lo nuevo.
Reportar la elaboración del programa de precarga siguiendo los pasos que seguimos al elaborar el programa en grupo (Hacer el diagrama de flujo del prograna, seleccionar las herramientas del micro, seleccionar las configuraciones, hacer el código, depurarlo en MPLAB utilizando WATCH y Stimulus, y simularlo en Proteus ISIS)

Si decide realizar las opciones extra del programa:
Para el programa 1:
Describir la lógica de resolución que se utilizó

Para el programa 2:
Presentar la operación del programa (Qué hace el programa)
Mostrar el ciclo de desarrollo de la solución (diagrama de flujo, herramientas del micro utilizadas (no mencionadas antes) la depuración etc.)

En todos los casos entregar las líneas de código pertinentes comentadas (no es necesario  reportar todo el código) pero si adjuntar el archivo ASM para poderlo comprobar.


Archivos Adjuntos:

    Código suma 16 bits [versión clase]

2 comentarios:

Unknown dijo...

Hola profe xochi oye yo no entender el segundo prog. extra. Puede ser un boton que solamente cuando este presionado haga la precarga de datos y cuando no salte ese pedaso del programa??????????

Daniel Salcedo Peña dijo...

No sería un push button, más bien sería un switch. Mira, para el segundo programa extra, la entrada RA3 sería una entrada de validación, es decir, no se espera que se presione un botón, más bien se establece un estado y se verifica. Si se cumple un estado (RA3=1) se ejecuta una cosa, en caso contrario se ejecuta otra cosa.