Está en la página 1de 20

C mo Escribir Programas y

Hacer la Verificaci n en los PICs


3
Introducción 1) Instalación

MPLAB es un entorno de desarrollo inte- Descargue los archivos del software de


grado que le permite escribir y codificar instalación y ejecute el archivo MPxxxxx.E-
los microcontroladores PIC de Microchip XE. Estos archivos puede obtenerlos por
para ejecutarlos. El MPLAB incluye un edi- medio de Internet en la dirección:
tor de texto, funciones para el manejo de
proyectos, un simulador interno y una va- http//www.microchip.com/10/Tools
riedad de herramientas que lo ayudarán a
mantener y ejecutar su aplicación. Tam- Estos archivos pueden ser transferidos a
bién provee una interfase de usuario para disquetes si desea instalar el MPLAB en otra
todos los productos con lenguaje Micro- computadora. De acuerdo a la versión
chip, programadores de dispositivos, siste- que haya descargado, los nombres de los
mas emuladores y herramientas de tercer archivos pueden variar levemente. Por
orden. ejemplo, la versión 4.00 del MPLAB tendría
El MPLAB está diseñado para ser ejecu- los siguientes archivos:
tado bajo Windows 3.11, y puede operar
con Windows 95 y 98. Asume que el usua- MP40000.EXE
rio ya conoce el entorno de Windows y sa- MP40000.WO2
be manejarlo. MP40000.WO3
La guía que describimos en este capítu- MP40000.WO4
lo le permitirá realizar las siguientes tareas: MP40000.WO5
MP40000.WO6
• Manejar el escritorio MPLAB
• Crear un nuevo archivo de código Si Ud. lo prefiere, puede venir a nuestras
fuente para el ensamble e ingresarlo a un oficinas con este libro y 6 disquetes vír-
nuevo proyecto para el 16F84 genes y tendrá la oportunidad de llevarse
• Identificar y corregir los errores simples dicho programa sin cargo.
• Ejecutar el simulador interno Copie el contenido de los 6 disquetes
• Marcar puntos de interrupción en el disco rígido de su PC (en un lugar
• Crear ventanas de observación que pueda identificar).
• Manejar ventanas para el seguimiento Cuando ejecute el archivo .EXE, co-
de errores menzará la instalación del MPLAB en su sis-
tema. Seguidamente deberá elegir los
Para que Ud. aprenda a programar sus componentes del MPLAB que desea insta-
microcontroladores, damos a continua- lar en su sistema. A menos que haya com-
ción, paso a paso, las instrucciones de ins- prado un programador o emulador del dis-
talación y uso de la aplicación: positivo, sólo debiera instalar las siguientes

Todo sobre PICs 33


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

herramientas del software:

Archivos MPLAB IDE


Archivos MPASM/MPLINK/MPLIB
Archivos de Protección del Simula-
dor MPLAB-SIM
Archivos de Ayuda (vea la figura 1
que aparecerá cuando ejecute el
programa).

Luego aparecerá el menú de la fi-


gura 1 que le permitirá seleccionar
los componentes de lenguaje Micro-
chip que desee instalar. Usualmente Figura 1
debiera seleccionarlos todos (por de-
fecto). Al hacer “doble click” en
MP40000.EXE, el instalador le va di-
ciendo lo que debe hacer.
Luego de instalarlos, ejecute
MPLAB.EXE o clique el ícono MPLAB
para iniciar el sistema.
Aparecerá el escritorio del MPLAB
(figura 2).

2) Configurar el Modo
de Desarrollo
Figura 2
El escritorio básico del MPLAB se
asemeja al de las aplicaciones de
Windows (como pudo ver en la pan-
talla de la figura 2). Tiene una barra
de menú en el margen superior, una
barra de herramientas y también una
barra de estado en el margen inferior.
Podrá advertir que la barra de esta-
do incluye información sobre cómo
se ha configurado el sistema.

Nota: El "modo de desarr ollo" de-


termina la herramienta, debe elegir
alguna, que ejecutará el código. Pa- Figura 3
ra esta guía, usaremos el simulador de soft- más información para cambiar a una de
MPLAB-SIM Si sabe del tema y tiene sus operaciones. Al seleccionar el ítem del
ware MPLAB-SIM.
un emulador, en este capítulo encontrará menú "Opciones>Modo de Desarrollo",

34 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

aparecerá una caja de en el menú y aparecerá la ca-


diálogo semejante a la de ja de diálogo de la figura 4.
la figura 3. Clique en el botón Sí, segui-
El MPLAB es un produc- damente aparecerá un diálo-
to en constante evolu- go de exploración de Windows
ción, de modo que pue- estándard. Decida dónde de-
den aparecer sutiles dife- sea crear su proyecto (en qué
rencias entre la pantalla Figura 4 carpeta o lugar de su disco rígi-
que usted vea y la que mostramos aquí. do lo va a guardar) y recuerde dónde lo
Seleccione el ícono próximo al Simulador ubicó. Más tarde necesitará esta informa-
MPLAB-SIM (MPLAB-SIM Simulator) y elija ción. Esta guía usa un directorio en c:
16F84 (que corresponde a un tipo de PIC) \temp\tutorial y crea el archivo de pro-
en la lista de procesadores disponibles que yecto llamado tutor84.pjt (figura 5). "PJT" es
pueden ser resistidos por el simulador. Cli-
que 16F84 y luego presione el botón "Re-
set". De este modo se iniciará el simulador,
y debería aparecer en la barra de estado
"16F84" y "Sim". Se encuentra así en el mo-
do simulador para el 16F84.

