Como cualquier sistema a microprocesador, también para los PIC es necesario
preparar un programa que le permita desarrollar su trabajo.

Un programa esta constituido por una lista de instrucciones en secuencia, cadauna de las cuales identifican unívocamente las funciones de base que los PIC estan en grado de desarrollar. Cada instrucción esta representada por un código operativo ( en ingles operation code o más brevemente opcode ) a 14 bit y es memorizada en una posición de memoria EEPROM. Tal memoria en el PIC16F84 dispone de 1024 posiciones cada una de las cuales esta en grado de contener una sola instrucción. Un ejemplo de opcode en anotación binaria viene reportado enseguida.

00 0001 0000 0000B

Pero es muy probable que opcode venga representado en notación hexadecimal
es decir:

0100H

Que representas exactamente el mismo valor pero en forma más breve. La letra H al final del valor 0100, indica el tipo de notación (hexadecimal). El mismo valor puede ser representado en assembler con la notación 0x100 derivada del lenguaje C o H´0100´.

Estos códigos, completamente privados de sentido para un ser humano, son los únicos que el PIC estan en grado de entender. Para facilitar la tarea al programador, se recurre a algunos instrumentos y convenciones para hacer las instrucciones más comprensibles.

La primera convención es aquella de asociar a cada opcode ( en total 35 para él PIC16F84 ) una sigla mnemónica es decir, una sigla que ayude a recordar el significado de la instrucción.

Regresando a nuestro ejemplo el opcode 0100H corresponde a la instrucción mnemónica CLRW que es la forma breve de la instrucción CLEAR W REGISTER es decir, acera el registro W (veremos mas adelante que significa).

Otras convenciones permiten de definir las variables, las constantes, las etiquetas (label) de referencia a las direcciones de memoria, etc. El conjunto de estas convenciones actas para facilitar la escritura de un programa para los PIC viene llamado lenguaje assembler. Un programa escrito en lenguaje assembler puede ser escrito en un PC utilizando cualquier procesador de palabra o editor en grado de generar archivos de tipo ASCII. Un archivo ASCII o, mejor dicho, un archivo de texto que contenga un programa en assembler viene llamado source o fuente assembler.

Una vez preparado nuestro source assembler (veremos mas adelante como), es necesario un programa en grado de traducir las instrucciones mnemónicas y todas las otras formas convencionales con las cuales fue escrito nuestro source en una serie de números ( los opcode ) reconocibles directamente por el PIC. Este programa se llama compilador assembler o assemblador.

En la figura siguiente viene esquematizado el flujo de operaciones y el archivo (file) que se genera para pasar de un source assembler a un PIC programado.

 

Como se dijo la primera operación a efectuar es escribir el sourse assembler y su memorización en un archivo ( file ) de texto con extensión .ASM. Para hacer esto hemos dicho que es necesario utilizar un editor ASCII es decir, un programa de escritura como por ejemplo el NOTEPAD.EXE de Windows o el EDIT.EXE de MS/DOS©. Es posible generar este archivo también con programas de elaboración de texto mas sofisticados tales como Word© o Wordperfec teniendo el cuidado de memorizar siempre el archivo producido in formato texto y no en formato nativo. Esto para evitar que se memoricen los caracteres de control de formateo del texto que el compilador assembler no esta en grado de tratar.

En nuestro primer experimento practico utilizaremos el archivo LED.ASM

El paso sucesivo es la compilación del source es decir, la transformación en opcode de los códigos mnemónicos o instrucciones assembler en los contenidos.

El compilador assembler que utilizaremos es el MPASMWIN.EXE producido por Microchip y disponible en CD-ROM incluido en nuestro Kit o también en site internet de Microchip (http://www.microchip.com).

Como es posible ver, además de nuestro source con extensión .ASM es necesario entregar al compilador un segundo archivo producido por Microchip con extensión .INC diferente según el tipo de PIC que estemos utilizando. En nuestro caso el archivo es el PIC16F84.INC.Esta source contiene algunas definiciones dependientes del chip utilizado que veremos mas adelante.

Durante la compilación del sourse, el compilador assembler genera una serie de archivos con nombre idéntico a la sourse pero con extensión distinta:

Los archivos .LST, .ERR vienen utilizados para el control de lo realizado en la compilacion. Solo el archivo .HEX viene utilizado realmente para programar el PIC. Veamos ahora como.

El archivo .HEX no es un archivo en formato binario y no corresponden directamente al contenido que deberá tener la EEPROM del PIC. Pero su formato si corresponde directamente a cuanto será transferido al PIC en forma legible y con unas instrucciones de más.

Sin entrar ahora en detalles es útil saber que formato es directamente reconocible por el programador de PIC que proveerá durante la programación a convertir en binario, el cual contiene además del opcode otras informaciones que se suman a las direcciones en las cuales serán transferidos los opcode.

En el paso sucesivo analizaremos nuestro primer source assembler y veremos buena parte de las convenciones utilizadas en el lenguaje assembler.



 

Página siguiente

 

Estadisticas