Está en la página 1de 10

Diseño con PICs

El lenguaje grafico FlowCode y el laboratorio


USB-PIC’School. Una revolucion en la formación y
el diseño de aplicaciones con µCs PIC (1ª parte)
Por Mikel Etxebarría Isuskiza

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:

50 REE • Enero 2012


Diseño con PICs

•Sencillo interface de usuario. Basta


simplemente con coger iconos y
arrastrarlos sobre el área de trabajo
para confeccionar un diagrama de
flujo que responda a las necesida-
des de la aplicación. No es necesario
escribir un programa de la forma
tradicional, instrucción a instruc-
ción.
El laboratorio USB-PIC’School se ternos que integran, y que son comu- •Rápido y flexible. FlowCode 4 inte-
comercializa también en la versión nes en la mayor parte de dispositivos gra un gran número de subrutinas
“De Luxe” como se muestra en la de la gran familia PIC. de alto nivel para la gestión de di-
figura 2. Esta versión incluye la fuente En el aspecto práctico se hace versos componentes, lo que facilita
de alimentación y una colección de una extensa explicación del entorno un rápido desarrollo de cualquier
varios controladores PIC de las dife- de trabajo MPLAB-IDE y sus diferen- aplicación. El método de programa-
rentes familias y con diferentes pati- tes herramientas para la edición, en- ción de FlowCode 4 permite el uso
llajes. Se presenta sobre un maletín samblado, simulación, depuración y de prácticamente todos los recursos
de aluminio robusto y elegante. grabación de programas. También se que integra el microcontrolador.
explica la integración con el laborato- •Resultado libre de errores. Cuando
rio USB-PIC’School y se complementa se diseña un programa, su funciona-
con una colección de unos 100 ejem- miento se puede simular totalmente
plos prácticos. sobre el PC. El ejecutable obtenido
Se dedica un anexo completo a se puede grabar directamente sobre
la introducción del lenguaje gráfico la memoria de programa del micro-
FlowCode V4 para la programación controlador.
de PÎC’s •Arquitectura abierta. FlowCode 4, Figura 2. La versión
al igual que la mayor parte de los De Luxe del USB-
El lenguaje grafico lenguajes gráficos y/o de alto nivel, PIC’School
FlowCode ofrece una puerta abierta para que
Por último indicar que desde el usuario pueda insertar sus pro-
Junio del 2011, en todas las libre- Desarrollado por Matrix Multi- pias funciones o subrutinas escritas
rías especializadas está disponible media Limited (www.matrixmulti- en lenguaje ensamblador o en C.
la última obra de Mikel Etxebarria, media.com). Se trata de un lenguaje
autor también de este artículo. Se gráfico, orientado a iconos, con los Características
trata del título “Micro controladores que el programador diseña su pro- Las más relevantes son:
PIC: Teoría y Prácticas”. Editado por grama de aplicación, describiendo •Soporta diferentes microcontro-
Creaciones Copyright se muestra en el organigrama o diagrama de flu- ladores. Según la versión elegida,
la figura 3. jo del mismo. Aunque aconsejable, FlowCode 4 puede trabajar con dis-
no se hace necesario tener grandes positivos PIC, AVR, Atmel y ARM.
conocimientos de electrónica ni de El presente artículo se refiere a la
microcontroladores, por lo que es un versión para controladores PIC’s
lenguaje destinado a prácticamente •Soporta diferentes sistemas de
todo tipo de usuarios: aficionados, comunicación. FlowCode 4 integra
estudiantes de ESO, Formación Pro- las funciones necesarias para im-
fesional tanto en grado medio como plementar comunicaciones según
en grado superior, ingenierías, profe- diferentes estándares o protocolos:
sionales, investigadores y desarrolla- I2C, SPI, RS232, Bluetooth, Zigbee,
dores de aplicaciones. La gran ventaja IrDA, CAN, LIN, TCP/IP, Webserver,
de FlowCode 4 es que permite, con USB y RFID.
unos mínimos conocimientos, crear •Soporta Componentes estándar.
complejos sistemas electrónicos en Efectivamente, FlowCode 4 inte-
muy poco tiempo. gra las funciones necesarias para
el control de los componentes más
Ventajas típicos usados en cualquier aplica-
Son muchas las ventajas que ción: LEDs, interruptores, teclados,
ofrece el empleo de un lenguaje pantallas, LCD de texto y gráficas, Figura 3. Libro teórico-
como el FlowCode 4: displays de 7 segmentos, memorias práctico
•Ahorro de tiempo y dinero. Flo- EEPROM, dispositivos de comunica-
En el aspecto teórico de la obra wCode 4 facilita el diseño rápido ción, etc.
se muestra la arquitectura y progra- de sistemas y aplicaciones basadas •Panel de montaje. Donde coloca-
mación de los mismos y se desgrana en microcontroladores (en nuestro mos y conectamos los componen-
todos y cada uno de los recursos in- caso los PIC’s). tes eléctricos que forman parte del