3) Cómo Crear un Proyecto Simple


Figura 5
El simulador se ejecutará desde el mis- el sufijo estándar para los archivos de pro-
mo archivo, llamado "archivo hex", el cual yectos en el MPLAB. El prefijo del nombre
puede ser programado en el micro PIC. de archivo del proyecto, en este caso "tu-
Para que se ejecute el simulador, primero tor84", será el prefijo por defecto de mu-
deberá crear un archivo de código fuente chos de los archivos que el MPLAB usará o
y realizar el montaje del código fuente. creará para esta guía. Clique "Aceptar
A continuación explicaremos cómo lle- (OK)" para que aparezca el diálogo Pro-
var a cabo este proceso: yecto MPLAB. Este diálogo puede parecer
Nota: El lenguaje ensamblador produce, confuso, pero en realidad es muy simple.
entre otros elementos, un archivo hex. Este Nota: El simulador, los programadores y
archivo tiene la extensión (.hex). A este los sistemas emuladores que operan con el
archivo lo llamaremos: MPLAB usan un archivo hex creado por el
ensamble, la compilación y/o el “linking”
tutor84.hex. del código fuente. Algunas herramientas
diferentes pueden crear archivos hex, al
Más adelante este archivo puede ser tener en cuenta que estas herramientas
cargado directamente en el programador formarán parte de cada proyecto.
del dispositivo sin usar el ensamblador o un Los proyectos le dan la flexibilidad para
proyecto del MPLAB. Este archivo también describir cómo se construirá la aplicación
puede ser cargado por otros programado- y qué herramientas se usarán para crear el
res de tercer orden. archivo .hex.
Seleccione "Archivo>Nuevo (File>New)" Obviamente, en la guía nos ocupare-

Todo sobre PICs 35


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

fuente de ensamble. Esta será la configu-


ración por defecto cuando aparezca el
diálogo "Propiedades del Nodo (Node
Properties)", vea la figura 7.

Nota: Como puede ver, hay una canti-


dad de filas y columnas en este diálogo.
Cada fila usualmente corresponde a
un "cambio", aquellos elementos que se
establecen en la línea de comando
cuando se invoca una herramienta. De
hecho, la configuración de estos cambios
se refleja en la ventana "Línea de Coman-
do (comand line)", próxima al margen in-
ferior de la pantalla. Esta es la línea de
comando que se usará cuando se invo-
que el MPASM desde el MPLAB. Por el mo-
mento, puede usar las configuraciones
por defecto, pero cuando ya sepa cons-
truir una aplicación, probablemente de-
seará cambiar algunas.
Figura 6 Al clicar el botón "Aceptar (OK)", apli-
mos de todos estos detalles. cará estas configuraciones, y retornará al
El diálogo "Editar Proyecto" será seme- diálogo "Editar Proyecto (Edit Project)", con
jante al mostrado en la figura 6. el ícono (botón) "Agrega Nodo (Add No-
Advierta que el nombre del archivo de de)" disponible.
destino ya ha sido completado. Ya cono- Presione el botón "Agregar Nodo". Apa-
ce el modo de desarrollo que configura- recerá el diálogo de exploración de Win-
mos previamente y asume que usaremos dows estándar, con el mismo directorio
la serie de herramientas de lenguaje Mi- usado para el proyecto. Ingrese el nombre
crochip. En la ventana "Archivos de Pro- de archivo: tutor84.asm y presione "Acep-
yecto (Files proyect)", encontrará tutor84. tar". Retornará al diálogo "Editar Proyecto",
[hex]. Al destacar este nombre, se podrá
utilizar el ícono "Propiedades del Nodo
(Node Properties)". Seguidamente debe
indicarle al MPLAB cómo crear el archivo
hex. Hágalo clicando el botón "Propieda-
des del Nodo". Aparecerá el diálogo "Pro-
piedades del Nodo". Este diálogo contie-
ne todas las configuraciones por defecto
para una herramienta de lenguaje -en es-
te caso MPASM, como podrá ver en en el
ángulo superior derecho del diálogo. En
su forma más simple, el proyecto contiene
un archivo hex creado desde un archivo
Figura 7

36 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

cío, pero el nombre de la ventana de


Figura 8 archivo reflejará su nuevo nombre.

Nota: El nombre del archivo fuente


