MPLAB

De Wikipedia, la enciclopedia libre
MPLAB IDE
Información general
Tipo de programa Ensamblador
Desarrollador Microchip Technology Inc.
Licencia Software propietario
Información técnica
Programado en C++
Versiones
Última versión estable 8.84 ( 24 de febrero de 2012 (12 años, 2 meses y 17 días))
Archivos legibles
  • MPLAB IDE Project
  • MPLAB IDE Workspace
Archivos editables
  • MPLAB IDE Project
  • MPLAB IDE Workspace
Enlaces

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:

  1. Crear un nuevo archivo con extensión .ASM y nombre cualquiera
  2. Crear un Proyecto nuevo eligiendo un nombre y ubicación
  3. Agregar el archivo .ASM como un SOURCE FILE
  4. 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[editar]

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[editar]

Programador Picstart Plus de Microchip.

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.

Véase también[editar]

Ejemplo:

LIST  P = 16F84A;  El pic que utilizamos.
INCLUDE <p16f84a.inc>;
   

cblock 0x20;

   Dividendo
   Divisor
   Cociente
   Resto
   Temp; // Dividendo .. para el cociente
   Temp1; // Para guardar las sumas parciales, en el resto.
   

endc;

ORG 0 ; Inicio

   movlw .13;
   movwf Dividendo;
   movlw .4;
   movwf Divisor;
   call pcCociente;
   call pcResiduo;
   goto $
  

pcCociente

    ; Haciendo  restas susesivas hallamos el cociente

clrf Cociente; movf Dividendo,0; movwf Temp; movf Divisor,0; bucle subwf Temp,1; btfss STATUS,C; goto Menor incf Cociente,1; goto bucle Menor return

   pcResiduo
    ; Multiplicando el divisor con el cociente , R = D - d*q 

clrf Resto; clrf Temp1; movf Cociente,0; movwf Temp; incf Temp,1; movf Divisor,0; bucle1 decfsz Temp,1; goto tried; movf Temp1,0; subwf Dividendo,0 movwf Resto; return

tried addwf Temp1,1; goto bucle1 end

Enlaces externos[editar]