REE • Enero 2012 51


Diseño con PICs

proyecto y que serán controlados Trabajar con FlowCode 4 Instalación de FlowCode 4


desde nuestro programa. Permite La mecánica de trabajo con
la simulación del funcionamiento FlowCode 4 es muy similar a la Excepto la versión libre, que se
de los mismos. empleada con cualquier otro len- descarga directamente desde la web
•Soporta diferentes herramientas. guaje: del fabricante, las versiones Home
Una vez compilado y ensamblado •Diseño del programa fuente. Sim- y Pro se presentan en un CDROM.
el diagrama de flujo, se obtiene el plemente, cogiendo y arrastrando Basta con ejecutar el programa de
programa ejecutable *.HEX. Este los diferentes iconos de comandos instalación y seguir las instrucciones
fichero puede ser utilizado por la disponibles, vamos dibujando el que van apareciendo.
mayor parte de equipos grabadores organigrama o diagrama de flujo Una vez instalado el programa,
disponibles en el mercado, para de nuestra aplicación. Haciendo se permite su uso durante 30 días
proceder a grabar la memoria de clic sobre esos iconos de comandos como máximo antes de ser activado.
programa del controlador. También podemos ajustar los diferentes pa- De no hacerlo así dejará de funcionar
soporta herramientas propias dise- rámetros y propiedades asociados y el usuario deberá contactar con
ñadas y comercializadas por Matrix a ellos. De este modo, el diseño Matrix Multimedia para adquirir un
Multimedia y de otros fabricantes de programas complejos se realiza nuevo código. El proceso de activa-
como el PICKit 2 de Microchip o, lo rápidamente. ción es sencillo:
que es lo mismo, ¡¡ Nuestro labo- •Diseño del sistema. FlowCode 4 1) Durante la instalación de Flo-
ratorio USB-PIC’Shool !!. En este dispone de una gran variedad de wCode, se pide introducir el código
caso basta un simple clic para com- periféricos típicos como leds, inte- de licencia que acompaña al CDROM.
pilar el diagrama de flujo y volcarlo rruptores, pantallas LCD, etc. En el Se le denomina “Código CD”.
directamente sobre nuestro PIC. panel de montaje podemos colocar 2) Al ejecutar FlowCode hacemos
los que necesitemos en nuestra click en el botón “Activate license”.
Versiones de FlowCode 4 aplicación y asignarles sus corres- Esto nos abre la página web de ac-
FlowCode 4 se puede adquirir pondientes propiedades y conexio- tivación del fabricante, donde se nos
en diferentes versiones, indepen- nes. Es decir, podemos realizar el pide el nombre de usuario y una di-
dientemente del modelo de micro- montaje del circuito eléctrico. rección válida de correo electrónico.
controlador que vaya a ser usado: •Simulación del programa. Flow- 3) Al cabo de un tiempo se recibe
•La versión libre. Se puede descargar Code 4 dispone de herramientas un email de confirmación.
de forma gratuita desde la web del para la simulación y depuración de 4) Transcurridos unos días como
fabricante (www.matrixmultimedia. nuestro programa. Podemos ejecu- máximo, se recibe un nuevo email
com). Es ideal para poder evaluar el tar el programa paso a paso, ico- con un código permanente de licen-
producto sin coste ni compromiso no a icono, analizar los resultados cia al que se le denomina “Código de
alguno. obtenidos sobre los componentes registro”. Este código se introduce a
•La versión de estudiante o “Home”. del sistema, editar y/o visualizar través del menú Help → Register.
Es bastante económica y está espe- las variables del programa o eje-
cialmente dirigida a estudiantes y cutar la simulación en tiempo real. Si, por algún motivo, el proceso
aficionados. Es una buena alternati- Podemos comprobar el correcto de instalación fallara, se debe contac-
va para todos aquellos usuarios que funcionamiento, interactuando di- tar con support@matrixmultimedia.
quieran comenzar a utilizar esta téc- rectamente con los componentes com e indicar el mensaje de error que
nica de programación y, sobre todo, que hemos colocado en el panel nos indique.
para aquellos que desean familiari- de montaje.
zarse con el hábito de programar. •Descargar y grabar el microcon- Ejecucion de Flow-
•La versión “Pro” profesional. Es la trolador. Con un único botón pode- Code 4
versión completa de FlowCode 4, sin mos compilar, ensamblar y grabar
ningún tipo de límite ni restricciones. el programa ejecutable obtenido, Para ejecutar el FlowCode basta
Admite la mayor parte de dispositi- sobre la memoria física del micro- con hacer clic en su correspondiente
vos PIC así como todos los compo- controlador. FlowCode 4 se puede acceso directo del escritorio de nues-
nentes e iconos. No tiene límite en conectar directamente con el labo- tro PC. Transcurrido un cierto tiempo,
el código generado. ratorio USB-PIC’School (compatible aparece el área de trabajo tal y como
La siguiente tabla resume las con PICkit 2), cuyo dispositivo PIC se muestra en la figura 4.
características de cada una de estas recibirá el programa para una eje- El área se divide en diferentes
tres versiones. cución real y definitiva. secciones. Cada una de ellas se puede
visualizar o no en la pantalla, selec-
cionándola mediante la opción “Ver”
del menú principal.
•Menú principal. Aparece en la línea
superior de la pantalla. Contiene las
diferentes opciones de trabajo del
programa FowCode. Algunas de estas
opciones, como “Archivo”, “Editar” y
“Ver” son comunes a otras aplicacio-

