Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En el mes de Febrero del 2010, en esta misma revista, publicamos un artículo Mediante un sencillo conmuta-
dedicado al laboratorio USB-PIC’School. En él se explicaba sus características, dor el usuario elige uno de los tres
www.microcontroladores. arquitectura y posibilidades. Han transcurrido dos años desde que se comenzó modos de trabajo disponibles en el
com la comercialización de este equipo. Durante este tiempo han sido numero- laboratorio USB-PIC’School:
sos los centros de estudios, empresas, alumnos, profesionales y aficionados 1) Modo RUN. Sirve para com-
Mikel Etxebarría Isuskiza que se han acercado al mundo de los microcontroladores PIC de la mano de probar el funcionamiento real de una
es Dtor. Técnico de Inge- esta potente, flexible y económica herramienta, tanto a nivel nacional como aplicación, cuando el programa ya
niería de Microsistemas internacional. está depurado y grabado sobre la
Programados S.L. (MSE) También han sido numerosas las presentaciones, seminarios y cursos de forma- memoria del PIC, al que también le
ción sobre PIC’s que, desde MSE, hemos realizado utilizando este laboratorio habremos conectado los periféricos
como plataforma de prácticas en todas las demostraciones, charlas y clases con sus líneas de E/S.
impartidas. 2) Modo USB. En este modo el
Durante este mismo tiempo también nos hemos encontrado en el mercado laboratorio conecta su sistema de
con múltiples herramientas, tanto hardware como software, para el desarrollo depuración/grabación con el puerto
de aplicaciones basadas en PIC. Una de ellas, a nuestro juicio la más relevante, USB del PC. Se emplea durante la
es el lenguaje gráfico FlowCode para la programación de PIC’s, y distribuido fase de depuración de la aplicación.
por Ingeniería de Microsistemas Programados (MSE). De este lenguaje, y de El usuario puede ejecutar su progra-
su relación con el laboratorio USB-PIC’School, hablaremos en el presente ma paso a paso, insertar puntos de
artículo. parada, visualizar y/o modificar los
registros internos, variables del pro-
lizar gran cantidad de aplicaciones y grama, etc. En resumidas cuentas, se
proyectos. puede seguir el curso de la ejecución
•Se conecta con el PC mediante un del programa y localizar y corregir los
puerto USB, e incluye un sistema para fallos en el mismo. Este modo tam-
la depuración y grabación de nues- bién permite grabar la memoria del
tros programas y aplicaciones. PIC con el programa recién depurado
•Compatible a nivel de hardware y puesto a punto. Todo ello se realiza
con el sistema PICkit 2 de Microchip. mediante el entorno MPLAB-IDE ori-
Esto nos permite utilizar el entorno ginal de Microchip y gratuito.
de desarrollo MPLAD-IDE. Desde el 3) Modo ICSP. En este modo el
MPLAB-IDE editamos, ensamblamos, laboratorio USB-PIC’School se puede
simulamos, depuramos, ejecutamos conectar con herramientas de depu-
y grabamos sobre el PIC, todos nues- ración/grabación externas proporcio-
tros programas. nadas por otros fabricantes: ICD2,
•Incluye un CDROM con el manual en ICD3, PICkit 3, REAL ICE, etc.
castellano, tutorial y una colección de El laboratorio USB-PIC’School
más de 70 ejemplos de programación incluye un elevado conjunto de pe-
escritos en ensamblador y en C de riféricos comunes en la mayor parte
alto nivel. de las aplicaciones comerciales. Un
Figura 1. El laboratorio El laboratorio USB- •Se presenta totalmente montado detalle importante es que dichos pe-
USB-PIC’School en su PIC’School y comprobado, listo para funcionar, riféricos no están conectados a las
maletín de transporte y sobre un maletín que facilita su trans- líneas de E/S del PIC de forma fija y
almacenamiento. Se muestra en la Figura 1. De en- porte y almacenamiento. Unicamente predeterminada. Se pueden unir a las
tre sus muchas características vamos precisa de un alimentador externo líneas de E/S que se deseen y cuando
destacar las siguientes: de 12VDC. sea necesario, mediante un cableado
•Admite dispositivos PIC encapsula- rápido sin soldadura. Teniendo en
dos en 8, 18, 28 y 40 patillas de las El usuario conecta mediante ca- cuenta que una misma línea de E/S de
conocidas familias PIC12, PIC16 y bleado sin soldadura, los diversos un PIC actual puede tener múltiples
PIC18. De serie incorpora el potente periféricos disponibles con las líneas configuraciones y aplicaciones, esta
controlador PIC16F886. de E/S del PIC, según precise. También posibilidad la consideramos impres-
•Integra un buen número de peri- dispone de un módulo board para el cindible para las labores formativas
féricos. Ello no permite estudiar y montaje sin soldadura, de cualquier y de diseño.
explotar al máximo los recursos que tipo de circuito eléctrico auxiliar que Se enumeran los diferentes peri-
integra el controlador, así como rea- la aplicación pudiera requerir. féricos disponibles:
Configuracion del
entorno de trabajo
coincide con ninguno de esos cuatro Herramienta Ir a Punto de co- Los comandos encerrados den-
Figura 14. Herramienta valores, el programa sigue su curso nexión tro de un bucle se pueden ejecutar
Punto de conexión sin hacer temporización alguna. Esta herramienta se emplea jun- mientras se produzca una condición
to con la anterior. Permite ir o saltar (“Bucle Mientras”) o hasta que se
al punto de conexión de destino al produzca esa condición (“Bucle Has-
que debe dirigirse el flujo del pro- ta”). En el ejemplo el bucle se ejecuta
grama. La ventana de propiedades hasta que el valor de la variable “En-
se muestra en la figura 15. tradas” sea igual a 0. En el momento
En el campo “Ir a Punto de Co- en que se cumpla esta condición, el
nexión” asignamos un nombre o bucle finaliza y el flujo del programa
etiqueta del punto de destino. En el reanuda su curso.
ejemplo hemos asignado la etiqueta Las condiciones se pueden eva-
“Bucle”. luar y comprobar si se cumplen, al
La figura “Principio” del bucle o al “Final” del
16 muestra un mismo. Los comandos o instrucciones
sencillo ejem- que componen un bucle también se
plo en el que se pueden ejecutar un número determi-
emplean ambas nado de veces. Para ello, activamos e
herramientas. indicamos en el campo “Recuento de
Comenzamos bucle”, el número de veces deseado
Figura 15. Herramienta Herramienta Punto de conexión estableciendo (entre 1 y 255).
Ir a Punto de conexión Una de las tareas más frecuentes un punto de Indicar que también se puede crear
en el desarrollo de un diagrama de conexión lla- un bucle en el que sus comandos se
flujo o programa, es desviar la ejecu- mado “Bucle”. ejecuten de for-
Figura 16. Un sencillo ción a un punto de destino de forma A continuación ma indefinida e
bucle sin fin. incondicional. Esta herramienta, cuya se lee el conte- incondicional.
ventana de propiedades se muestra nido del Puerto Basta con activar
Figura 17. Herramienta en la figura 14, permite establecer un A de entrada y “Bucle Mientras”
de Bucles punto de conexión de destino. se deposita en e introducir el va-
la variable “En- lor 1 en el campo
tradas”. Seguidamente, el conteni- de condiciones.
do de la variable “Entradas” (el valor En el ejemplo
del Puerto A) se deposita sobre el de la figura 18
Puerto B de salidas. vemos un bucle
El programa finaliza con la he- que consiste en
rramienta “Ir a Punto de Conexión” leer las entradas
llamado “Bucle”, lo que origina del Puerto A y
que el flujo se desvíe al punto de reflejarlos en las
conexión superior. Como conse- salidas del Puer-
cuencia de todo ello, tenemos un to B. El bucle se
programa que lee el valor de las ejecuta hasta
Figura 18. Ejecución En el campo “Etiqueta” asigna- entradas del Puerto A y lo deposita que las entradas
condicional de un bucle mos un nombre o etiqueta al punto sobre el Puerto B de salida. Esto se valgan 0.
de destino. repite de forma indefinida en lo que
Figura 19. Herramienta En el ejemplo hemos asignado la se conoce como un “bucle sin fin”. Herramienta Macro
Macro etiqueta “Bucle”. Cualquier cambio en las entradas
se verá inmediatamente reflejado Una macro no es ni más ni menos
en las salidas. que una función o una subrutina. Está
compuesta de cualquiera de los coman-
Herramienta Bucle dos o iconos disponibles y/o también de
Esta herramienta de Bucle se otras macros. Es una opción muy intere-
emplea para repetir una tarea, bien sante que ahorra mucho tiempo de pro-
de forma incondicional o indefinida, gramación y, sobre todo, mucho código
o bien hasta que se cumplan las de programa. Una macro realiza una
condiciones indicadas. La figura 17 determinada tarea compuesta de varios
muestra la correspondiente ventana comandos. Nuestro programa principal
de propiedades. Esta herramienta puede ejecutar esa tarea simplemente
siempre se muestra como dos ico- llamado a la macro tantas veces como
nos, uno de inicio y otro de final. sea necesario, sin tener que reescribir los
Entre ambos, a modo de sándwich, comandos que la componen. La figura
se alojan los comandos de progra- 19 muestra la ventana de propiedades
ma que forman el bucle. del comando Macro.
utilizadas en múltiples proyectos o colocan en el “Panel de Montaje”, CH(0) y un led, el LED(0). Ambos
aplicaciones. en donde se establecen sus propieda- componentes se suponen previamen-
•Importar. Esta opción permite leer des y conexiones con el controlador. te dibujados y definidos en el panel
y recuperar desde un archivo en dis- Cada componente tiene asociadas, de montaje.
Figura 23. Herramienta co las distintas Macros que hubiera según sus características, un número La primera Macro de compo-
Macro de Componentes almacenadas determinado de funciones o Macros nentes lee el estado del SWITCH(0)
para su control. Ya lo veremos más conectado con la línea RA0, y lo de-
adelante. posita en la variable “Entradas”. Este
Cuando empleamos la herra- se evalúa mediante la herramienta
mienta “Macro de Componentes” y de decisión.
hacemos doble clic sobre ella, apare- Si RA0=0 se ejecuta la función
ce una ventana de propiedades como “LEDApagado” contenida en la Ma-
la mostrada en la figura 23. En ella cro de componentes LED(0). La línea
disponemos de un listado con todos de salida RB0 se pone a nivel “0” y el
los componentes que hubiera en ese led se apaga.
momento en el panel de montaje Si RA0=1 se ejecuta la función
y accedemos a todas las funciones “LEDEncendido” contenida en la Ma-
asociadas a los mismos. En la figura cro de componentes LED(0). La línea
vemos que hay dos componentes: de salida RB0 se pone a nivel “1” y el
un interruptor SWITCH(0) y un led led se enciende.
LED(0). Al seleccionar por ejemplo, el Se trata de un bucle sin fin que
SWITCH(0), a la derecha, en la venta- se ejecuta constantemente.
na “Macro”, aparecen las funciones a
él asociadas. Hay tres:
1) LeerEstado. Lee el estado de la
línea de entrada a la que está conec-
tado el SWITCH(0) y lo deposita en la
variable de retorno que se indica en el
campo “Valor de Retorno(BYTE)”.
2) EsperarHastaAlto. Espera a
que la línea de entrada a la que está
conectado el SWITCH(0) se ponga a
nivel “1”. En este momento finaliza
la Macro o función, que no retorna
ningún valor.
3) EsperarHastaBajo. Espera a
que la línea de entrada a la que está
conectado el SWITCH(0) se ponga a
nivel “0”. En este momento finaliza
Figura 24. Herramienta Herramienta Macro de la Macro o función, que no retorna
Macro de Componentes Componentes ningún valor.
La figura 24 muestra la misma
Figura 25. Ejemplo con FlowCode 4 incluye una serie de ventana de propiedades de la herra-
Macros de Componentes componentes o periféricos con los mienta ”Macro de Componentes”.
que podemos construir, para su simu- En esta ocasión se selecciona el com-
Figura 26. La Herra- lación, el circuito eléctrico de nuestra ponente LED(0) donde podemos ver
mienta de Cálculo aplicación. Estos componentes se las funciones o Macros asociadas a
éste:
1) LEDEncendido. La línea de Herramienta de
salida donde se encuentra conectado Cálculo
el LED(0) se activa.
2) LEDApagado. La línea de sali- Otra herramienta esencial en
da donde se encuentra conectado el FlowCode 4 es la llamada “Herra-
LED(0) se desactiva. mienta de Cálculo”. Permite insertar
Estas funciones no necesitan de operaciones lógico/aritméticas en
ningún otro parámetro. nuestros programas. La ventana de
En la figura 25 se muestra un propiedades se muestra en la figura
sencillo ejemplo que utiliza la herra- 26.
mienta “Macro de Componentes” En el campo “Mostrar Nombre”
para utilizar las funciones o Macros podemos escribir el comentario que
que permiten controlar, de forma deseemos. En el campo “Cálculos”
muy sencilla, un interruptor, el SWIT- describimos los cálculos a realizar.
La herramienta de Manipulación En FlowCode sucede lo mismo 4. Su ventana de propiedades se Figura 27. Herramienta
de Secuencia permite manipular y que en la mayor parte de lenguajes muestra en la figura 30 y consiste de Manipulación de
operar con cadenas de caracteres de alto nivel. Es imposible prever y simplemente en un área donde po- Secuencia
ASCII. Su ventana de propiedades se diseñar las herramientas y Macros demos insertar todo tipo de textos
muestra en la figura 27. o Funciones necesarias para aprove- que describan el programa y facilite Figura 28. Herramienta
En el campo “Funciones de” edi- char TODOS los recursos del micro- su comprensión y análisis. de interrupciones
tamos las operaciones a realizar con controlador. Puede haber casos en
una o varias cadenas de caracteres. que el lenguaje como tal no pueda
El botón “Variables” nos permite realizar ciertas tareas. Por ello, este
crear, borrar, editar o usar variables tipo de lenguajes siempre tienen
de secuencia o cadenas. una puerta abierta que nos permi-
El botón “Funciones” nos pre- ta insertar nuestro propio código
senta una lista con todas las funcio- fuente en C o en ensamblador, para
nes disponibles para el manejo de resolver aquellas tareas que FlowCo-
secuencias o cadenas de caracteres. de no pueda realizar directamente.
En el ejemplo de la figura, la Disponemos así de la herramienta
variable “Cadena1” se carga con la Código C.
cadena “Hola “ y la variable “Cade- La ventana de propiedades de
na2” con la cadena “Mundo”. La esta herramienta es muy sencilla y se
variable “Cadena3” se carga con muestra en la figura 29. Simplemen-
el resultado de concatenar las dos te consiste en un editor de textos
cadenas anteriores, por lo que su donde escribimos nuestro programa
contenido será “Hola Mundo”. empleando instrucciones del lengua-
je C o del lenguaje ensamblador.
Herramienta de
Interrupción Herramienta de
Comentarios
FlowCode 4 también soporta la
activación/desactivación de algunas Es la última herramienta de
de las interrupciones más relevantes comandos que dispone FlowCode
del microcontrolador seleccionado.
En la figura 28 se muestra la ven- Figura 30. Herramienta
tana de propiedades de esta herra- de Comentarios
mienta.
En el campo “Interrumpir en”
seleccionamos la fuente de inte-
rrupción, por ejemplo la interrup-
ción externa INT. Aunque no están
disponibles todas las que tiene el
controlador, si están las más repre-
sentativas. Con el botón “Propieda-
des” se selecciona el evento deseado
para esa interrupción. Por ejemplo,
en el caso de la interrupción externa
INT, podemos seleccionar el flanco Figura 29. Herramienta
ascendente o descendente. para insertar código C o
En el campo “Llamará al Macro” ensamblador