y el nombre del proyecto ("tutor84" en
esta guía) deben ser iguales en este ti-
po de proyectos. Hay otros proyectos
de archivo múltiple que usan el “lin-
ker” y permiten que el nombre del ar-
chivo de salida sea diferente al del ar-
chivo de entrada (hay una guía apar-
te para los proyectos de archivos múl-
tiples que usan el linker).
El MPASM siempre creará un archi-
donde podrá ver "tutor84.asm" añadido vo hex de salida con el mismo nombre
debajo del archivo hex, que indica que es que el archivo fuente, y esta configuración
un nodo concurrente. Al presionar "Acep- no puede modificarse. Si cambia el nom-
tar", retornará al escritorio MPLAB con un bre del archivo fuente, también deberá
archivo de código fuente abierto y aún sin cambiar el nombre del proyecto.
nombre. Ahora ya está listo para escribir el códi-
go que almacenará en el PIC para que
4) Cómo Crear un nuevo cumpla una función determinada.
Archivo Fuente Simple
Tabla 1
Clique dentro del espa-
cio en blanco de la venta- list p=16f84
na de archivo creada. Se- include <p16F84.inc>
guramente se llamará "Sin
c1 equ h'0c' ; Establece el contador de variable temp c1 en la
título (Untitled)". De este dirección 0x0c
modo accederá al "foco" org h'00' ; Establece la base de memoria del programa en el vector
de la ventana. Use la op- reset 0x00
ción de menú "Archivo- reset
>Guardar como...", y guar- goto start ; Ir a inicio en el programa principal
de el archivo vacío como
org h'04' ; Establece la base de memoria del programa al comienzo
tutor84.asm. Cuando abra del código del usuario
el diálogo de exploración start
estándar, encontrará su mov1w h'09' ; Inicializa el contador a un valor arbitrario mayor
ubicación en el directorio que cero
movwf c1 ; Guarda el valor en la variable temp definida
del proyecto. Ingrese el
loop
nombre de archivo y pre- incfsz c1,F ; Incrementa el contador, ubica los resultados en el
sione "Aceptar". Vea la fi- registro de archivos
gura 8. goto loop ; loop hasta que el contador se completa
Ahora estarán disponi-
goto bug ; Cuando el contador se completa, va a start para reiniciar
bles el escritorio MPLAB y
end
la ventana de archivo va-

Todo sobre PICs 37


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

5) Ingresar el Código Fuente "bug". Dado que este rótulo no ha sido de-
finido previamente, el lenguaje ensambla-
Use el mouse para ubicar el cursor al dor informará el error. También podría rele-
comienzo de la ventana de archivo vacío var otros errores.
tutor84.asm, e ingrese el texto de la tabla Haga un doble clic sobre el mensaje de
1(vea la página anterior), exactamente error. De este modo ubicará el cursor en la
como está escrito en cada línea. No debe línea que contiene el error en el código
ingresar los comentarios (los textos que si- fuente. Cambie "bug" por "start". Use la
guen a cada punto y coma). ventana "Resultados de construcción
Este código es un programa muy simple (Build Results)" para hacer una búsqueda
que incrementa un contador y lo "resetea" de errores, y reparar los que aparecieran
a un valor predeterminado cuando el en el código fuente. Reensamble el archi-
contador vuelve a cero. vo ejecutando la función de menú "Pro-
yecto>Construir todo". Este procedimiento
Nota: Todos los rótulos comienzan en la puede demandar un par de repeticiones.
primera columna, y la última línea tiene
una directiva "end". Las páginas de datos Nota: Cuando reconstruya un proyecto,
del micro PIC contienen información com- todos sus archivos fuente serán guardados
pleta sobre instrucciones con ejemplos pa- en el disco.
ra su uso.
Luego de reparar todos los problemas
Guarde el archivo usando la función de en el código fuente, la ventana "Resulta-
menu "Archivo>Guardar" (File>Save). dos de construcción" mostrará el mensaje
"Construcción completada exitosamente
(Build completed successfully)". Ya ha
6) Ensamble del Archivo Fuente completado un proyecto que puede eje-
cutarse usando el simulador.
El ensamble del archivo puede realizar-
se de varias maneras. Aquí describiremos Como verá, aún no tiene ni idea
un método. Use el ítem de menú "Proyec- que pr ogramó, per o ya pr ogramó algo
to>Construir todo (Proyect>Build All)". De que luego intr oducirá en un PIC. Para
este modo ejecutará el lenguaje ensam- tener idea cabal de lo que está ha -
blador MPASM en el trasfondo usando las ciendo, continúe leyendo esta guía y
configuraciones guardadas con el proyec- con una PC al lado, haga Ud. mismo
to anteriormente. Una vez completado el lo que se indica paso por paso.
proceso de ensamble, aparece-
rá la ventana "Resultados de
Construcción (Build Results" (fi-
gura 9):
Ha ingresado intencionalmen-
te al menos “un error” si ingresó
el código tal como lo hemos es-
crito en el paso anterior. El último
"goto" en el programa refiere a Figura 9
un rótulo inexistente llamado

38 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

7) Ejecución de su Programa

Use "Debug>Ejecutar>Reset
(Debug>Run>Reset)" para iniciar
el sistema. El contador del pro-
grama se reseteará a cero, que
es el vector de reset en el 16F84.
La línea del código fuente en es-
ta dirección será destacada con
una barra oscura. También ad-
vertirá que en la barra de esta-
do, la PC se establecerá en 0x00.
Use el ítem de menú "Debu- Figura 10
g>Ejecutar>Paso (Debug>Run>s-
tep)" (figura 10). Al hacerlo, el contador verá a su color original, y el contador del
del programa avanzará hasta la siguiente programa y otras informaciones de su es-
ubicación de instrucción. La barra oscura tado serán actualizadas.
seguirá el código fuente y el contador del
programa desplegado en la barra de es- Nota: Otra manera de ejecutar funcio-
tado avanzará hasta "4". nes es usar la barra de herramientas ubi-
Cuando ejecute el ítem de menú "De- cada en el margen superior de la panta-
bug>Ejecutar>Paso", advierta la aparición lla. Si ubica el cursor sobre los ítems de la
de un texto en el lado derecho del ítem barra de herramientas, podrá ver el nom-
de menú que dirá "F7". El mismo equivale a bre de su función en la barra de estado. El
"tecla de función siete" en su teclado. Mu- botón de la izquierda es un botón están-
chas funciones del MPLAB se asignan a dar "cambiar barra de herramientas
"teclas-especiales". Estas teclas cumplen la (change tool bar)" que le permite desple-
misma función que los ítems de menú a los gar las barras de herramientas disponibles.
cuales corresponden. Presione F7 varias Estas pueden ser personalizadas, como
veces y verá cómo el contador del pro- podrá advertirlo en la sección "Algunas Su-
grama y la barra avanzan a través del pro- gerencias" al final de esta guía. En la barra
grama. de herramientas de Debug, la luz verde es
Ejecute el ítem de menú "Debug>Ejecu- equivalente a F9 (Ejecución) y la luz roja
tar>Ejecutar (Debug>Run>Run)" o presione equivale a F5 (Detención).
F9 para inciar la ejecución del programa
desde la la ubicación actual del contador. Hasta aquí, aprendió a instalar el pro-
Los colores de la barra de estado cambia- grama y crear un archivo para “apr ender
rán, para indicar que el programa está a pr ogramar”.
ogramar” Dimos un ejemplo de pro-
ejecutando las instrucciones. Ninguno de gramación y ya sabemos cómo “corr er el
los campos de la barra de estado se ac- pr ograma en la PC” para saber si todo
tualizará mientras el programa esté en eje- está bien, antes de escribir dicho progra-
cución. ma en nuestro PIC. Sin embargo, cuando
Detenga el programa ejecutando el los programas son más largos, es posible
ítem de menú "Debug>Run>Halt (detener)" cometer errores, para evitarlos, sigamos le-
o presionando F5. La barra de estado vol- yendo este capítulo.

Todo sobre PICs 39


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

8) Abrir Otras Ventanas Para observación especial, este problema pue-


el Seguimiento de Errores de solucionarse.
Ahora, ya sabemos mejor qué es lo que
Hay muchas maneras de visualizar el estamos haciendo:
programa y su ejecución usando el
MPLAB. Por ejemplo, este programa está Pr ogramamos algo que incr ementa
destinado a incrementar un contador tem- en “1” cada vez que viene una señal”
porario pero, ¿cómo puede asegurarse y podemos verificarlo virtualmente, an -
que se está produciendo dicho incremen- tes de pr ogramar el PIC.
to? Una manera es abrir e inspeccionar
una ventana de registro de archivo. Puede 9) Creación de una
hacerlo ejecutando el ítem de menú "Ven- Ventana de Observación
tana>registros de archivo (Window>File Re-
gister)". Aparecerá una pequeña ventana Ejecute el ítem de menú "Ventana>Nue-
con todos los registros de archivo o el RAM va ventana de observación (Window>New
del 16F84. Watch Window)". Aparecerá el diálogo
Presione F7 (ejecute instrucción por ins- "Agregar Símbolo de observación (Add
trucción, si piensa anularlo) varias veces, y Watch Symbol)" (figura 11).
observe la actualización de valores en la Tipee "c1" en la caja de nombre de sím-
ventana de registro de archivo. Hemos co- bolo para que la lista se despliegue hasta
locado la variable del contador en la ubi- el símbolo deseado. Selecciónelo, presione
cación de dirección 0x0C. Mientras el con- el botón "Agregar (Add)", y luego el botón
tador temporario se incremente, este in- "Cerrar (Close)". Aparecerá en su escritorio
cremento se reflejará en la ventana de re- MPLAB una ventana de observación que
gistro de archivo. Los registros de archivo mostrará el valor actual del valor "c1" del
cambian de color cuando su valor cam- contador temporario.
bia, de modo que los cambios puedan Presione F7 varias veces para advertir
advertirse fácilmente en la inspección. De cómo se actualiza la ventana de observa-
todos modos, en muchos programas com- ción mientras el valor del contador se in-
plejos, varios valores pueden cambiar, así crementa. Si dejó la ventana de registro
resultará más difícil focalizar las variables de archivo abierta, la misma también será
que le interesan. Usando una ventana de actualizada (mueva una de ellas para que
pueda ver las dos en la pantalla).
Puede guardar la ventana de observa-
Figura 11 ción y sus configuraciones al ejecutar el
ítem "Guardar observación (Save Watch)"
debajo del botón del sistema, ubicado en
el ángulo superior izquierdo de la ventana
de observación. Al clicar este botón, se
desplegará un menú en cascada. Selec-
cione "Guardar observación" y aparecerá
el diálogo de exploración estándar ubica-
do en el directorio del proyecto. Elija algún
nombre arbitrario y presione "Aceptar
(OK)".

40 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

Si no nombra la ventana de observa- Clique el ítem de menú "Punto(s) de in-