52 REE • Enero 2012


Diseño con PICs

nes Windows. El resto son opciones


propias del programa y algunas de
ellas las comentaremos en este ar-
tículo.
•Caja de Herramientas. Se encuen-
tra justo debajo de las opciones del
menú principal. Contiene, en forma
de botones, algunas de las opcio-
nes del menú más utilizadas: Nuevo,
Abrir, Salvar, Cortar, Pegar, Imprimir,
etc. También hay botones para la eje-
cución de nuestro programa de apli-
cación: Ejecutar, Entrar, Saltar, etc.
•Herramientas de comandos. Se vi-
sualizan en vertical, a la izquierda de
la pantalla. Contiene los diferentes
iconos con los cuales vamos a confec-
cionar los organigramas o diagramas
de flujo correspondientes a nuestro
programa de aplicación. Estos co-
mandos se arrastran y colocan dentro
del área de trabajo. Opciones del Compilador determinados” para dejarlos en su Figura 4. La pantalla de
•Area de trabajo. Es el área en donde Se establece mediante “Chip”→ estado original. trabajo de FlowCode 4
se van colocando todos los iconos o “Opciones del compilador”. Se abre Especial mención se merece el
comandos que forman el organigra- una ventana como la mostrada en campo “Programador” resaltado en
ma, se conectan entre sí y se estable- la figura 5. Los distintos campos de la figura. Con él se establece el gra-
cen sus parámetros y propiedades. esta ventana permiten establecer di- bador al que FlowCode va a dirigir el
•Herramientas de componentes. ferentes parámetros, y las rutas que programa ejecutable, para grabarlo
Aparece arriba, justo debajo de la caja debe utilizar FlowCode para acceder físicamente sobre la memoria del
de herramientas. Cada uno de esos al compilador, el enlazador, el pro- microcontrolador. En el caso que nos
botones nos permite seleccionar de gramador, etc. Estos campos vienen ocupa observamos que se ha selec-
entre un buen número de dispositivos establecidos por defecto y se aconseja cionado el PICkit-2. Este grabador,
periféricos que pueden ser utilizados no modificarlos. En cualquier caso, si original de Microchip,… ¡¡es com-
por nuestra aplicación: Dispositivos lo hiciéramos, siempre disponemos patible con el USB-PIC’School!!, del
más comunes, Dispositivos de entra- del botón “Restaurar Valores Pre- que ya hemos hablado.
da, de salida, de comunicaciones por
radio frecuencia, etc. El componente
elegido se coloca sobre el panel de
montaje desde donde se definen sus
propiedades y conexiones.
•Panel de montaje. Es el área don-
de se irán colando los componentes
y periféricos que se emplean en la
aplicación.
•Propiedades del panel. En esta ven-
tana se editan algunas de las propie-
dades de los objetos que se encuen-
tran en el panel de montaje.
•Barra de estado. Se visualiza a la
izquierda, en la parte inferior de la
pantalla. Aparecen pequeños men-
sajes que informan del estado del
sistema.

Configuracion del
entorno de trabajo

Antes de empezar con un nuevo


proyecto o aplicación, conviene con-
figurar una serie de parámetros para Figura 5. Configuración
establecer las condiciones y el entor- por defecto del entorno
no de trabajo del FlowCode 4. del FlowCode 4

REE • Enero 2012 53


Diseño con PICs

Figura 6. Selección y feccionar los programas. Todas ellas


configuración del micro- se encuentran en la columna de la
controlador izquierda de la pantalla de trabajo.
Cuando cualquiera de los iconos
de comandos se traslada al área de
trabajo, queda automáticamente co-
nectado con el resto de iconos existen-
tes. Vamos dibujando así, paso a paso,
el organigrama. Al hacer un doble clic
con el botón izquierdo del ratón sobre
cualquiera de los iconos existentes,
se abrirá su correspondiente ventana
de propiedades, en donde estable-
ceremos los diferentes parámetros
del comando en cuestión. Todas las
ventanas de propiedades de todas las
herramientas de comandos disponen
de un botón (“?”) que nos facilita la
información de ayuda correspondiente
(en castellano).
Selección del microcontrolador En el caso que nos ocupa hemos
Esta acción, fundamental a lo seleccionado el PIC16F886 contenido Herramienta Ingreso
hora de comenzar cualquier proyec- en el laboratorio. Podemos compro- Permite ejecutar tareas relacio-
Figura 7. Las opciones de to o aplicación, se realiza mediante bar que su palabra de configuración nadas con la adquisición de datos
un proyecto basado en “Chip” → “Configurar” → “Swtich queda establecida de forma similar a procedentes de los Puertos de en-
FlowCode 4 To Expert”. como se hace en los ejemplos escritos trada del controlador. La figura 8
en ensamblador y en C. muestra su icono así como la ventana
de propiedades que se abre, cada vez
Opciones del proyecto que hacemos doble clic sobre él. En el
Para acabar. La configuración campo “Mostrar Nombre” podemos
exige definir una serie de opciones añadir un comentario, por ejemplo
propias del proyecto con el que vamos “Leer entradas”, que aclare la opera-
a trabajar. Estas se eligen mediante ción que vamos a realizar. Es similar a
“Ver” → “Opciones de Proyecto” que los comentarios que se ponen en los
nos abre una ventana como la mos- programas fuente escritos en ensam-
trada en la figura 7. blador o en lenguaje C.
Las opciones generales nos permi- En el campo “Variable” indica-
ten seleccionar el modelo de microcon- mos en qué variable se va a guardar
trolador que se va a emplear durante el valor leído desde el Puerto de en-
la simulación. Por defecto, debe ser el trada. Podemos pulsar el botón “Va-
mismo que se eligió mediante “Chip” riables…” que nos abrirá una nueva
→ “Configurar” → “Swtich To Expert”. ventana donde podremos crear, edi-
De igual manera, podemos seleccio- tar y borrar variables de 8 bits, de 16,
nar la velocidad del reloj del sistema de cadenas ASCII o strings y variables
así como la velocidad que deseamos para almacenar números en coma
utilizar durante la simulación. flotante.
También hay opciones para la de- En el campo “Puerto” seleccio-
puración en circuito o ICD en tiempo namos qué Puerto de entrada del mi-
real. Estas opciones sólo son útiles si crocontrolador vamos a leer. Según el
disponemos de la herramienta hard- modelo de PIC seleccionado, pode-
ware que propone Matrix Multimedia mos leer desde el PUERTO A hasta el
como es su depurador “FlowKit”. PUERTO X en función de los Puertos
disponibles. En el ejemplo se lee el
Herramientas de Puerto A
comandos La lectura de un Puerto de entrada
puede hacerse a nivel de un bit único
Son los iconos o símbolos gráficos o a nivel del puerto completo. En este
con los que vamos a confeccionar los caso podemos hacer además una lec-
Figura 8. Herramienta de Aparece una nueva ventana organigramas o diagramas de flujo tura enmascarada. Es decir, podemos
ingreso como la mostrada en la figura 6. En de nuestra aplicación. Es decir, los indicar qué bits de ése puerto son los
ella se ajustan parámetros propios del comandos se corresponden con tareas que nos interesa leer. En el ejemplo se
controlador que vayamos a utilizar. concretas con las que vamos a con- leen los bits 0,2 y 3 del Puerto A.

54 REE • Enero 2012


Diseño con PICs

Herramienta de Salida valor de la variable “Entradas” es igual


