miércoles, septiembre 08, 2010

Práctica 4: Programación del PIC16F877A

Una vez vistas las bases teóricas necesarias (la lógica de Boole, las restricciones del lenguaje ensamblador y las restricciones hardware) se realizó una primera implementación de un problema en el microcontrolador: Conteo numérico sobre 16 bits.

El primer paso en la implementación de una aplicación en un microcontrolador es definir nuestro problema. para esto nos es muy útil un diagrama de flujo. Con el diagrama de flujo podemos observar la secuencia de acciones que llevará nuestro programa sin tener que escribir código. Además podemos desmenuzar el diagrama de flujo hasta el nivel de las instrucciones de programación, para después solo implementar el código en las especificaciones de cada lenguaje.

En este caso utilizaremos el ejemplo que desarrollamos de la suma en 16 bits con un procesador de 8 bits y operaciones restringidas a suma, comparación a 0, y álgebra de Boole.
Una vez realizado el diagrama de flujo, procedemos a decidir qué herramientas utilizaremos, es decir, qué periféricos del PIC utilizar, qué comandos utilizar para implementar cada operación del diagrama de flujo etc.
En nuestro ejemplo, debemos:
  • Apartar 2 bytes en la memoria con el uso de etiquetas
  • Usar el comando ADDLW para que el bit Carry sea modificado
  • Revisar el bit Carry con BTFSS y BTFSC
  • Usar etiquetas y el comando GOTO para saltar el flujo del programa
  • Configurar el sistema (Entrada/salida en puertos, inicializar las variables)
  • Detectar pulso de entrada y aplicar debounce al final del ciclo para reiniciar.
Una vez decididas las herramientas, empezamos a redactar el código. Una buena guía introductoria al lenguaje MPASM, su sintaxis y reglas la pueden encontrar en este artículo que modifiqué de varias fuentes

Una vez escrito el código fuente, es necesario depurarlo y compilarlo. La depuración nos permitirá saber cómo funciona el código paso por paso, y revisar línea por línea la ejecución del programa. Utilizamos el software MPLAB de Microchip para la programación y depuración. Puede consultar una guía sobre la configuración y el uso de MPLAB en este link

En esta sesión se agregó el uso de la herramienta "Stimulus workbook". Esta herramienta nos permite simular la aparición de pulsos en los puertos digitales del microcontrolador.

PARA EL REPORTE
Para este reporte se debe presentar el proceso de construcción del programa "Suma 16 bits". Con todos los pasos que fuimos siguiendo en grupo, justificando cada decisión y comentando cada línea del código.

Les adjunto el código fuente que contiene ambas rutinas de final de programa, pero sin un solo comentario. Ustedes deben indicar qué programa les tocó y deben proponer otra manera de realizar la misma rutina de final de programa que funcione (Para eso deben depurar su rutina dentro del programa)

Archivos:

No hay comentarios: