# MPLAB

MPLAB es un editor IDE gratuito, destinado a productos de la marca Microchip. Este editor es modular, permite seleccionar los distintos microcontroladores soportados, además de permitir la grabación de estos circuitos integrados directamente al programador.
Es un programa que corre bajo Windows, Mac OS y Linux. Presenta las clásicas barras de programa, de menú, de herramientas de estado, etc. El ambiente MPLAB® posee editor de texto, compilador y simulación (no en tiempo real). Para comenzar un programa desde cero para luego grabarlo al μC en MPLAB® v7.XX los pasos a seguir son:
* Crear un nuevo archivo con extensión .ASM y nombre cualquiera
* Crear un Proyecto nuevo eligiendo un nombre y ubicación
* Agregar el archivo .ASM como un SOURCE FILE
* Elegir el microcontrolador a utilizar desde SELECT DEVICE del menú CONFIGURE
Una vez realizado esto, se está en condiciones de empezar a escribir el programa respetando las directivas necesarias y la sintaxis para luego compilarlo y grabarlo en el PIC.

## Directivas

Las directivas son palabras reservadas para indicarle al MPLAB® que funciones debe configurar cuando compile nuestro programa. Las indispensables para la correcta compilación del programa son:
| Directiva | Descripción | Sintaxis |
| CBLOCK | Defina un Bloque de Constantes. | cblock [<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>][<label>] dt “<text_string>”[,”<text_string>”,...] |
| ELSE | Empieza el bloque alternativo de un IF | Else |
| END | Fin de bloque de programa | End |
| ENDIF | Fin del bloque de condiciones ensambladas | Endif |
| ENDM | Fin de la definición de una Macro | Endm |
| ENDW | Fin de un bucle de While | Endw |
| EQU | Define una constante para el ensamblador | <label> equ <expr> |
| IF | Empieza un bloque de código condicional | if <expr> |
| #INCLUDE | Incluye Ficheros fuentes adiccionales | include <<include_file>> |“<include_file>” |
| LIST | Opciones listado | list [<list_option>,...,<list_option>] |
| MACRO | Declara la Definición del Macro | <label> macro [<arg>,...,<arg>] |
| ORG | Pone el Origen del Programa | <label> org <expr> |
| WHILE | Realiza el bucle Mientras la Condición es Verdadera | while <expr> |

## Compilación del Programa y carga al PIC

Una vez escrito y depurado el programa, se procede a la compilación. Para esto, desde el menú PROJECT se elige la opción BUILD ALL (construir todo) que, si no existen errores, devolverá un mensaje como BUILD SUCCESFULL. Los errores que muestra el compilador son del tipo sintácticos, es decir que si el programa "construido" llegara a tener un error, por ejemplo que esperase a que se ponga un bit en “0” y nunca pasase, se estará en un bucle infinito a pesar de que el compilador compilará perfectamente porque no hay error de sintaxis.
También existen mensajes y advertencias; los mensajes pueden ser, por ejemplo, que se está trabajando en un banco de memoria que no es el bank 0, etc. Las advertencias tienen un poco más de peso, por ejemplo: el PIC seleccionado no es el mismo que está definido en el programa, etc. En ambos casos, mensajes y advertencias, la compilación termina satisfactoriamente pero hay que tener en cuenta siempre lo que nos dicen estos para prevenir errores.
Terminada la compilación el MPLAB® nos genera un archivo de extensión .hex el cual es completamente entendible para el PIC. Es decir, solo resta grabarlo al PIC por medio de una interfaz como por ejemplo el programador Picstart Plus de microchip. Una vez completado esto, se alimenta al mismo y el programa ya se estará ejecutando.