3-Estructura de MPLAB

INTRODUCCIÓN AL MPLAB Y A LA ESTRUCTURA DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR 1. Introducción al MPLAB. El software MP

Views 58 Downloads 0 File size 696KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INTRODUCCIÓN AL MPLAB Y A LA ESTRUCTURA DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR 1. Introducción al MPLAB. El software MPLAB de Microchip, es una herramienta de desarrollo para los Microcontroladores PIC, Desde la familia más pequeña (12Cxxx) hasta las de último surgimiento (18Fxxx). Una de las aplicaciones básicas del MPLAB es la edición y simulación de programas, que facilita al desarrollador la programación y depuración de aplicaciones con estos dispositivos. Una gran ventaja del MPLAB de desarrollo, radica en que es un software muy completo y de distribución libre, y que se puede obtener desde la página de Microchip, www.microchip.com. Se pretende que el alumno interesado en desarrollar aplicaciones con Microcontroladores PIC, se introduzca de una manera sencilla al manejo de este software, para que su trabajo sea lo más agradable posible. En principio, se mostrarán las opciones más importantes para empezar a trabajar, siendo tarea del desarrollador el descubrir nuevas opciones de trabajo bajo el ambiente del MPLAB. Ejecución del MPLAB. Para entrara a la aplicación MPLAB, se puede seleccionar desde los iconos de acceso directo, o desde INICIO/TODOS LOS PROGRAMAS/MPLAB IDE como se muestra en la Figura 1-1.

Figura 1-1. Accesos al programa MPLAB.

Inmediatamente después se presenta la imagen de la portada de este software, y posteriormente el ambiente de trabajo del MPLAB con una ventana para la edición de programas como se muestra en la Figura 1-2.

Figura 1-2. Presentación de página de edición de programas.

2. Configuración del MPLAB. NOTA: Se debe crear una carpeta en el directorio raíz con el nombre que considere el programador, donde se irán guardando todos los programas que se vayan diseñando. La trayectoria absoluta o path del fichero no puede superar la longitud máxima de 62 caracteres. La configuración del ambiente de desarrollo es importante cuando se va a utilizar por primera vez, o cuando se hace cambio de Microcontrolador. Quede claro que el siguiente paso solamente se realiza en los casos anteriormente mencionados. Para elegir el tipo de Microcontrolador debe acceder al menú Configure / Select Device y seleccionar PIC16F876A, tal y como se muestra en la Figura 2-1.

Figura 2-1. Selección del Microcontrolador.

A continuación hay que seleccionar el simulador, para ello activar el menú Debugger / Select Tool / MPLAB SIM como se muestra en la Figura 2-2.

Figura 2-2. Selección del simulador.

La frecuencia de trabajo del MPLAB SIM debe de coincidir con la del circuito a simular. Para seleccionarlo acceder a Debugger / Setting / Clock y después comprobar que esta a 4MHz tal y como se muestra en la Figura 2-3.

Figura 2-3. Selección de la frecuencia del simulador para el MPLAB.

Crear un nuevo archivo fuente, para ello ir al menú File /New. Se esta forma se accede a la pantalla de edición en blanco donde se puede escribir el primer programa como se muestra en la Figura 2-4.

Figura 2-4. Pantalla de edición del programa MPLAB IDE.

Ahora se puede dar nombre al fichero fuente accediendo al menú File/Save As… Donde aparecerá un cuadro de diálogo que solicita el nombre del archivo con la terminación .asm y guardar en la carpeta creada anteriormente. La Figura 2-5 muestra la forma de guardar el fichero fuente.

Figura 2-5. Pantalla para guardar el archivo fuente.

Para trabajar más adecuadamente es conveniente visualizar el número de cada línea. Para ello basta con seleccionar en el menú Edit/Properties. Dentro de la ventana Editor Properties se activa las opciones que se indican en la Figura 2-6.

Figura 2-6. Propiedades de la pantalla de edición.

3. Ensamblador del Programa. Una vez terminado de editar el programa hay que proceder a ensamblar el archivo fuente con terminación .asm. Para ello, hay que seleccionar el menú Project/Quickbuild. En esta etapa se realiza en forma automática el ensamblado del archivo fuente y el traspaso de éste a la memoria de simulación. Esto se observa en la Figura 3-1.

Figura 3-1 Ensamblado del archivo fuente.

Al finalizar el ensamblado, aparecerá una pantalla MPLAB – [Output] en la que indica la ocurrencia de uno de estos dos casos: 

Si al final de la escritura indica “BUILD SUCCEDED” se confirma que el ensamblado se ha producido con éxito. Por tanto, ya se está en condiciones de pasar a la simulación.



Si al final de esta pantalla indica “BUILD FAILED” se advierte de la ocurrencia de errores. El proceso de ensamblado ha generado un archivo de errores con descripción de los mismos. Si se hace doble clic sobre la línea que muestra el error, el cursor saltará directamente a la línea de código donde se encuentra éste. Una vez subsanado los errores hay que volver a ensamblar el archivo fuente.

4. Fichero hexadecimal resultante. El proceso de ensamblado produce un fichero ejecutable con extensión (*.hex) que será el que posteriormente se grabará en la memoria de programa del Microcontrolador PIC mediante el grabador. Este archivo únicamente contiene números hexadecimales que es la forma de representar los unos “1” y ceros “0” binarios de la información que se grabará posteriormente en la memoria de programa del Microcontrolador. 5. Ventanas de visualización. Una vez ensamblado el código fuente, el entorno ya está preparado para la simulación del programa. Para que este trabajo sea más eficaz conviene activar las ventanas que indican el estado de todas las memorias y registros del sistema, las principales ventanas de simulación se encuentran dentro del menú View y son:    

Program Memory Memoria de Programa. Special Function Registers Registros de propósito especifico SFR. File Registers Memoria RAM de datos. Disassembly Código Máquina y archivo fuente.

Ventana de visualización de la memoria de programa. Se entra a la ventana activando el menú View / Program memory. En esta se puede apreciar el tamaño de memoria que ocupa las instrucciones, el código de operación de cada instrucción y la dirección de memoria de programa que se le ha asignado a cada etiqueta. La Figura 5-1 muestra la ventana de memoria de programa.

Figura 5-1. Ventana de visualización de la memoria de programa.

Ventana Disassembly Esta ventana es muy similar a la de memoria de programa, ya que se incluye el archivo fuente. Para activar esta ventana se entra al menú View / Disassembly como se muestra en la Figura 5-2.

Figura 5-2. Ventana Disassembly Listing.

Ventana de visualización de los registros de propósito especifico SFR. Para visualizar los registros especiales del SFR se activa en el menú View / Special Function Registers tal y como se muestra en la Figura 5-3. En esta ventana suele ser interesante visualizar la columna binaria Binary Para ello, pulsar el botón derecho del ratón y elegir la opción Properties, saldrá una ventana y así poder señalar la casilla Binary y pulsando sobre el botón Move Up o Move Down, la columna Binary se podrá desplazará.

Figura 5-3 Ventana de visualización de los registros especiales.

Ventana de contenido de la memoria RAM. Esta ventana muestra una lista de todos los registros de la memoria RAM (de propósito específico y propósito general) del Microcontrolador simulado. Para visualizar la ventana de contenido de la memoria RAM de datos hay que seleccionar View / File Registers como se muestra en la Figura 5-4.

Figura 5-4. Ventana con el contenido de la memoria RAM.

ESTRUCTURA GENERAL DE UN PROGRAMA EN ENSAMBLADOR DE MPLAB. Físicamente un programa representa un archivo que se encuentra en el disco de la computadora (o en la memoria, si es leído por un Microcontrolador PIC) y se escribe de acuerdo a las reglas del ensamblador o algún otro lenguaje que consiste de signos alfabéticos y nemónicos. Al escribir el programa se debe de seguir esas reglas para que un programa interprete y convierta cada instrucción como una serie de ceros y unos que tenga un significado para la lógica interna del Microcontrolador.

La conversión se encuentra en un archivo ejecutable y en un archivo con la extensión .Hex, donde .Hex significa hexadecimal, el cual posteriormente se grabará en el Microcontrolador para su ejecución.

El programa fuente, en lenguaje ensamblador, se hace en un editor de texto y tiene los siguientes elementos básicos.     

Etiquetas. Instrucciones. Operandos. Directivas. Comentarios.

Etiquetas. Una etiqueta es una designación textual (generalmente una palabra fácil de leer) para cada una de las líneas de programa. Una etiqueta inicia con una letra del alfabeto o con un carácter underline “_”. La longitud de la etiqueta normalmente es de 32 caracteres máximo e inicia en la primera columna.

Instrucciones. Las instrucciones ya están definidas por el Microcontrolador específico a usar, de manera tal que solo resta seguir su uso en el lenguaje ensamblador. La forma de escribir las instrucciones se le llama sintaxis de las instrucciones. En el ejemplo siguiente se puede reconocer un error de escritura donde las instrucciones monlp y gotto NO existen para el Microcontrolador PIC16F876A.

Instrucciones escritas correctamente en lenguaje ensamblador. movlw b’10101010’ movwf INICIO

Instrucciones escritas incorrectamente en lenguaje ensamblador. movlp H’01010101’ gotto INICIO

Operandos. Los Operandos son elementos de las instrucciones que necesitan éstas para poderse ejecutar. Usualmente los Operandos son registros, variables o constantes. Operandos típicos:

movlw movwf movf

b’11110000’ CONTROL STATUS, W

El operando en un número binario (constante).

La variable CONTROL es un operando en memoria del PIC.

El operando STATUS es un registro de la memoria.

Directivas. Una directiva es similar a una instrucción, pero a diferencia de una instrucción, la directiva es independiente del modelo del Microcontrolador y representa una característica del lenguaje ensamblador mismo. Las directivas se usan para dar un significado a variables o registros. Por ejemplo, el nombre CONTROL se puede usar para designar una variable en la localidad de memoria RAM 0Eh. De esta forma es más fácil para el programador entender o recordar que la localidad de memoria 0Eh contiene la información acerca del CONTROL. Las directivas que a continuación se toman como ejemplo pertenecen al ensamblador MPLAB de Microchip.

PROCESSOR P16F876A #include "p16f876A.inc" __CONFIG(_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC&_BODEN_OFF&_LVP_OFF)

Comentarios. Un comentario es una serie de palabras que escribe el programa para hacer más claro y legible el programa, los comentarios comúnmente se colocan después de una instrucción y se indican con un punto y coma “;” en lenguaje ensamblador. Al escribir un programa en lenguaje ensamblador, existen reglas obligatorias o estrictas y reglas que no son especificadas pero que es recomendable seguirlas. Algunas de estas reglas son las siguientes: escriba al inicio del mismo el nombre del programa, lo que hace el programa, la versión, la fecha cuando fue escrito, el tipo de Microcontrolador a usar y el nombre del programador.

El ejemplo siguiente muestra un programa escrito en lenguaje ensamblador respetando las reglas básicas anteriores.

;Zona de datos ************************************************** ;Programa de lectrura/escritura ;fecha 27 enero 2011 ;PIC16F876A ;Programador: Jorge L. PROCESSOR P16F876A #include "p16f876A.inc" __CONFIG (_CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _LVP_OFF) ;connfiguracion para el grabador LIST

P=16F876A

;Procesador

;Zona de códigos*************************************************** org0

main

;El programa comienza en la dirección 0 ;de la memoria de programa

goto

main

bsf movlw movwf movlw movwf bcf clrf clrf

STATUS,RP0 b'00000000' TRISB b'11111111' TRISC STATUS,RP0 PORTB PORTC

Principal movf PORTC,W movwf PORTB goto Principal end

;Pasamos al Banco 1 ;Configuramos el puerto B como salidas ;Configuramos el puerto C como entradas ;Pasamos al Banco 0