1. Introducción al Entorno de Desarrollo MPLAB
PRÁCTICA 4
INTRODUCCIÓN AL ENTORNO DE DESARROLLO MPLAB
OBJETIVO:
Familiarizar al alumno con la interfaz del software MPLAB y comprender los
pasos para crear un proyecto de programación para MCU’s PIC.
Emplear MPLAB para editar, depurar y simular un proyecto en lenguaje
ensamblador para un MCU PIC.
Configurar y usar el software ICPROG en conjunto con un circuito programador
compatible, para descargar a la memoria interna de un PIC, el código máquina
(archivo HEX) generado en MPLAB.
INTRODUCCIÓN
El MPLAB es un software que junto con un emulador y un programador de los
múltiples que existen en el mercado, forman un conjunto de herramientas de desarrollo
muy completo para el trabajo y/o el diseño con los microcontroladores PIC desarrollados y
fabricados por la empresa Arizona Microchip Technology (AMT).
Entre las características del programa MPLAB están las siguientes:
Incorpora todas las utilidades necesarias para la realización de cualquier
proyecto.
Permite editar el archivo fuente en lenguaje ensamblador de nuestro proyecto,
además de ensamblarlo y simularlo en pantalla.
Depurador de código fuente (muestra las instrucciones en ensamblador
conforme las va ejecutando) que permite la ejecución paso a paso, por rutina y
puntos de ruptura.
El programa es completamente interactivo, lo que nos permite modificar
cualquier registro o localidad de memoria en cualquier momento.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
2. Introducción al Entorno de Desarrollo MPLAB
MATERIAL Y EQUIPO EMPLEADO
Laboratorio equipado con computadoras que tengan instalado el MPLAB versión
v7.40 y el ICPROG v1.05.
Cantidad Descripción
1 Programador compatible con ICPROG.
1 Microcontrolador PIC16F628
1 Microinterruptor (1P-1T)
8 Leds o una barra de leds
8 Resistencia de 330
8 Resistencia de 4.7 K
1 Tableta experimental
1 Fuente de alimentación de CD
Pre-reporte:
Leer previamente toda la práctica
Descargar MPLAB v7.40 y ICPROG 1.05 de Internet y llevarlos el día de la sesión.
Llevar implementado en un protoboard el circuito de la figura 4.24
DESARROLLO
I. Procedimiento para crear un proyecto en MPLAB
1. Para ingresar al programa MPLAB IDE, basta con hacer doble “click” en el icono
instalado en el escritorio de la PC, o seleccionar Inicio> Programas> Microchip>
MPLAB IDE v7.40> MPLAB. Lo anterior desplegará la presentación del software seguido
de la pantalla principal (figura 4.1). Cabe mencionar que esto es válido sólo para la
versión v7.40, para versiones anteriores esto puede ser diferente.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
3. Introducción al Entorno de Desarrollo MPLAB
Figura 4.1. Pantalla principal de MPLAB
2. Es necesario crear el documento el cual se agregara al proyecto. Para esto, ingrese al
menú FILE> NEW, y a continuación edite el programa en ensamblador que se muestra
abajo. Haga una carpeta con nombre proypics y guarde en ella el archivo editado con el
nombre de rotaled.asm.
; Programa que rota a la derecha un bit por el puerto B
LIST P=16F628
RADIX HEX
w equ 0
f equ 1
; Declaración de los SPR
PCL equ 02h
STATUS equ 03h
PORTA equ 05h
PORTB equ 06h
CMCON equ 1Fh
cblock 20h
ST_TEMP ; Variable copia de STATUS
TEMP1 ; Variable para ciclo externo
TEMP2 ; Variable para ciclo interno
endc
org 0
goto INICIO ; Configura vector de reset
Eduardo Romero A. Laboratorio de Sistemas Digitales III
4. Introducción al Entorno de Desarrollo MPLAB
; Subrutina que configura a todo el Puerto B
; como salida y deshabilita a los comparadores
CONF_PUERTOB
Movlw b'00000111'; Comparadores apagados para
Movwf CMCON ; hablilitae pins de I/O
bsf STATUS,5 ; Conmuta a banco 1
clrf PORTB ; Configura puerto B como salida
bcf STATUS,5 ; Commuta a banco 0
movlw 04h
movwf PORTB ; Puerto B = 0001 0000b
movf STATUS,w ; Almacena una copia de STATUS
movwf ST_TEMP ; en la variable ST_TEMP
return
; Rutina que rota a la derecha un bit por el puerto B
; Parámetros de entrada: ST_TEMP el cual contiene
; una copia de STATUS
; Parámetros de salida: ST_TEMP
ROTADER
movf ST_TEMP,w ; Recupera el valor de STATUS y
movwf STATUS ; sustituyelo
rrf PORTB,f ; Rota a la derecha PUERTO B
movf STATUS,w ; Almacena una copia de STATUS
movwf ST_TEMP ; en el registro ST_TEMP
call RETARDO ; Introduce retardo de 500 ms
return
; Rutina que genera un retardo de tiempo por software
; de aproximadamente 0.5 segs a una frecuencia de
; oscilación de 4 MHZ
RETARDO
Movlw .250
movwf TEMP2 ; TEMP2 = 250
CICLO2 decfsz TEMP2,f ; TEMP2 - 1 = 0?
goto SALTO1 ; No
goto FINCICLO2 ; Si
SALTO1
movlw .250
movwf TEMP1 ; TEMP1= 250
CICLO1 nop
nop
nop
nop
nop
decfsz TEMP1,f ; TEMP - 1 = 0?
goto CICLO1 ; No
goto CICLO2 ; Si
FINCICLO2
return
Eduardo Romero A. Laboratorio de Sistemas Digitales III
5. Introducción al Entorno de Desarrollo MPLAB
; PROGRAMA PRINCIPAL
INICIO
call CONF_PUERTOB
AGAIN call ROTADER
goto AGAIN
END
3. Seleccione el dispositivo (PIC a utilizar durante el proyecto) con que se desea trabajar,
el cual se puede encontrar en la barra de herramientas en el menú Configure> Select
Device: Configure la ventana tal como se muestra en la figura 4.2.
Figura 4.2: Ventana “Select Device”
En la ventana se despliega información acerca de los diversas herramientas de MPLAB
con respecto al dispositivo seleccionado, de acuerdo a lo siguiente:
- Los leds verdes indican que si soporta el dispositivos seleccionado.
- Los leds amarillos indican que pueden no estar habilitadas ciertas partes del dispositivo.
- Los leds rojos indican que no soportan al dispositivo.
4. El siguiente paso es crear proyecto utilizando Proyect Wizard. Seleccione Project>
Project Wizard. En la pantalla se deberá ver algo similar a mostrado en la figura 4.3
Eduardo Romero A. Laboratorio de Sistemas Digitales III
6. Introducción al Entorno de Desarrollo MPLAB
Figura 4.3: Paso uno del “Project Wizard”
5. Seleccione el dispositivo PIC16F628 ó PIC16F628A, según sea el caso.
6. Seleccione el lenguaje usado en el proyecto, Microchip MPASM Toolsuite para este
caso (figura 4.4). Verifique que la ruta de acceso al MPASM sea la correcta.
Figura 4.4: Paso dos del “Project Wizard”
7. Es necesario seleccionar el nombre del proyecto y la carpeta que lo almacenará (figura
4.5). Escribimos primerproy como nombre y elegimos la carpeta proypics creada en el
paso 2. Cabe señalar que MPLAB no funciona bien cuando la carpeta se encuentra muy
anidada dentro de otras carpetas ni cuando las carpetas tienen nombres muy largos.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
7. Introducción al Entorno de Desarrollo MPLAB
Figura 4.5: Paso tres del “Project Wizard”
8. Agregue al proyecto el archivo rotaled.asm editado en el paso 2. Para esto, basta con
seleccionar dicho archivo y presionar el botón Add Files>>. El nombre del archivo
aparecerá en el panel de la derecha como se muestra en la figura 4.6.
Figura 4.6: Paso cuatro del “Project Wizard”
9. El último paso es la confirmación, por medio de un resumen (summary), de que el
proyecto ha sido correctamente creado. La ventana mostrará el dispositivo a usar, el
lenguaje y la fuente del archivo (figura 4.7).
Eduardo Romero A. Laboratorio de Sistemas Digitales III
8. Introducción al Entorno de Desarrollo MPLAB
Figura 4.7: Pantalla final del “Project Wizard”
10. Al presionar el botón FINISH, deberá aparecer la ventana del proyecto realizado en
los pasos anteriores (figura 4.8). De no ser así, puede abrirse manualmente por medio de
View> Project.
Figura 4.8: Pantalla final del “Project Wizard”
II. Depurando y simulando un programa con MPLAB
11.- Una vez terminado los pasos anteriores será necesario depurar el programa editado
para verificar los errores que se cometieron al momento de la codificación. Ensamble el
archivo rotaled.asm, contenido dentro del proyecto, con cualquiera de las siguientes
secuencias:
En la barra del menú (Project>Build All)
También en la barra de herramientas
Eduardo Romero A. Laboratorio de Sistemas Digitales III
9. Introducción al Entorno de Desarrollo MPLAB
MPLAB deberá entonces desplegar en la ventana output (figura 4.9) todo lo relacionado
con el proceso de ensamble. En teoría debería mostrar que no hubo errores en el
programa y que el archivo rotaled.hex fue creado correctamente y puede ser descargado
al MCU. En caso que se generen warnings y/o errores verifique el programa y repita el
proceso (paso 11) hasta que ya no existan errores
Figura 4.9: Pantalla “Output” sin errores ni “warnings”
12. Para simular el código del programa, es necesario activar la herramienta MPLAB SIM
por medio del menú Debugger> Select Tool, como se muestra en la figura 4.10
Figura 4.10: Pantalla del menú “Debugger” al activar MPLAB SIM
Una vez que se activa MPLAM SIM como herramienta de simulación, sucede lo siguiente
(figura 4.11):
El estado de la barra deberá cambiar.
Aparecen nuevas opciones dentro del menú Debugger.
En la barra de herramientas aparece una barra adicional. (Colocando el puntero
del Mouse sobre cada botón se podrá ver la descripción de lo que hace cada uno
de ellos).
En la ventana de salida se agrega una pestaña con el nombre de MPLAB SIM.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
10. Introducción al Entorno de Desarrollo MPLAB
Figura 4.11: Pantalla que muestra los cambios en la interfaz al activar MPLAB SIM
13. Después de haber seleccionado el simulador se procede a dar un reset al procesador
utilizando Debugger> Reset> Processor Reset, el puntero que esta de color verde se
posicionará en la primera instrucción en memoria, que por lo regular es un goto, tal como
lo muestra la figura 4.12
Figura 4.12: Pantalla del programa después de un “reset”
14. Realizado el paso anterior, se procede a simular el código empleando las opciones
disponibles en la barra (figura 4.13) que se agrego al seleccionar el MPLAB SIM.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
11. Introducción al Entorno de Desarrollo MPLAB
Figura 4.13: Resumen de los botones de la barra de herramientas de MPLAB SIM
15. Dentro de la simulación del programa, con la secuencia View> Watch> Add SFR>
Registro que Desees Ver, es posible seleccionar los registros asociados a cualquiera de
los periféricos internos para verificar su correcto funcionamiento (figura 4.14).
Figura 4.14: Botón “Add SFR” de la ventana “Watch”
16. En la misma ventana Watch, también se puede seleccionar las variables que se
hayan empleado en el programa, usando el botón Add Symbol, tal como lo sugiere la
figura 4.15.
Figura 4.15: Botón “Add Symbol” de la ventana “Watch”
17. Cuando se está depurando un programa es necesario detener su ejecución en una
instrucción específica, esto es posible insertando puntos de ruptura (breakpoints), los
cuales ayudan a observar los valor en los registros y variables en dicho instante. La
inserción de punto de ruptura se logra posicionando el puntero haciendo “click” con el
botón derecho del ratón con el puntero posicionado en alguna instrucción del programa y
seleccionando Set Breakpoint (figura 4.16).
Eduardo Romero A. Laboratorio de Sistemas Digitales III
12. Introducción al Entorno de Desarrollo MPLAB
Figura 4.16: Insertando un punto de ruptura
17. Al hacer lo anterior, se notará que se agrega una marca de una B dentro de un círculo
rojo en la parte lateral derecha de la instrucción, tal se ve en.
Figura 4.17: Listado del programa con el punto de ruptura insertado
18. Con todo lo expuesto en los pasos anteriores, proceda a simular el programa para
verificar que su funcionamiento sea lo que se desea.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
13. Introducción al Entorno de Desarrollo MPLAB
III. Procedimiento para descargar un programa al MCU con ICPROG
Toda vez que se ha simulado exhaustivamente el programa y que se ha comprobado que
realiza las tareas que se le han programado, se procede a descargar el código máquina
(rotaled.hex) al micricontrolador. MPLAB ofrece soporte para este proceso,
desafortunadamente se tiene que adquirir un dispositivo programador propietario de
Microchip (PicStart Plus, Pro Mate II, etc).
Por otro lado, construir un dispositivo programador para los MCU’s PIC es algo
relativamente sencillo y barato. Existen en la literatura muchos prototipos que han sido
verificados del cual es más usado es un clon del JDM Programmer. También hay que
instalar el software que trabaje en conjunto con el dispositivo programador, aquí podemos
emplear el WinPIC o el ICProg, La práctica se enfoca a éste último.
19. Verifique la PC tiene cuenta con el ICProg, de no ser así proceda a instalarlo.
20. Ejecute ICProg, la PC mostrará la ventana principal de trabajo (figura 4.18)
Figura 4.17: Ventana principal de ICProg
21. Configure el idioma del software en español con los siguientes pasos Settings >>
Options>> Language
Eduardo Romero A. Laboratorio de Sistemas Digitales III
14. Introducción al Entorno de Desarrollo MPLAB
Figura 4.18: Ventana para configuración del idioma
22. Con la secuencia Ajustes>> Tipo hardware se puede seleccionar el modelo de
dispositivo programador que se esté utilizando y el puerto donde se va a conectar. Los
valores por default son Com 1 y JMD Programmer. Las demás opciones no deben
modificarse (figura 4.19). En caso de ocurrir algún error en la grabación, se puede intentar
variar el valor de Retardo I/O, lo recomendable es un valor entre 4 - 10.
Figura 4.19: Ventana para elegir el tipo de hardware
23 Con Ajustes>> Opciones>> Confirmación se despliega la ventana de la figura 4.20.
Aquí se configura al software para que solicite una confirmación previa cada vez que se
vaya realizar alguna de las siguientes operaciones; grabar el MCU, borrar el MCU,
proteger el código o al sobreescribir algún archivo. Dejar las dos casillas inhabilitadas
como se presenta en la figura 4.20.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
15. Introducción al Entorno de Desarrollo MPLAB
Figura 4.20: Ventana para configurar las confirmaciones en ICProg
24. Con Ajustes>> Opciones>> Avisos, el ICProg puede notificarnos acerca de la
ocurrencia de algunos eventos. Existen dos tipos de notificación seleccionables:
Cuando la palabra de ID no se encuentra en el archivo cargado.
Cuando la palabra de Configuración no se encuentra en el archivo cargado.
Cuando la palabra de ID o de Configuración no se encuentra en el archivo cargado, sus
valores se establecerán en FFFF por omisión. Para asegurarse de que el valor no es
FFFF sino que no se encuentra en el archivo cargado, simplemente habilite estas
opciones.
24. Con Ajustes>> Opciones>> IC2, se podrá configurar algunas opciones relacionadas
con los dispositivos I2C (Ej. La familia 24Cxx). Debido a que no es nuestro caso, se
procederá a dejar deshabilitadas estas dos opciones.
Figura 4.21: Ventana para configurar las opciones de IC2
Eduardo Romero A. Laboratorio de Sistemas Digitales III
16. Introducción al Entorno de Desarrollo MPLAB
25. Con Ajustes>> Opciones>> Programación, se configura la verificación del programa
descargado ya sea antes o durante la programación. Seleccionar las dos casillas para
monitorear la programación del dispositivo. Los demás ajustes dejar tal y como vienen por
default.
Figura 4.22: Ventana para configurar las opciones de verificación
26. La secuencia Ajustes>> Opciones>> Miscelánea es de suma importancia ya en ella
se podrá habilitará un “driver” para Windows XP. Esto evitará que ICProg despliegue un
mensaje de error al iniciar y asegurará que funcione a la perfección con Windows XP.
Configure esta ventana tal como se muestra en la figura 4.23.
Figura 4.23: Ventana para configurar la compatibilidad con Windows XP
27. Seleccionar el PIC con Ajustes>> Dispositivo>> Microchip PIC>> PIC16F628.
También se puede seleccionar el dispositivo en la barra de herramientas, en la parte
derecha de la ventana de trabajo, abrir la pestaña y seleccionar el dispositivo.
28. Programar los bits de configuración del PIC como se indica en la figura 4.24.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
17. Introducción al Entorno de Desarrollo MPLAB
Figura 4.24: Ventana para seleccionar los bits de configuración
28. En la barra de herramienta, seleccionar en el menú abrir el archivo rotaled.hex que
se realizo en los pasos anteriores con el MPLAB.
29. Antes de grabar el PIC borre cualquier información que pudiera contener el dispositivo
en cuestión seleccionando Comando>> Borrar todo>> Intro.
30. Para grabar en el PIC, los archivos que se pretendan cargar hay que dar “click” en la
ventana de Archivo>> Abrir y buscar el archivo rotaled.hex, después seleccionar la
pestaña Comando>> Programa Todo.
31 Verificar la correcta grabación del dispositivo cerrando el programa y volviendo a
abrirlo y luego leyendo el dispositivo nuevamente.
32. Monte el PIC programado el circuito mostrado en la figura de abajo y verifique que
trabaje correctamente.
Eduardo Romero A. Laboratorio de Sistemas Digitales III
18. Introducción al Entorno de Desarrollo MPLAB
R12
10k
U1
16 17
RA7/OSC1/CLKIN RA0/AN0
D1 15 18
RA6/OSC2/CLKOUT RA1/AN1 330R
1N4148 1
RA2/AN2/VREF
4
RA5/MCLR RA3/AN3/CMP1
2 U2
3 1 20
RA4/T0CKI/CMP2 330R
2 19
SW2 RB0/INT
6 3 18
SW -SPST -MOM 7 4 17
RB1/RX/DT 330R
8 5 16
RB2/T X/CK
9 6 15
RB3/CCP1
10 7 14
RB4 330R
11 8 13
RB5
12 9 12
RB6/T 1OSO/T 1CKI
13 10 11
RB7/T 1OSI 330R
PIC16F628A LED-BARGRAPH-GRN
330R
330R
330R
Figura 4.24: Circuito para el programa rotaled.asm
Eduardo Romero A. Laboratorio de Sistemas Digitales III