| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.1 |
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.2 |
MPLAB-IDE es una Plataforma de Desarrollo Integrada bajo Windows, con múltiples prestaciones, que permite escribir el programa para los PIC en lenguaje ensamblador (assembler) o en C (el compilador C se compra aparte), crear proyectos, ensamblar o compilar , simular el programa y finalmente programar el componente, si se cuenta con el programador adecuado.
MPLAB incorpora todas las utilidades necesarias para la realización de cualquier proyecto y, para los que no dispongan de un emulador, el programa permite editar el archivo fuente en lenguaje ensamblador de nuestro proyecto, además de ensamblarlo y simularlo en pantalla, pudiendo ejecutarlo posteriormente en modo paso a paso y ver como evolucionarían de forma real tanto sus registros internos, la memoria RAM y/o EEPROM de usuario como la memoria de programa, según se fueran ejecutando las instrucciones. Además el entorno que se utiliza es el mismo que si se estuviera utilizando un emulador.
Nos vamos a centrar en la versión 6.60. Las nuevas que van saliendo cada poco tiempo y que incorporan nuevos tipos de microcontroladores, se pueden obtener de forma gratuita en la página web www.microchip.com, en la cual se encuentra una amplia información sobre todos los dispositivos que fabrica Microchip.
Partes de MPLAB-IDE:
La creación de un proyecto comienza con la escritura del programa. Para ello escoja la opción File/New y el editor de MPLAB-IDE presentará una página en blanco. Se sugiere que ponga nombre al archivo fuente desde el princio. Para ello, ello escoja la opción File/Save As, póngale nombre al programa, E001.ASM, en el directorio \PRG\EJEMPLOS\.
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.3 |
Aspecto del programa con el Editor en primer plano:
Comencemos a escribir en lenguaje ensamblador nuestro primer programa (E001.ASM). El programa realiza la suma en binario de dos números (7+8 =15) y para escribirlo usamos el editor de textos. La extensión "ASM" es la que deben llevar todos los programas escritos en ensamblador. Deberemos de tener en cuenta que la primera columna del editor debemos reservarla para las etiquetas que son expresiones alfanuméricas escogidas por el usuario que definen valores de posiciones de memoria. Estas deben empezar siempre por una letra. Además se debe de tener en cuenta que no pueden usarse expresiones que ya utiliza el ensamblador tales como:
En las siguientes columnas, se puede comenzar a escribir el nemónico de la instrucción o las directivas del ensamblador. Hay que decir que se pueden y se deben añadir comentarios que son elementos indispensables en muchos casos para seguir el razonamiento de los programas sin perderse, para ello cuando MPLAB encuentra un ";" (punto y coma) no se genera código máquina del texto que venga a continuación hasta la siguiente línea. Los espacios en blanco no son significativos y las líneas en blanco tampoco. Para una mejor legibilidad del programa, se recomienda acceder a cada campo utilizando el tabulador.
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.4 |
El uso de mayúsculas y minúsculas en los programas obedece a una serie de reglas o normas de estilo, comunes entre los programadores en ensamblador, que si bien no son obligatorias, facilitan la lectura del código fuente. Estas reglas son:
Cuando terminemos de escribir el programa, si no lo hizimos antes, seleccionamos File/Save donde le damos el nombre a nuestro programa E001.ASM, dentro del directorio \PRG\EJEMPLOS\.
Una vez escrito el programa, es necesario crear un proyecto para poder compilar, simular, depurar y, en su caso, programar.
Para crear un proyecto, escoja la opción Proyect/Proyect Wizard y siga las instrucciones que vayan apareciendo:
|
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.5 |
Una vez creado el proyecto, se habilitarán algunos iconos:
![]() |
|
| Crea nuevo proyecto | ![]() |
| Abre proyecto | |
| Guarda proyecto | |
| Opciones | |
| Buscar archivos de proyecto | |
| Compila (make) | |
| Compila (built all) |
Una vez creado el proyecto, haga click en el ícono Built All
. Con esto compilará el programa y se crerarán archivos de error, mapa del programa, archivos objetos y archivos hex.
Si no se han cometido errores al introducir los códigos, En la ventana Output, solapa Build aparecerá un mensaje parecido a este:
|
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.6 |
Esto nos indica que el programa se ha ensamblado con éxito y ya estamos en condiciones de iniciar la simulación del programa. Si por el contrario, se han detectado errores, en dicho mensaje será mostrado el error; 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 el error. Una vez subsanados los errores habrá que volver a compilar el programa.
Seguidamente analizaremos las distintas posibilidades que ofrece el menú view:
Output: Muestra la ventana Output, que ofrece información de salida del programa, como por ejemplo cuando se compila aqui va apareciendo la información sobre la compilación, indicando si hay errores.
Toolbars: Permite seleccionar que barras de herramientas apareceran en MPLAB.
Disassembly Listing: En esta ventana se puede ver el código máquina paralelamente al código en ensamblador. Resulta muy util para seguir paso a paso la ejecución del programa.
Hardware Stack: El contenido de la pila puede verse y modificarse con el ratón o el teclado al seleccionar esta opción. Si la pila se desborda, MPLAB indica su rebosamiento con el mensaje underflow. Para modificar un nivel de la pila basta con hacer click con el puntero del ratón sobre el o utilizar el teclado con los cursores.
Program Memory: Al seleccionar esta opción aparece la siguiente ventana en la que se puede apreciar las posiciones de memoria que ocupa cada una de las instrucciones, el código de operación de cada instrucción y la posición de memoria que se le ha dado a cada etiqueta. Puede utilizarse para seguir paso a paso la ejecución del programa y además de modificar un registro mediante el ratón y el teclado pueden modificarse varios a la vez si se pone el puntero del ratón sobre el primer registro que se quiere modificar y seguidamente se pulsa el botón derecho del ratón y se activa la opción Fill Registers.
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.7 |
Si pulsamos en cada uno de los tres botones de la parte inferir de esta ventana podemos seleccionar tres formas de ver la memoria de programa:
File Registers: La lista de registros del microcontrolador, que son de memoria SRAM, se pueden ver seleccionando esta opción. Esta ventana al desplegarse presenta una lista con la memoria de datos del dispositivo emulado. El listado de registros puede verse de dos maneras, segun se active Hex o Symbolic.
En la siguiente figura se muestran algunos registros de la memoria del banco 0. Observese que también se muestra la posición que etiquetamos como RESULTADO:
Se puede modificar el contenido de uno o varios registro en esta ventana.
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.8 |
EEPROM: Si el dispositivo emulado tiene EEPROM o memoria Flash como es el caso del PIC16F84, el contenido de la memoria puede verse seleccionando esta opción. La memoria de EEPROM puede modificarse a través de esta ventana.
Watch : MPLAB permite supervisar los contenidos de los registros a través de esta ventana. Para agregar los registros a visualizar, se puede hacer directamente escribiendolos con el teclado o mediante los botones Add SFR o Add Symbol y las ventanas desplegables correspondientes. En la figura se muestra como se ha introducido el valor de RESULTADO para supervisarlo, después de emular el programa aparece el valor 0FH, esto es 15, que es igual a 7+8:
Special Function Registers: El contenido de los registros de funciones especiales (FSR) pueden verse y modificarse seleccionando esta opción.
Ya sabemos que el programa que hemos realizado tiene la extensión "ASM" y que la extensión del proyecto es "MCP". Cuando creamos el proyecto, en el directorio que elegimos (\PRG\EJEMPLOS) se crearon los siguientes archivos:
El archivo de espacio de trabajo es muy intyeresante porque permite dejar las ventanas y el programa en el estado actual, cerrar el programa y mas tarde, seguir trabajando recuperando el estado del programa tal y como lo dejamos. Para trabajar con el Workspace debemos ir al menú file.
Para comenzar la simulación debemos elegir la herramienta que vamos a utilizar. En nuestro caso, MPLAB SIM. Para hacerlo debemos seleccionar en la barra de menús Debugger/Select tools/MPLAB SIM:
| SISTEMAS DE TELECOMUNICACIÓN E INFORMÁTICOS ARQUITECTURA DE EQUIPOS Y SISTEMAS INFORMÁTICOS |
MPLAB-IDE v6.60 | 11.9 |
Aparecerá una nueva barra de herramientas:
![]() |
|
| Run | ![]() |
| Halt | |
| Animate | |
| Step Into | |
| Step Over | |
| Step Out | |
| Reset |
|
Nota: |
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.10 |
Para realizar la simulación podemos colocar las ventanas tal y como aparece en la figura, pulsar sobre
(Step Into) y observar como se ejecuta el programa paso a paso y se modifican los registros:
Tal y como están dispuestas las ventanas puede observarse todo lo necesario para la simulación. La flecha amarilla en la ventana donde está el ASM indica que instrucción es la que puede ejecutarse.
Si se modificase el archivo ASM mientras se simula, aparecerá un ventana con el mensaje The project is out of date e indicando si se quiere rehacer de nuevo el proyecti. Debe contestarse que si y comenzará de nuevo la simulación con los cambios establecidos. Es importante decir que aunque se conteste que no, el cambio se guardará en el ASM.
Con la venntana Special Function Registers se pueden observar los cambios en los registros específicos, e incluso modificarlos seleccionandolos con el ratón con un doble click y utilizándo el teclado. El menú contextual (pulsar botón derecho sobre la ventana) permite nuevas posibilidades, que por ejemplo permite con Fill Registers modificar varios registros de una vez.
Con la ventana File Registers, se ven todos los registros, si bien resultan de especial interés los registros de proposito general, que por supuesto pueden modificarse a voluntad.
Tanbién resulta de interés el menú Debugger/Clear Memory.
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.11 |
En MPLAB, si bien en principio todos los registros pueden modificarse a voluntad, resulta que no se pueden modificar directamente los bits de PORTA y PORTB cuando están configurados como entradas (véase simulando PRACTICA.ASM). Si se pueden modificar los bits de PORTA y PORTB si están configurados como salidas.
Para conseguir "botones" que permitan accionar las patillas de entrada del PIC se utiliza el MPLAB Stimulus Controller, que aparece con el menú Debugger/Stimulus Controller:
Para crear cada fila pulsar Add Row, seleccionar Type, Enable, Pin y Action y terminar con Edit Complete.
En la primera fila de la figura, al pulsar Fire cambia RA0 de estado, se hace 0 si era 1 y viceversa (Toggle), el cambio no se hace efectivo hasta que se pulsa Step Into. No funciona bien con Animate si bien se puede intentar aumentar en Debugger/Setting, en la solapa Debuger Animation el tiempo de paso en la anumación. No se ven los cambios si se utiliza Run hasta que la información no se actualiza con Halt, si bien aquí resultaría casi imprescindible utilizar Breakpoint.
Ademas del tipo Action Toggle, que cambia de estado una entrada, tenemos High que aplica un 1, Low que aplica un cero y Pulse que proporciona un pulso de corta duración. En PRACTICA.ASM, tal y como se ha resuelto la entrada de datos en el programa, no sirve la utilización de Pulse y se puede utilizar Toggle o bien dos filas para cada entrada, una con High y otra con Low.En la ultima fila de la figura se ve como se utiliza el Type Synch (síncrono), que hace que automáticamente cambie RB3 de forma sincronizada con el reloj, estando 10 ciclos a estado alto y luego 10 ciclos a estado bajo.
Las filas de entradas realizadas pueden guardarse y recuperarse (Pin Stimulus File, Load y Save)
| DISPOSITIVOS LÓGICOS MICROPROGRAMABLES | MPLAB-IDE v6.60 | 11.12 |
Conforme utilice MPLAB le surgirán dudas que puede resolver con la ayuda que proporciona el programa (en inglés) y que le permitirán ir adentrándose en el uso del programa según sus necesidades.
A continuación se presenta una lista de tareas habituales con los menús y opciones de MPLAB exclusivamente a modo de sugerencia: