Mplab Paper

12
ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB TITULO: Manejo del Entorno MPLAB Leonardo Flores [email protected] ABSTRACT: MPLAB es un software que se ejecuta sobre un PC para desarrollar aplicaciones para microcontroladores de MICROCHIP. Resumen: Este documento está dirigido para obtener un conocimiento previo sobre el entorno MPLAB y a futuro poder trabajar o manipular en forma directa este entorno de programación, en el cual haremos una breve introducción explicando de que trata este software para que es utilizado, que es, como funciona, detallando sus instrucciones básicas o las mas utilizadas para su uso, las directivas principales para el manejo de MPLAB, ficheros y archivos que se pueden generar en el entorno, entre otros puntos que nos servirán como punto de partida para la familiarización del entorno con el usuario con el fin de empezar a relacionarnos con el entorno así con sus principales instrucciones o comandos con los cuales podemos desarrollar aplicaciones para microcontroladores, entonces teniendo un punto de referencia se espera que con este documento se despierte el interés y se profundice más en el tema. PALABRA CLAVE Directivas de MPLAB. Entorno MPLAB. Instrucciones de básicas. Software MPLAB. 1. INTRODUCCION ¿Qué es MPLAB? MPLAB es un software de desarrollo integrado que se ejecuta sobre una PC que sirve para desarrollar aplicaciones para microcontroladores de MICROCHIP. PARTES DE MPLAB: EDITOR: Editor incorporado que permite escribir y editar MPLAB Leonardo Flores 1

Transcript of Mplab Paper

Page 1: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

TITULO: Manejo del Entorno MPLAB

Leonardo [email protected]

ABSTRACT: MPLAB es un software que se ejecuta sobre un PC para desarrollar aplicaciones para microcontroladores de MICROCHIP.

Resumen: Este documento está dirigido para obtener un conocimiento previo sobre el entorno MPLAB y a futuro poder trabajar o manipular en forma directa este entorno de programación, en el cual haremos una breve introducción explicando de que trata este software para que es utilizado, que es, como funciona, detallando sus instrucciones básicas o las mas utilizadas para su uso, las directivas principales para el manejo de MPLAB, ficheros y archivos que se pueden generar en el entorno, entre otros puntos que nos servirán como punto de partida para la familiarización del entorno con el usuario con el fin de empezar a relacionarnos con el entorno así con sus principales instrucciones o comandos con los cuales podemos desarrollar aplicaciones para microcontroladores, entonces teniendo un punto de referencia se espera que con este documento se despierte el interés y se profundice más en el tema.

PALABRA CLAVE

Directivas de MPLAB. Entorno MPLAB. Instrucciones de básicas. Software MPLAB.

1. INTRODUCCION

¿Qué es MPLAB?

MPLAB es un software de desarrollo integrado que se ejecuta sobre una PC que sirve para desarrollar aplicaciones para microcontroladores de

MICROCHIP.

PARTES DE MPLAB:

EDITOR: Editor incorporado que permite escribir y editar programas u otros archivos de texto.

PROJECT MANAGER: Organiza los distintos archivos relacionados con un programa en un proyecto. Permite

crear un proyecto, editar y simular un programa. Además crea archivos objetos y permite bajar archivos hacia emuladores (MPLAB-ICE) o simuladores de hardware (SIMICE).

SIMULADOR: Simulador de eventos discretos que permite simular programas con ilimitados breakpoint, examinar/modificar registros, observar variables, tiempos y simular estímulos externos.

ENSAMBLADOR: Genera varios tipos de archivos objetos y relacionados, para programadores Microchip y universales.

LINKER: Permite unir varios archivos objetos en uno solo, generados por el ensamblador o compiladores C como

MPLAB Leonardo Flores 1

Page 2: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

MPAB-C18 o compiladores de terceros.

Los comandos más importantes para la ejecución (localizados dentro del menú Debugger) son los que se indican a continuación.

Run (Ejecución continua). Ejecuta el programa constantemente. La ventana Watch no se actualiza hasta que no se detiene la simulación. Animate (Ejecución animada). Ejecuta el programa de forma continua pero actualizando el contenido de la ventana Watch cada vez que ejecuta una instrucción.Halt (Paro). Detiene la ejecución del programa y actualiza todos los valores de las ventanas de visualización.Step Into (Ejecución paso a paso). Ejecuta una sola instrucción del programa y actualiza la información de las ventanas de visualización. Reset. Equivale a un reset por activación del pin /MCLR.

Otros modos de simulación son los siguientes.