ción, el MPLAB lo hará por usted. La ubica- terrupción (Break Point)". El menú desapa-
ción y el estado en la pantalla de la ven- recerá y la línea donde se ubicó el cursor
tana abierta o cerrada serán guardados cambiará de color, para indicar que ha si-
con el proyecto, de modo que la próxima do establecido un punto de interrupción
vez que abra su proyecto, sus ventanas de en dicha ubicación.
observación aparecerán restauradas. Presione F6 o ejecute el ítem de menú
"Debug>Ejecutar>Reset (Debug>Run>Re-
Nota: También puede editar ventanas set)" para resetear el sistema. Luego, pre-
de observación luego de crearlas. Use el sionando F9, ejecute el sistema. El progra-
botón del sistema y seleccione "Agregar ma se ejecutará y se detendrá en la ins-
Observación (Add Watch)" para que apa- trucción ubicada luego del punto de inte-
rezca un diálogo mediante el cual podrá rrupción. "c1", como aparece en la venta-
agregar más ítems. Con la tecla "Ins" po- na de observación o en la de registro de
drá hacer lo mismo. Si desea borrar un archivo, si la tiene aún abierta, reflejará el
ítem, selecciónelo y presione la tecla Supri- estado reset de cero, el modo instrucción
mir (Delete); la observación referida desa- por instrucción ejecutará la carga y c1 lue-
parecerá de la ventana. Puede seleccio- go reflejará un valor de 0x09. Presione F9
nar "Editar observación (Edit Watch)" en el varias veces y advierta que la barra de es-
menú del sistema para cambiar el modo tado cambia de color mientras el progra-
en el cual se muestra el ítem (en hex, bina- ma se esté ejecutando, y luego retorna a
rio, como una variable de 16-bit en vez de su color original cuando el procesador se
8-bit, etc.). detiene.

Resumen
10) Cómo se Marca un Punto
de Interrupción Hasta aquí, en este capítulo Ud. ha
aprendido:
Presione F5 ("Debug>Ejecutar>Detener") * configurar un nuevo proyecto.
para asegurarse que el procesador del si- * crear e ingresar un archivo fuente en un
mulador se ha detenido. Clique dentro de proyecto
la ventana del código fuente la línea si- * ensamblar un código
guiente al rótulo "start", que dice "movlw * ejecutar su código usando el simulador
0'09'". Presione el botón derecho del mou- * marcar puntos de interrupción y ejecu-
se para que aparezca el menú de la figu- tar su código paso a paso (instrucción por
ra 12. instrucción)
* observar variables en su código
Figura 12

Algunas Sugerencias:

PUNTOS DE INTERRUPCION - Puede marcar


puntos de interrupción en la ventana "Ven-
tanas>Memoria de programa (Window-
>Program Memory)", en la ventana de ar-

Todo sobre PICs 41


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

chivo fuente (en este caso tutor84.asm), o para funciones MPLAB y caracteres ASCII
en la ventana "Ventanas>Listado Absoluto especiales
(Windows>Absolute)". * Cambiar la fuente de la pantalla o el
tamaño de la fuente
ARCHIVOS FUENTE - Use "Ventana>Ventana * Posicionar la barra de herramientas a
de Proyecto (Window>Projet Window)" pa- un lado o al pie de la pantalla
ra que aparezca una lista de sus archivos * Modificar la barra de herramientas
fuente. Puede hacer un doble clic sobre el * Cambiar la cantidad de caracteres
nombre de un archivo para trasladarlo al desplegados para los rótulos.
editor.
ARCHIVOS MAPA - Use el diálogo "Proyec-
ERRORES MPASM - Si el MPASM le da un to>Editar Proyecto" y cambie las Propieda-
error, haga un doble clic sobre el error en des del Nodo del MPASM para producir un
la ventana de error para ir al error en el archivo MAP llamado tutor84.map. Luego
código fuente. Si tiene múltiples errores, de construir el proyecto, busque el tutor-
siempre elija el primer error —generalmen- 84.map para ver información de la cons-
te un error causa errores subsiguientes y al trucción.
reparar el primero corregirá los restantes.
MENUS DESACTIVADOS - Si encuentra menús
CONFIGURACIÓN DE BITS Y EL MODO DEL PROCE- desactivados (opacados), verifique que
SADOR - La configuración de bits en el archi- no haya ingresado el modo "sólo Editor
vo fuente no determinará el modo del pro- (Editor Only)". Si está seguro de que ha
cesador para el simulador (o los emulado- realizado correctamente la configuración,
res). Use "Opciones>Configurar Procesa- intente salir del MPLAB y reinicie el progra-
dor>Hardware (Options>Procesor Setup- ma.
>Hardware)" para estas configuraciones.
Aún cuando puede establecer estos bits
en el archivo fuente del MPASM o del Características del MPLAB no
MPLAB-C17, el MPLAB no cambia automá- Abarcados en este capítulo
ticamente los modos. Por ejemplo, la con-
figuración de bit Activar Observación de Hay muchas características del MPLAB
Dog Timer puede hacerse de tal modo que no se tratan en esta guía. En lugar de
que, cuando programe un dispositivo, el describir cada característica, generando
Dog Timer sea activado. En el MPLAB tam- una guía extensa y complicada, primero
bién necesitará acceder al diálogo "Op- hemos decidido darle el conocimiento bá-
ciones>Configurar Procesador>Hardware" sico para operar el MPLAB. Le ofrecemos a
para activar el WDT para el simulador o el continuación un punto de inicio para ayu-
emulador. Esto le permitirá hacer un segui- darlo a explorar otras herramientas del
miento de errores con el WDT activado o MPLAB.
desactivado sin cambiar su código fuente.

OPCIONES - Use "Opciones>Configurar En- Otras Ventanas de Datos y Diálogos


torno (Options>Enviroment Setup)" para
hacer lo siguiente: Hasta aquí, los diferentes “comandos” u
* Establecer teclas de Mapa Europeo “órdenes” del MPLAB, las hemos dado en

42 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

castellano y en inglés, dado que el progra-


ma está en inglés, pero para que sepa lo
que está haciendo, decidimos colocar su
traducción. De aquí en más, sólo coloca-
remos la traducción, dado que el lector
sabrá a qué orden nos referimos.
Esta guía ya le ha presentado la Venta-
na de Memoria de Programa y las Venta-
nas de Observación. Aún no ha explorado Figura 13
las otras ventanas. Debiera buscar
en "Ventana>Conjunto" y "Venta-
na>Registros de Función Especial"
para ver cómo el MPLAB puede
mostrar otras áreas de memoria.
Hay otros diálogos, como el diá-
logo "Debug>Configuración de
puntos de interrupción" para mar- Figura 14
car puntos de interrupción. trará una información algo diferente de la
La ayuda online y la Guía del Usuario registrada por el rastreo del emulador.
de MPLAB le explicarán el uso de estas ca- Para usar el amortiguador de rastreo del
racterísticas. simulador, primero debe seleccionar un
código a rastrear. Si clica y arrastra toda la
Rastreo ventana de memoria del programa, pue-
de seleccionar instrucciones para rastrear.
La ventana de rastreo le brinda una Presione luego el botón derecho del mou-
imagen "instantánea" de la ejecución de se para que aparezca un diálogo en el
su programa. Los emuladores que tienen cual podrá seleccionar "Rastrear Punto(s)".
un amortiguador de rastreo, pueden mos- Ahora resetee y ejecute el código, lue-
trar cómo se ejecuta su programa a altas go deténgalo después de haberse ejecu-
velocidades. tado durante algunos segundos. Seleccio-
ne "Ventana>Rastreo" para ver los resulta-
Nota: Algunas aplicaciones, como los dos del rastreo (figura 13).
sistemas de control de motor, no pueden El simulador coloca una marca de tiem-
ser detenidos. Algunos errores sólo apare- po en cada línea y también muestra todos
cen cuando la aplicación está en ejecu- los registros que cambiaron junto a sus va-
ción, no ocurren cuando se ejecuta el có- lores (figura 14).
digo instrucción por instrucción. El amorti- El estímulo genera señales para el simu-
guador de rastreo le brinda otra herra- lador. Puede establecer pines (pasadores)
mienta para probar este tipo de aplicacio- altos o bajos, e introducir valores directa-
nes. mente en los registros. Hay cuatro modos
En el simulador, el amortiguador de ras- de estímulo:
treo es útil para recoger un extenso regis- * Estímulo asincrónico - Un diálogo inte-
tro de la ejecución del programa, de mo- ractivo para controlar señales en los pines
do que pueda retornar al mismo y anali- de entrada
zarlo cuidadosamente. El simulador mos- * Estímulo de Archivo Pin - Los conteni-

Todo sobre PICs 43


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

los pines.
Por ejemplo, hemos configurado una
señal que cambiará de nivel en un pin I/O
sobre el puerto b del 16F84.
Seleccione "Debug>Estímulo de Simula-
dor>Estímulo Asincrónico..."
Vea la figura 15. Se desplegará el diálo-
go de la figura 16.
Ahora coloque el cursor sobre el botón
rotulado "Stim1 (P)" y clique el botón dere-
cho del mouse para que aparezca un diá-
logo en el cual debe seleccionar "Toggle"
Figura 15 (figura 17).
Coloque otra vez el cursor sobre el bo-
tón rotulado ahora "Stim1 (T)" (la "P" fue
reemplazada por una "T", que significa
"Toggle"), presione el botón derecho del
mouse, y seleccione "Asignar Pin..." (figura
Figura 16 18).
dos de un archivo de texto Aparecerá otro diálogo con una lista de
que describe señales a los los pines conectados al 16F84 (figura 19).
pines de entrada Coloque el cursor sobre el "RB0" y haga
* Estímulo de Archivo de un doble clic.
Registro - Los contenidos de Debería aparecer el diálogo de la figu-
un archivo de texto usado ra 20, de Estímulo Asincrónico.
para configurar valores de Advierta que el botón ahora aparece
Fig.17 como "RB0 (T)".
8-bit directamente en un
registro Elija "Debug>Ejecutar>Animado" para
* Estímulo de reloj - Una que el procesador se ejecute en el modo
fuente de pulsos de estímu- "paso a paso rápido". La barra de estado
lo periódica, regular y pro- alternará la ejecución con una detención
gramable. muy rápida.
Presione el botón "RB0 (T)" en el diálogo
Estímulo Asincrónico. Debería ver el cam-
Fig.18
Diálogo de Estímulo bio de valor del puerto b en la ventana
Asincrónico Registro de Función Especial mientras re-
petidamente clique el botón para simular
Esta característica de es- una señal alta y luego una baja aplicadas
tímulo provee un botón de al pin 0 del puerto b.
diálogo para simular volts
+5 y 0 aplicados a pines de
entrada. Mientras su pro-
Fig.19
grama se ejecuta con el si-
mulador, puede presionar los botones de
este diálogo para cambiar los niveles de Fig.20

44 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

Archivos de “Estímulo Pin”

Un archivo de estímulo pin