Permite ejecutar operaciones a 1. Esto es equivalente a evaluar si la
relacionadas con los Puertos de sali- línea RA0 de la puerta A está a nivel
da del controlador. En la figura 9 se lógico “1” o no. En caso afirmativo, el
muestra el icono y la correspondiente curso de la ejecución se desvía por la
ventana de propiedades. En “Mostrar derecha. En caso contrario la ejecución
Nombre” podemos añadir el comen- continúa su curso. Podemos activar (o
tario deseado. En el campo “Variable no) el campo “Intercambiar Si y No”.
o Valor” introducimos directamente En este caso el desvío del curso de la
el valor de salida o bien el nombre de ejecución se produce si NO se da la
la variable que contiene el valor que condición establecida. Las condiciones
deseamos sacar. En el ejemplo saca- pueden estar formadas por números
mos el valor de la variable “Entradas”. y/o variables y uno de los siguientes
En el campo “Puerto” seleccionamos operadores:
el puerto de salida, Puerto B en el
ejemplo. Figura 9. Herramienta
La escritura sobre un Puerto de de salida
salida también se puede realizar a
nivel de bit único o a nivel de Puerto Figura 10. Herramienta
completo. En este caso la escritura de temporización
puede ser o no enmascarada. En el
ejemplo se escribe únicamente sobre Herramienta de Expresión o decisio-
los bits 0, 2 y 3 del Puerto B. nes múltiples
La figura 12 muestra la corres-
Herramienta de Demora (tempori- pondiente ventana de propiedades.
zación) Se trata de una herramienta similar a
Permite realizar todo tipo de tem- la anterior herramienta de decisión.
porizaciones basadas en la frecuencia La diferencia es que aquella podía
de trabajo del sistema que hemos se- generar dos posibles resultados (SI
leccionado mediante las opciones del o NO) en función de la evaluación.
proyecto (“Ver” → “Opciones de Pro- En este caso se pueden evaluar hasta Figura 11. Herramienta
yecto”). Su ventana de propiedades diez posibles condiciones. Resultan de decisión
se muestra en la figura 10. Como en especialmente útiles a la hora de per-
todas las herramientas, en el campo sonalizar el programa para que reac-
“Mostrar Nombre”, podemos incluir cione de formas diferentes basándose
un comentario. En el campo “Tiempo en una variable de entrada.
de Demora o Variable” introducimos En el campo “Expresión” se indica
el valor a temporizar. Este valor se el nombre de la variable cuyo conteni-
puede indicar directamente (13 en el do se desea evaluar, “Entradas” en el
ejemplo), o bien indicando el nombre ejemplo. Los campos “Caso”, cuando
de la variable que lo contiene. En este se activan, permiten determinar con
caso pulsamos el botón “Variables…” qué valores hay que comparar el con-
para seleccionarla de entre todas las tenido de la variable “Entradas”: 1, 4,
que estén definidas y disponibles. 2 o 7. Cuando coincide uno de ellos,
Esta ventana de propiedades el flujo de ejecución del programa
también nos permite seleccionar las toma un camino u otro. Si no coin-
unidades en que se representa el cide con ninguno, la ejecución sigue
tiempo: Microsegundos, Milisegun- su curso. Esto se aprecia claramente
dos o Segundos. En el ejemplo se rea- en la figura 13.
liza una temporización de 13 mS. Se evalúa el valor de la variable “En-
tradas”. Si es igual a 1, se temporiza 1
Herramienta de Decisión segundo; si es 4 se temporiza 4 segun-
dos; si es 2 se temporiza 2 segundos y
Se trata de la clásica toma de de- si es 7 se temporiza 7 segundos. Si no
cisiones. Se realiza una determinada
evaluación y, en función del resulta- Figura 12. Herramienta
do, el flujo del programa va por un de expresión múltiple
camino o por otro. En la figura 11 se
muestra la correspondiente ventana
de propiedades. En el campo “En Caso
de Que” se establece la condición. En Figura 13. Evaluando
el ejemplo de la figura se evalúa si el cuatro posibilidades

REE • Enero 2012 55


Diseño con PICs

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.

56 REE • Enero 2012


Diseño con PICs

En el campo “Mostrar Nombre” corresponde con el valor cargado des-


podemos escribir un comentario. En de el Puerto A. Si el valor leído es 0, el
el campo “Macro” podemos ver una Puerto B de salida saca 0b00001111,
lista con todas las macros disponibles. si es 1 se saca 0b11110000, si es 2 se
Seleccionamos la que necesitemos en saca 0b01010101 y, por último, si se
un momento dado. lee 3 desde el Puerto A de entrada,
Mediante el botón “Crear Nuevo se saca el valor 0b10101010 por el
Macro” accedemos a una ventana Puerto B de salida. Si el valor leído
que nos permite definir una nueva no es ninguno de esos cuatro, por el
Macro. Puerto B se saca 0.
Con el botón “OK&Editar Macro” En la figura 22 se muestra cómo
podemos editar una Macro. Es decir, queda el pro-
describir los componentes que debe grama princi-
ejecutar para realizar una determi- pal. Consiste en
nada tarea. un bucle sin fin
que ejecuta los
Crear Nueva Macro siguientes co-
Cuando se pulsa el botón “Crear mandos:
Nueva Macro” se nos abre una ven- 1) Lee el Puerto
tana como la mostrada en la figura A de entrada y
20. En el campo “Nombre del Nuevo almacena su
Macro” indicamos el nombre que le contenido en la
queremos asignar a esa Macro, por variable ”Entra- •Nuevo. Nos permite definir una nue- Figura 20. Definición de
ejemplo, “Test”. das” va Macro. una Macro
En el campo “Descripción del 2) Llama a la •Mostrar. Nos presenta un listado de
Nuevo Macro” podemos poner un Macro “Test” todas las Macros que hubiera defini-
texto que describa la tarea que realiza donde se eje- das. Haciendo clic sobre cualquiera de
la Macro. cutan las com- ellas nos mostrará su composición.
En el campo “Parámetros” po- probaciones •Borrar. Visualiza la lista de Macros Figura 22. El programa
demos definir datos o variables de descritas ante- disponibles para que seleccionamos principal del ejemplo
entrada que nuestra Macro pueda riormente. aquella que queremos borrar.
necesitar. Salta a la vista que el empleo •Editar. Visualiza el contenido de
En “Variables Locales” podemos de las Macros, que no dejan de ser una Macro con objeto de editarla
crear y editar variables que sólo serán funciones o subrutinas, facilita enor- añadiendo, modificando o quitando
utilizadas por la propia Macro. No memente la compresión de un pro- componentes de la misma.
se usan en ningún otro si lugar del grama. •Descripción. Nos permite modificar
programa de aplicación. el texto que describe la función de
En el campo “Tipo de Retorno” El comando Macro del menú prin- una Macro.
se indica si la Macro devuelve, tras su cipal •Exportar. Con esta opción podemos
ejecución, un valor de 8 bits, de 16 Este comando nos abre una serie guardar una Macro sobre un archi-
bits, una cadena ASCII o un número de opciones relacionadas con el em- vo en disco. Esto nos permite crear
en coma flotante. También se pue- pleo de las Macros: librerías de Macros que pueden ser
de indicar que no se retorna ningún
valor.

Edición de una Macro


Cuando se pulsa el botón
“OK&Editar Macro”, aparece una
nueva hoja en blanco en el área de
trabajo. En ella vamos colocando
los comandos o instrucciones que se
deben ejecutar cada vez que se llame
a la Macro. En la figura 21 se muestra
un ejemplo de la Macro que hemos
llamado “Test”.
Podemos ver que, en el área de
trabajo, aparece una nueva pesta-
ña correspondiente a la hoja donde
vamos a dibujar el diagrama de flu-
jo con las funciones que integra la
Macro “Test”. Empieza evaluando el Figura 21. Contenido de
valor de la variable “Entradas” que se la Macro “Test”

REE • Enero 2012 57


Diseño con PICs

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.

58 REE • Enero 2012


Diseño con PICs

El botón “Variables” nos abre se indica qué Macro o función se


una ventana donde podemos crear, debe ejecutar cada vez que se pro-
editar, borrar y seleccionar distintas duzca la interrupción. Con el botón
variables. Con el botón “Funciones” “Crear Nuevo Macro” creamos una
accedemos a todas las funciones nueva función. Con el botón “OK &
lógico/aritméticas disponibles. Editar Macro” editamos el conteni-
En el ejemplo, la variable “Sa- do de la Macro. Es decir, dibujamos
lidas” se carga con el resultado de el organigrama de tareas que esa
multiplicar por tres el valor de la Macro debe ejecutar. El funciona-
variable “Entradas” y sumarle dos. miento es muy similar al empleado
en la herramienta de componente
Herramienta “Macro”.
Manipulación de
Secuencia Herramienta Código C

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

REE • Enero 2012 59

También podría gustarte