Step Over. Ejecuta una sola instrucción del programa y actualiza las ventanas de visualización. Cuando la instrucción es una llamada a una subrutina (call k), se ejecuta toda la subrutina antes de actualizar las ventanas.Step Out. Cuando se está ejecutando una subrutina paso a paso, este modo de simulación obliga a que se ejecuten todas las instrucciones de la subrutina hasta regresar al programa principal, momento en el que se detiene la simulación y se actualizan las ventanas de visualización.Run to cursor. Esta opción da lugar a una ejecución continua desde la última instrucción simulada hasta la posición actual del cursor. Se entra en este modo de simulación mediante el menú que se activa con el botón derecho del ratón.

BARRA DE HERRAMIENTAS

Los iconos que aparecen en la barra de herramientas (figura 1), son funciones que se encuentran incluidas en el menú de control, pero como en todos los programas de Windows se incluyen par manejar de forma más cómoda el programa y difieren dependiendo la versión del programa.

MPLAB Leonardo Flores 2

Page 3: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Figura 1.- Barra de herramientas de edición

2. DIRECTIVAS PRINCIPALES DEL MPLAB

Las directivas son palabras reservadas para indicarle al MPLAB que funciones debe configurar cuando compile nuestro programa.

Antes que nada escribiremos una plantilla, que es un muy reducido archivo de código que se utilizará frecuentemente. Una plantilla se crea por única vez, y se utiliza como punto de partida al desarrollar posteriores proyectos.

Para crear la plantilla haremos lo siguiente: en MPLAB seleccionar File>New. Con esto se abrirá una ventana de edición en blanco y escribiremos lo siguiente:

list p=16F84A ;directiva que define el procesador

#include <p16F84A.inc> ;definición de variables específicas del procesador

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

ORG 0x000 ;vector de reset del procesador

END ;final del programa

La primera línea es:

list p=16F84A ;directiva que define el procesador

Esta línea le indica al compilador que el código escrito se aplicará al dispositivo 16F84A de la línea PIC. De esta forma el

MPLAB Leonardo Flores 3

Page 4: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

compilador también sabrá cual es la capacidad de memoria del PIC

La segunda línea es:

#include <p16F84A.inc>;definición de variables específicas

.......

Esta línea le indica al compilador que incorpore las definiciones detalladas en el archivo p16F84A.inc. En este archivo se definen configuraciones y nombres de los registros del PIC16F84, así como los nombres de los bits más usuales del micro.

En la línea siguiente vemos la siguiente expresión:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

En esta línea se define la “palabra de configuración” del PIC. La palabra de configuración indica si el código a grabar en el PIC se protegerá contra lectura, si se utilizará el temporizador watch dog, si se habilita el delay de encendido, y que tipo de oscilador se utilizará.

Por último vemos dos líneas de código:

ORG 0x00 ;vector de reset .......

END ;final del programa

Entre estas dos líneas se encontrará el código escrito por el programador. La línea ORG 0x00 le indica al compilador que el código por debajo de ella debe alojarse a partir de la posición de memoria 0 del PIC, que es la primer posición de memoria que el PIC ejecutará. La línea END indica que se ha alcanzado el final del programa, por lo que no debe haber código por debajo de ella.

Las indispensables para la correcta compilación del programa son:

Directiva Descripción SintaxisBADRAM Especifique las posiciones del RAM inválidas _ _badram <expr>BANKISEL Genera el código que selecciona el banco de

memoria de memoria RAM para direccionamiento indirecto

bankisel <label>

BANKSEL Genera el código que selecciona el código de memoria RAM

banksel <label>

CBLOCK Defina un Bloque de Constantes cblock [<expr>]CODE Empieza la sección del código ejecutable [<name>] code [<address>]CONFIG Especifica los bits de configuración _ _config <expr>CONSTANT Declara los Símbolos de las Constantes constant

<label>[=<expr>,...,<label>[=<expr>] ]DATA Crea Datos numéricos y de Texto [<label>] data <expr>,

[,<expr>,...,<expr>]DB Declare Datos de un Byte [<label>] db <expr>[,<expr>,...,<expr>]DE Defina los Datos de EEPROM [<label>] de <expr>[,<expr>,...,<expr>]#DEFINE Defina una Etiqueta de Substitución de Texto define <name> [<value>]

define <name> [<arg>,...,<arg>] <value>DT Defina Tabla [<label>] dt <expr>[,<expr>,...,<expr>]DW Declare Datos de un Word [<label>] dw <expr>[,<expr>,...,<expr>]ELSE Empieza el bloque alternativo de un IF ElseEND Fin de bloque de programa EndENDC Acaba un Bloque Constante Automático EndcENDIF Fin del bloque de condiciones ensambladas EndifENDM Fin de la definición de una Macro EndmENDW Fin de un bucle de While EndwEQU Define una constante para el ensamblador <label> equ <expr>ERROR Manda un mensaje de error error “<text_string>”

MPLAB Leonardo Flores 4

Page 5: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

ERRORLEVEL

Sitúa el nivel del error errorlevel 0|1|2| <+|-><message number>

E XI TM Salida de una Macro ExitmEX PAND Expande una lista de Macro expandEX TERN Declara una etiqueta externa extern <label>[ ,<label>]FILL Llena la memoria [<label>] fill <expr>, <count>GLOBAL Exporta una etiqueta definida global <label>[ ,<label>]IDATA Comienza una sección de identificadores (ID) [<name>] idata [<address>]IDLOCS Especifica donde están colocados los

Identificadores (ID)_ _idlocs <expr>

IF Empieza un bloque de código condicional if <expr>IFDEF Ejecutar si el símbolo ha sido definido ifdef <label>IFNDEF Ejecutar si el símbolo no ha sido definido ifndef <label>#INCLUDE Incluye Ficheros fuentes adiccionales include <<include_file>>

|“<include_file>”LI ST Opciones listado list [<list_option>,...,<list_option>]LOCAL Declara una Macro Variable como local local <label>[,<label>]MAC RO Declara la Definición del Macro <label> macro [<arg>,...,<arg>]MA XRAM Especifique la dirección del RAM máxima _ _maxram <expr>ME SSG Crea Mensajes definidos por el usuario messg “<message_text>”NO EXPAND Termina la Expansión del Macro NoexpandNOLIST Termina el Listado del Rendimiento NolistORG Pone el Origen del Programa <label> org <expr>PAG E Inserta el número de página del listado PagePAGESEL Genere el código de selección de la página de

ROMpagesel <label>

PROCESSOR

El Tipo del Procesador fijo processor <processsor_type>

RADIX Especifique Radix Predefinido radix <default_radix>RES Reserve la Memoria [<label>] res <mem_units>SET Defina Variable de ensamblador <label> set <expr>SPACE Inserta líneas en blanco space <expr>SUBTITLE Especifique el Subtítulo del Programa subtitle “<sub_text>”TITLE Especifique el Título del Programa title “<title_text>”U D A TA Empieza la sección de datos no inicializados [<name>] udata [<address>]UDATA_OVR Empieza la sección de datos no inicializados

superpuestos[<name>] udata_ovr [<address>]

UDATA_SHR Empieza la sección de datos no inicializados compartidos

[<name>] udata_shr [<address>]

#UNDEFINE Anula una Etiqueta de la Substitución #undefine <label>VARIABLE Declara un símbolo como variable variable

<label>[=<expr>,...,<label>[=<expr>] ]WHILE Realiza el bucle Mientras la Condición es

Verdaderawhile <expr>

Tabla 1. Directivas principales de MPLAB

3. INTRUCCIONES BASICAS DE MPLAB

Las instrucciones de la gama media las encontraremos resumidas en la siguiente tabla identificando a w es el acumulador, f es la

frecuencia un registro cualquiera y C, DC, Z los flags del registro status.

La gama media tiene un total de 35 instrucciones y cada una de las cuales ocupan 14 bits.

MPLAB Leonardo Flores 5

Page 6: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Las 35 instrucciones se encuentran detalladas a continuación en las tablas (2,3,4,5).

MPLAB Leonardo Flores 6

Page 7: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Tabla 2. Repertorio de instrucciones de la gama media

MPLAB Leonardo Flores 7

Page 8: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Tabla 3. Repertorio de instrucciones de la gama media

MPLAB Leonardo Flores 8

Page 9: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Tabla 3. Repertorio de instrucciones de la gama media

MPLAB Leonardo Flores 9

Page 10: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

Tabla 2. Repertorio de instrucciones de la gama media

MPLAB Leonardo Flores 10

Page 11: Mplab Paper

ESCUELA POLITECNICA DEL EJÉRCITO – Entorno MPLAB

CONCLUSIONES

En definitiva se trata de un sistema o software con un set de comandos para utilizar.

Con la base teórica descrita en este artículo sobre los comandos básicos de programación podemos empezar a manipular el MPLAB y realizar aplicaciones básicas para los microcontroladores

Existen varias instrucciones que podrían facilitar el desarrollo de programas en este entorno.

Las directivas son de mucha utilidad para poder realizar un programa ya que son palabras claves que indican una acción especifica al MPLAB.

El MPLAB es un entorno que permite realizar aplicaciones para una gran variedad de microcontroladores

comprobar si están bien hechos, simularlos y también nos da opción de realizar correcciones de ser necesario.

ENLACES

http://www.terra.es/personal/fremiro/directivas.htm

http://www.unicrom.com/Tut_analogico_digital.asp

http://www.slideshare.net/victorpe/uso-mplab-presentation

http://r-luis.xbot.es/pic2/pic2_13.html

http://www.terra.es/personal/fremiro/directivas.htm

http://es.wikipedia.org/wiki/MPLAB

http://www.slideshare.net/victorpe/uso-mplab-presentation

MPLAB Leonardo Flores 11