consiste en columnas de unos y
ceros de ingreso que serán apli-
cadas a los pines cuando el va-
lor "Ciclo" en el Reloj de deten-
ción alcance al de la columna
CICLO.
Use "Archivo>Nuevo archivo"
y tipee el texto de la tabla 2. No
debe tipear el texto que sigue a
los ";" y "!", que se limita a co-
mentarios.
Use "Archivo>Guardar co-
mo..." para guardar como tu-
tor84.sti.
Figura 21
Nota: Para mantener una
compatibilidad retroactiva con
versiones anteriores del MPSIM,
la primera línea siempre debe
comenzar con las palabras "CI-
CLO" o "STEP". Esta columna es-
pecifica el CICLO (como lo de-
termina la Ventana del Reloj de
Detención del MPLAB) donde
los valores de las otras columnas
serán aplicados.
Luego de la palabra "CICLO"
en la primera línea del archivo
se colocan los nombres de los
pines del microPIC que recibirán
los valores de estímulo altos y
bajos. En este ejemplo los pines
RB1 y RB0, por dos entradas del Figura 22
port (puerto) B, recibirán
entradas de estímulo. En Tabla 2
este archivo, la segunda CICLO RB1 RB0
columna contiene valo- 20 0 0
res que serán aplicados a 41 1 0 ; aplicar alta a puerto b bit 1
RB1 (puerto b bit 1) y la 52 0 1 ; aplicar alta a puerto b bit 0, establecer bit 1 bajo
55 1 1
tercera columna presen- 60 0 0
ta los valores para RB0 65 1 0 ; toggle bit 1, luego...
(puerto b bit 0). Estos 76 0 1 ! ...toggle bit 0.

Todo sobre PICs 45


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

nombres deben ser compatibles con los


nombres de pin del microPIC de Microchip
para el procesador que está siendo simu-
lado.

Nota: Puede ver todos los pines de so-


porte en la lista de asignación de pines
para el Estímulo Asincrónico (clique el bo-
tón derecho del mouse sobre un botón de
estímulo y se desplegará la pantalla de la Fig. 23
figura 21). Se pueden hacer comentarios blecida en el Diálogo Estímulo de Registro.
en una línea usando los caracteres ";" o "!", Esto es útil para simular una operación
precedidos y seguidos, como mínimo, por A/D. Abra un nuevo archivo usando "Archi-
un espacio. La ventana del Reloj de De- vo>Nuevo Archivo" y tipee la siguiente lista
tención también mostrará el tiempo trans- de números:
currido a cada instrucción, determinado
desde el valor CICLO y la frecuencia del 10
reloj. Si el Reloj de Detención se resetea a 2E
0, el archivo de estímulo pin también será 38
efectivamente reseteado. 41
Abra la ventana del Reloj de Detención 50
y seleccione "Ventana>Reloj de Deten- 7A
ción". También seleccione "Ventana>Regis- 99
tros de Función Especial". A0
Estaremos interesados en observar el FD
"puerto b". También se puede agregar el
puerto b a una ventana de observación Guárdela usando "Archivo>Guardar co-
(figura 22). mo..." y nómbrela tutor84.reg.
Resetee y ejecute instrucción
por instrucción hasta ejecutar
41 ciclos. Luego verá que el
"puerto b" cambió su valor al
asignado en la segunda línea
del archivo de estímulo.

Archivos de Estímulo
de Registro

Un archivo de estímulo de re-


gistro consiste en una columna
de los valores que serán envia-
dos a un registro cuando la di-
rección de memoria del progra-
ma alcance la ubicación esta- Fig. 24

46 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

chivo seleccionado (0x0D, con un valor de


0x50 como se muestra en la figura 25). Los
valores 0x10, 0x2E, etc. serán introducidos
en el registro seleccionado en el diálogo
"Debug>Estímulo de Simulador>Registro de
Estímulo", cada vez que se ejecute "loop".
Luego de introducido el último valor
Fig. 25 (0xFD en tutor84.reg), el primer valor será
usado nuevamente (0x10). La lista será cí-
clica mientras se ejecute el MPLAB-SIM.

Estímulo de Reloj

El estímulo de reloj genera una onda re-


gular sobre un pin con un ciclo obligatorio
especificado en términos de los ciclos de
reloj del procesador (figura 26).
Si abre el diálogo "Debug>Estímulo del
Simulador>Estímulo de Reloj...", podrá in-
gresar varios estímulos de reloj como se
Fig. 26 muestra en la figura 26. Cuando ejecute el
Este archivo será usado para introducir programa usando las configuraciones es-
secuencialmente estos valores en un regis- tablecidas en la figura, RB3 será Alta para
tro. Seleccione "Estímulo de Simulador>Estí- 4 ciclos de reloj, y luego Baja para 6 ciclos
mulo de Registro>Activar..." (figura 23) de reloj. RB4 será Alta para 8 ciclos de reloj
Luego configure "loop" para que se ubi- y luego Baja para 8 ciclos de reloj. Ambos
que en el programa cuando se introduz- valores se repetirán hasta que salga del
can los valores, y para propósitos de de- MPLAB o los elimine usando este diálogo.
mostración, introdúzcalos en el registro de
archivo en la dirección 0x0d. Luego de
configurar "loop" y "0d" en sus cajas corres- Interrupción Condicional
pondientes, presione "Explorar" para que
aparezca el diálogo de archivo, en el cual El diálogo punto de interrupción com-
podrá seleccionar tutor84.reg como el ar- plejo es útil para configurar un punto de in-
chivo de estímulo de registro (figura 24). terrupción en una condición compleja y
Abra la ventana "Ventana>Registros de especial.
archivo" para ver el efecto de este estímu-
lo, aparecerá el listado de la figura 25.
Resetee y luego ejecute instrucción por Cómo Cargar el PIC
instrucción el procesador. Cada vez que
llegue a 'loop', el valor en el registro de ar- Una vez que estamos seguros que nues-
chivo en la dirección 0x0D cambiará. La tro programa funciona de acuerdo con el
lista de valores en tutor84.reg será secuen- test realizado mediante el empleo de
cialmente introducida en el registro de ar- nuestro programa, estamos en condicio-

Todo sobre PICs 47


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

nes de “grabar nuestr o PIC”,


PIC” para lo del lenguaje ensamblador, el linker y el bi-
cual debemos seguir las instrucciones da- bliotecario, que pueden ser descargados
das en el capítulo 2. de la página web de Microchip. También
Cabe aclarar que el programa MPLAB está disponible una guía del linker en las
tiene, en su barra de herramientas, un íco- direcciones de Internet que fuimos especi-
no de ayuda (HELP) que explica paso por ficando.
paso todo lo que se puede hacer con el
programa. Para muchos, el problema resi- PICMASTER, ICEPIC, MPLAB-ICE
de en que los textos de ayuda están en in- Estas son Guías de Usuario separadas
glés. Para que tenga una idea de la infor- para la operación de emuladores que
mación que contienen dichos archivos de pueden descargarse de la página web de
ayuda, nosotros hemos traducido unas 450 Microchip.
páginas que paulatinamente iremos publi-
cando a modo de guías para diferentes PICSTART Plus y PRO MATE
funciones. Estos son programadores de dispositivo
Veamos entonces, algunos de los pro- de Microchip. Vea la Guía del Usuario
ductos que podremos consultar: MPLAB PRO MATE y la del PICSTART Plus.
Ambos manuales pueden descargarse de
Características del Editor la página web de Microchip.

El editor de archivo del programador MPLAB-C17


con el MPLAB tiene un conjunto de carac- El compilador 17cxxx opera con el
terísticas para la escritura y edición del có- MPLINK y el Administrador de Proyecto del
digo fuente. MPLAB. Vea la Guía del Usuario de MPLAB-
C17 y la Guía del Proyecto v3.40 del
Reloj de Detención MPLAB.

El Reloj de Detención le permite medir el Herramientas de Tercer Orden


tiempo de ejecución del código. No siempre El PIC C de alta tecnología, el compila-
es preciso en la ejecución instrucción por ins- dor CCS y el PIC BASIC de MicroIngeniería
trucción. El reloj de detención calcula el pueden ser usados con el MPLAB. Vea sus
tiempo en base a la frecuencia del reloj del documentaciones respectivas para obte-
microPIC. Configure la frecuencia del reloj ner más información sobre su uso con el
en el diálogo "Opciones>Configurar Proce- MPLAB.
sador>Frecuencia de Reloj...".

Proyectos de Archivo Múltiple Problemas


Usando el linker, puede tener dos o más
archivos en un proyecto. Vea la Guía del Vaya a las conferencias sobre el micro-
Proyecto v3.40 de MPLAB para más infor- PIC y Sistemas de Desarrollo en www.mi-
mación. crochip.com para hacer preguntas que
pueden ser útiles para principiantes o ex-
MPASM pertos. Los ingenieros de Microchip Appli-
El MPASM, junto con la guía del Usuario cation, experimentados usuarios del micro-
de MPLINK & MPLIB describe la operación PIC, y los ingenieros de Sistemas de Desa-

48 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

Figura 27

Figura 28

Todo sobre PICs 49


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

Figura 28 (continuación)

rrollo participan en estas conferencias. loj con microcontrolador que emplea un


Este es el modo más rápido para ven- display de cristal líquido de muy bajo con-
cer los obstáculos que puedan surgir, infor- sumo. El diagrama posee el valor de cada
mar sobre problemas o simplemente revi- componente. El programa en Assembler se
sar las preguntas ya registradas de otros grafica en la figura 28.
usuarios a fin de obtener ayuda.

Lector de Tarjeta
EJEMPLOS DE APLICACIÓN CON PICS Magnética Codificada.

Reloj con Display de Cristal LCD Este circuito es muy fácil de construir y
emplea un PIC preprogramado, lo cual no
En la figura 27 se da el circuito de un re- impide que un lector “experto” pueda pro-

50 Todo sobre PICs


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

gramar su Figura 29
propio com-
ponente,
dado que
brindamos el
listado del
programa
compilado.
El prototi-
po emplea
un lector de
tarjeta mag-
nética Ca-
non CCM02
2NO 21 93
20 u otro si-
milar. Preci-
samente, la
dificultad de
conseguir
este compo-
nente en el
mercado lo-
cal es causa
de que aún
no hayamos

Figura 30

Todo sobre PICs 51


CÓMO ESCRIBIR PROGRAMAS Y HACER LA VERIFICACIÓN EN LOS PICS

Figura 31

publicado un artículo completo sobre el En la figura 30 se da el diseño de la pla-


tema, que tenemos a disposición desde ca de circuito impreso para realizar el
hace varios meses. Sin embargo, confia- montaje y en la figura 31 se da el listado
mos en que los proveedores locales impor- del programa compilado, que deberá ser
ten a la brevedad estos elementos con el cargado en el PIC.
obejeto de que podamos publicar la men- Cuando se desea “grabar” una tarjeta
cionada nota. con un código almacenado en el PIC, se
En la figura 29 se da el circuito comple- debe colocar el jumper (puente) JP2,
to del lector de tarjeta (smnartcard o tarje- cuando se desea “leer” el código graba-
ta inteligente) con el valor de sus compo- do en la tarjeta, se debe hacer un puente
nentes. en JP1 y quitar el de JP2.

52 Todo sobre PICs

También podría gustarte