Está en la página 1de 55

INTRODUCCIN

Hoy en da la automatizacin es parte de la vida del hombre, al hablar de


automatizacin esta implcito el termino de tarjeta de control, estas son
programadas algortmicamente e interactan con una serie de componente,
como los sensores, las cuales les suministran informacin a la tarjeta de
control, para el monitoreo de las variable presente un proceso, y los
actuadores, permiten la modificacin de la variable, sustituyendo en cierta
forma la mano del hombre, la programacin de la tarjeta se realiza
directamente en un circuito integrado la cual pudiera ser un microprocesador o
microcontrolador, funcionando estos como el cerebro del sistema.
La programacin de los microprocesadores y los microcontroladores, se ha
considerado una tarea compleja, inicialmente se programaba en cdigo
assembler y lenguaje C, a medida que ha avanzado la tecnologa han surgido
una serie de lenguaje de programacin orientado a la programacin de
microcontroladores, MPLAB inicialmente facilitaba la tarea de la programacin
en cdigo assembler, lenguaje C para programar micros solo se le era mas
fcil a pocos programadores, pero estas dos herramientas eran poco didctica
y engorrosa a la hora de realizar una pequea tarea, picbasic le dio un sentido
un poco mas orientado a objeto, pero no era suficientemente didctico, luego
surgi NIPLE un software que facilitaba en gran forma la programacin, pero
con ciertas limitaciones como, el manejo de variable punto flotantes, limitacin
en el numero de micros a programar, paginacin de memoria, adems se tenia
que disponer de tiempo, componentes y herramienta para verificar el
funcionamiento del programa, hasta que llego FLOWCODE, el nico programa
que permite la programacin y prueba virtual, contando con diversas
herramienta avanzadas, programando un numero considerable de familia de
microcontroladores como lo son PIC, AVR y ARM, resolviendo el problema del
manejo de variable, dando paso a crear herramientas propias de usuario, en
flowcode, cdigo assembler y lenguaje C.
El presente manual ilustra de forma detallada el uso de las herramientas
bsicas de Flowcode as como tambin las conexiones bsicas a nivel de
hardware. Esta herramienta permitir la inclusin de nuevos programadores
de microcontroladores PIC, AVR y ARM, abriendo un mundo de soluciones en
el rea de automatizacin y control, en las diversas rama de la ciencia como:
robtica, meca trnica, electromedicina entre otras.

FLOWCODE PROGRAMA ORIENTADO A LA PROGRAMACIN DE


MICROCONTROLADORES PIC.

Objetivo general.
Estudiar y manejar el programa de Flowcode, para que los participantes
puedan programar a cualquier microcontrolador PIC .
Objetivo especficos.
Describir de forma breve la funcin, programacin y aplicaciones de los
microcontroladores.
Conocer el Entorno Flowcode.
Estudiar las herramientas y configuraciones bsicas que posee flowcode
para realizar los ejercicios pautados en el curso.
Elaborar los ejercicios establecidos en el curso, incorporando mejoras en
las aplicaciones exigidas.
Conocer las conexiones bsicas a nivel de hardware para la elaboracin
de montajes prototipos.
Herramientas requeridas en curso.
1. Herramientas Fsicas.
Los recursos utilizados para impartir el curso son: pizarra acrlica, marcador,
lapto, video bean, protoboard con montaje de prueba, tarjeta programadora.
2. Herramientas Virtuales Software.
Power Point, Word, Flowcode, Labview y WINPIC800 3.55B.
Metodologa.
Basado en el mtodo cientfico, una vez estudiado las aplicacin y evolucin
de la programacin de los microcontroladores, se proceder a conocer el
entorno y las herramientas bsicas de flowcode, posteriormente se realizaran
ejercicios prcticos, siendo estos dirigidos por el instructor, cuando los mismos
estn funcionando de manera virtual en el programa, cada usuario deber
compilar el programa en flowcode y extraer en un pendriver el archivo .hex
generado por el compilador que posee flowcode, luego el estudiante se dirigir
al montaje de prueba, donde se cargara en el micro el programa realizado,
verificando el funcionamiento real del programa a nivel de hardware. Se

pueden realizar los ejercicios de forma individual o en grupo (mximo de 2


personas).
Dirigido.
A estudiante del
ltimo nivel de su carrera
y/o profesionales con
conocimientos bsico de electrnica analgica y digitales, con intereses a fines
a la programacin y diseo de tarjetas de control.
Evaluado.
Promediando las evaluaciones de todos ejercicios, bajo los criterios de:
Deficiente: no cumpli con ninguno de los requerimientos del ejercicio.
Regular: cumpli medianamente con los requerimientos del ejercicio.
Bueno: cumpli con casi todos los requerimiento del ejercicio.
Sobre saliente: cumpli con todos los requerimientos.
Excelente: cumpli con todos los requerimiento y realizo mejoras.
Nmero de participante:
De 8 a 20 participantes mximo de acuerdo al espacio del laboratorio, donde se
impartir el curso.

Contenido de Flowcode para Pic.

Definicin de Flowcode.

Configuracin del entorno Flowcode.

Estudio del entorno de Flowcode, conociendo las herramienta de


diagrama de flujo y herramienta virtuales tipo hardware.

Ejemplo de programacin simulacin y practica, usando diodo led con


secuencia de tiempo para aplicaciones de semforos.

Ejemplo de programacin simulacin y practica, usando diodo led y


potencimetro, para aplicaciones de monitoreo y control on-off.

Ejemplo de programacin simulacin y practica, usando potencimetro y


displays , para aplicaciones de indicadores.

Ejemplo de programacin simulacin y practica, usando potencimetro y


pantalla lcd, con operaciones matemticas, regla de tres formulas y
variable punto flotante, para aplicaciones de control de precisin.

Ejemplo de programacin simulacin y practica usando pantalla lcd y


teclado matricial, para aplicaciones de control de acceso.

Ejemplo de programacin simulacin y practica usando potencimetro,


pantalla lcd y comunicacin rs232. con aplicaciones en Labview. para
sistemas de adquisicin datos y control.

Ejemplo de programacin simulacin y practica usando el modo pwm,


como generador de seales.

Ejemplo de programacin simulacin y practica referente a la creacin


de macro o subrutina, bajo lenguaje Flowcode, lenguaje c cdigo
assembler.

Ejemplo de programacin simulacin y practica del uso de las


interrupciones timer0 y timer1 para realizar tarea cada cierto tiempo
determinado.

Estudio de ejercicios de comunicacin usb, lcd grafico y motores pas a


paso. potencimetro digital, y dac 10bits.

Estudio de circuitos para activacin de cargas dc, ac (sw de estado


slidos).

Estudio de Flowcode para PIC y sus aplicaciones. La herramienta del futuro


para la programacin de Microcontroladores.

Al hablar de automatizacin est implcito el trmino de tarjeta de control,


estas son programadas algortmicamente e interactan con una serie de
componentes, como lo son los sensores y actuadores, la programacin de la
tarjeta se realiza directamente en un circuito integrado, las cuales pudieran ser
un microprocesador o microcontrolador, funcionando estos como el cerebro del
sistema. Al realizar un estudio sistemtico de las diversas herramientas de
programacin existentes en el mercado en el rea de microcontroladores y
microprocesadores, arrojo como resultado que el programa mas completo para
la programacin de microcontroladores es Flowcode, un novedoso programa
orientado a la programacin de diversos microcontroladores tipo AVR, ARM y
PIC, nico software de programacin de micro, que posee dos ambientes
simultaneo, uno de programacin de diagrama de flujo y otro de simulacin lo
que lo hace exclusivo, contando con mltiples herramientas virtuales tipo
hardware como: Interruptores, Pulsadores, Diodo Led, Display, LCD, GLCD,
Teclado Matricial, RS232, USB, PWM, Interrupciones, EEPROM, Timer,
Bluetooth, GPS, Ethernet, X.10, Servomotores, Motores Paso a Paso, Mdulos
RF, Protocolo TCPIP, Webserver, entre otros, puede trabajar con mas de 47
tipos de sensores y mas 150 aplicaciones de la empresa matriz multimedia,
mas otras aplicaciones externa, permitiendo adems al usuario realizar
herramientas propias en Flowcode, Lenguaje C o Cdigo Assembler, contando
con su propio compilador, y programador. A travs del mtodo cientfico se
realizo un estudio terico prctico de Flowcode, la cual permiti la elaboracin
de un manual de Flowcode para PIC, este brindara a los investigadores de esta
rea, mltiples soluciones en materia de automatizacin, el mismo viene
sustentando por un curso terico prctico ha impartirse en el IUT Cumana y su
extensin de Punta de Mata. Con miras a ser extendido a otros institutos del
pas.

Palabras claves: diseo, control, programacin.

CURSO DE FLOWCODE

Flowcode es un programa orientado a la programacin de


microcontroladores AVR, ARM y Microchip, la programacin se realiza a travs
de diagrama de flujo,
una vez construido el programa, Flowcode permite
traducir el diagrama de flujo a lenguaje C, o a cdigo assembler (ASM), y a su
vez compila el programa dentro del mismo entorno, genera el cdigo .HEX,
que es el que finalmente se graba en el micro a travs de la placa del
programador y su respectivo software. Flowcode tiene 2 ambiente simultneo,
uno de diagrama de flujo y otro panel de componente hardware, permitiendo
simular el comportamiento del programa a travs de una serie de componentes
virtuales tipo hardware colocado en el panel de componente. Flowcode posee
una serie de subrutina que permiten monitorear y/o controlar los componentes
virtuales hardware, permitiendo observar el comportamiento del programa. Sin
necesidad de realizar montaje de pruebas, sino cuando finalmente se va a
montar en la placa prototipo con la garanta que brinda Flowcode de un ptimo
funcionamiento del programa segn la simulacin respetando sus pruebas de
simulacin.
Este programa le permite al programador realizar subrutinas propias, bien
sea Cdigo Assembler o en Lenguaje C, segn sea la preferencia del
programador. Para convertirla en macro bloque en lenguaje Flowcode, con la
salvedad que ese cdigo no permite la simulacin de los componentes.
Conocimientos bsicos.
Antes de comenzar a explicar el programa de Flowcode para aquellos que se
estn iniciando en esta rea de la electrnica, es necesario tener
conocimientos bsicos de electrnica analgica y digital, las conexiones
bsicas que debe tener un micro para que funcione el programa realizado en
Flowcode, las cuales se va a descargar al microcontrolador a travs del
programador.
La figura 1 muestra conexin bsica de un microcontrolador, los pines comunes
de conexin en los microcontroladores son:
Mclr : Masterclear
Gnd: Tierra
Vdd: Voltaje positivo
Osc1: Entrada de cristal
Osc2: Salida de cristal

Figura 1. Conexiones Bsicas de los Microcontroladores.


El Programador
Una vez realizado el programa en Flowcode u otro lenguaje de
programacin de micro, se debe compilar el programa en un software
compilador, este genera un archivo con extensin .HEX, en donde el usuario
debe contar con un programador. Este es una tarjeta que se conecta al PC, y
dentro de ella, se inserta el micro a programar, cada programador posee un
software el cual permite que se transfiera el archivo .Hex generado en el
compilador al microcontrolador.
Unos de los programadores ms verstil econmico que programa diversos
microcontroladores, es el programador WINPIC800 3.55B, la cual permite
detectar el micro en la tarjeta, programarlo y a la vez permite probar el
programa sin necesidad de sacar el micro de la tarjeta, suministrndole la
energa del puerto USB al circuito, la figura 2 muestra la conexin ha realizar,
se recomienda dejar libre los pines rb6 y rb7, pudindose utilizar estos pines en
el circuito, solo como salida de led, hay que conectar los pines de vdd y gnd del
micro a 5vdc y gnd del programador.

Figura 2. Conexin Fsica del Programador.

Pasos para configurar el entorno FlowCode


Antes de comenzar a programar, al abrir el programa lo primero que se ve
es una subventana, en donde le pregunta al programador si se va crear un
nuevo programa o se va abrir un programa existente, elegimos la opcin nuevo.
La cual se observa la figura 3.

Figura 3. Primer Entorno de Flowcode.


Luego de elegir la opcin nuevo se abre una nueva ventana, en la cual el
programador debe elegir el modelo del microcontrolador a usar. Visto en la
figura 4.

Figura 4. Eleccin del Micro a Utilizar.


Posteriormente se abrir el entorno de flowcode, si el entorno no esta en
espaol, damos clic en la opcin view y luego el ultimo tems de global
options opcin y en la opcin override languaje se cambia la opcin a
espaol.

Una vez establecido el idioma, procedemos a elegir el cristal que va utilizar


el micro en el montaje. Volvemos a elegir la opcin view y luego elegimos
Project options.
En la figura 5 se puede observa la ventana Project Options, en ella se
encuentra la configuracin del programa por ejemplo en target se observa el
modelo de micro a utilizar, la velocidad del reloj que se vaya utilizar en un
posible montaje, la velocidad de simulacin entre otros parmetros.

Figura 5. Opciones de Proyecto


En la opcin view es importante que este seleccionado todas las herramientas
y panel tal como se ilustra en la figura 6

Figura 6. Opciones de View (vista).

10

Herramienta de comando: son todos los comandos de diagrama de flujo.


Herramienta de componentes: son todos los componentes virtuales que
posee flowcode.
Chip: micro utilizado en el programa.
Panel: es el entorno donde se colocan los componentes virtuales.
Pasos a la hora de estructurar un programa en Flowcode.
Una vez configurado el entorno Flowcode referente al lenguaje, tipo de micro a
utilizar, velocidad del cristal a usar en el circuito, y la visualizacin de todas las
herramientas para realizar el programa, se procede a realizar los siguientes
pasos.
Establecer los elementos virtuales que requiere el programa e insertarlo
en el entorno de componente.
Una vez insertado el componente se selecciona el mismo y se procede a
dar click a la derecha del usuario en la opcin Ext Properties, all el
usuario podr modificar las caractersticas fsicas de los componentes,
as como elegir otra serie del mismo componente.
Luego el usuario debe entrar en la opcin Connections, all se debe
establecer las conexiones del componente en el microcontrolador.
En la opcin ayuda el usuario podr consultar al programa, acerca del
funcionamiento del componente virtual elegido si lo desea.
Los primero macros que se acostumbran a insertar son los de
configuracin de elementos virtuales claro esta, en el caso de utilizar
elementos virtuales con operacin de inicializacin. Los macros de
inicializacin no deben estar en ciclos repetitivos.
Los siguientes macros a insertar son los de interrupcin si el programa
utiliza interrupcin.
Posteriormente se acostumbran a utilizar etiquetas o ciclos repetitivos y
dentro de ellos, mltiples operaciones de acuerdo a la lgica del
programa.
Una vez realizado toda la estructura del programa en la opcin Chip se
elije configurar para establecer las opciones de compilador, el cual se
explica mas detalladamente en el presente manual, una vez configurado
estas opciones, el usuario podr traducir y compilar el programa en ASM
(cdigo assembler) lenguaje C y cdigo .Hex que es el que finalmente
se grabara en el microcontrolador a travs de la tarjeta programadora
por medio de un PC y un software.

11

ENTORNO FLOWCODE

SMBOLO DE HERRAMIENTAS VIRTUALES


Figura
Autor: Ing. Ulises Gmez
www.electronicalatianoamericana.com
Apure _ Venezuela
ulitronic@cantv.net

7. Entorno Flowcode.
IUT Cumana Ext. Punta de Mata
1era Revisin

12

Smbolo para Insertar Led


Smbolo Para Insertar Hasta 8 Led

Smbolo Para Insertar Display

Smbolo Para Insertar hasta 4 Display.

Smbolo Para Insertar Pantalla LCD.

Smbolo para Insertar Pantalla GLCD Grfica.

Smbolo Para Insertar Interruptor.

Smbolo Para Insertar Hasta 8 Interruptores.

Smbolo para Insertar Potencimetro Analgico.

Smbolo para Insertar Teclado Matricial.

Smbolo que Inserta Instrumento para Observar el Contenido de la Memoria del


Micro.
Smbolo que Inserta Instrumento para Observar la Seal PWM Generada.

Smbolo que Inserta Instrumento que Simula la Comunicacin entre el Micro y un


PC por RS232.
Smbolo que Inserta Instrumento que Simula la Comunicacin entre el Micro y
dispositivo que Maneje i2c.
Smbolo que Inserta Motores Servomotor.

Smbolo que Inserta Motor Paso a Paso.

13

Manejo del Protocolo SPI.


Manejo de Protocolo Para el Manejo de USB Modo Esclavo Mdulo Matriz.

Manejo de Protocolo para el Manejo de USB.

Manejo de Mdulos Externos RF.


Manejo de Protocolo TCPI Mdulos Matriz.
Manejo de Protocolo TCPI Para Publicar Datos en Servidor Web Mdulos Matriz.

Manejo de Protocolo Bluetooht Mdulos Matriz.


Manejo de Protocolo para el Manejo de Memorias Micro SD Mdulos Matriz
Manejo de Protocolo Para Manejar Msica Mdulos Matriz
Manejo del GPS Mdulos Matriz
Manejo de los Motores del Carrito Matriz

14

EXPLICACIN BSICA DE LOS SIMBOLOS DE FLOWCODE: el cuadro 1


denota los smbolos existentes en Flowcode y su funcin bsica.
Este smbolo se utiliza para leer en un bit o todo el puerto del
micro
Este smbolo se utiliza para escribir en un bit o todo el puerto
del micro
Este smbolo es un bloque D de delay o demora
Este smbolo es un condicional usados con variable y
constante con operaciones con o sin parntesis y comandos
como: =,<><, <=, >, >=,>>, <<,
Este smbolo es una estructura de casos
Smbolo A: Etiqueta para definir un salto
Smbolo A para Salto a etiqueta
Loop al incluir este smbolo se incluyen 2 smbolo
permitiendo repetirse de manera infinita o N veces lo que
esta dentro del ciclo.
Smbolo usado para llamar un macro hecho por el usuario o
crear uno nuevo
Smbolo usado para llamar macro o subrutinas para
manipular los componentes insertado
Operaciones matemtica : con parntesis ( ), =, <>,+, -, *, /,
MOD, <, <=, >, >=,>>, <<, NOT, AND, OR, XOR NOT, AND,
OR, Exclusive OR
Conversiones de formato string, flotante, entero
Activacin y llamado a subrutinas dentro de la interrupcin
Este smbolo permite crear un bloque realizando las
operaciones en cdigo assembler o lenguaje c
Smbolo para insertar comentario

Cuadro1. Smbolos de Diagrama de Flujo de Flowcode


15

Insertar y editar un bloque.


Para insertar un bloque se debe a puntar el puntero del mouse sobre el
smbolo deseado, manteniendo click izquierdo del mouse presionado permite
arrastrar el smbolo y colocarlo donde el usuario lo desee. Para editar un
bloque el usuario debe dar doble clic sobre el bloque a editar, para modificar
y/o insertar operaciones. Se puede seleccionar mltiples bloque al igual que la
opcin de cortar de paint, y arrastras donde desee el usuario esos mltiples
bloque.
El smbolo de ayuda este presente en todas las ventanas de
configuracin de los bloques del diagrama de flujo, la cual a la hora que el
usuario tenga alguna duda la satisfaga.
Creacin de variables de usuario
La mayora de los bloque en su configuracin posee un botn de Variable,
all el usuario podr crear los tipos de variable que considere necesario utilizar
en el programa, y a su vez utilizarla en el bloque a programar, dando doble
ciclo sobre la variable se copiara en la caja de texto de configuracin del bloque
una vez creada, la figura 8 muestra el entorno de la creacin y seleccin de
variables.
Los tipos de variable son:
Byte: la cual es un registro de 8 bits.
Entero: la cual es un nmero que oscile entre -32768 a 32767
Secuencia: variable orientada a cadena de caracteres string de cdigo ascci.
Hasta 20 dgitos.
Punto flotante: variable que almacena valores positivos negativos y con
decimales.

La figura 8. Entorno de la Creacin y Seleccin de Variables.

16

Manejo de formatos:
Todos los bloques de configuracin a la hora de pedir el valor de una
variable, el usuario debe elegir el tipo de variable que solicita el programa, tiene
dos opciones, tomar una variable del tipo que se solicita, o colocar un valor
constantes, las cuales podr ser dependiendo del formato de la variable.
Flowcode admite valores entre el intervalo -32768 a 32767 de todos sus
formatos numericos. Es decir no maneja coherentemente valores numricos
fuera de ese intervalo, manejndose de forma circular o modular.
A nivel numrico a la ahora que se desea asignar un valor a un variable
numrica constante como byte y entero (int) se puede introducir de tres forma.
En decimal: se coloca el nmero deseado: 255
En hexadecimal: se coloca el nmero hexadecimal deseado con el
prefijo 0x ejemplo: 0xFF
En binario se coloca el nmero binario deseado con el prefijo 0b
ejemplo: 0b11111111
Las variables float (punto flotante) admiten nmeros con signo y decimales,
para definir los decimales deben ser a travs de un punto ejemplo 1.23
Las variables string (secuencia) admiten cadena de caracteres a travs de
las comillas como por ejemplo hola usuario adems a la hora de crear la
variable por defecto admite hasta 20 caracteres, y el usuario puede reducir a
esta cadena si lo requiere, editando la variable y bajando este numero.

17

Explicacin y configuracin de los bloque de diagrama de flujo


contenidos en flowcode.

El bloque I esta sigla proviene del idioma ingles (in: entrada), este
bloque puede ser orientado a un bit especfico del puerto o a todo el puerto
como registro.
Para lectura de un bits, en la caja de texto variable, el ejemplo de la figura 9
ilustra la lectura del porta,0 (ra0) la cual es un pin fsico del micro, el valor de
este bit se almacena en la variable VALOR1 la cual tomara el estado de este
bits que puede ser bien sea 0 1.

Figura 9. Smbolo y Configuracin, Lectura de un bit en la Variable Valor1.


Para la lectura de un puerto en la caja de texto variable, se elige el registro o
variable de retorno, que va tomar el valor del puerto elegido, en este caso la
variable resultado tomara el valor del PUERTO A. si se seala la opcin
utilizar enmascaramiento, sern validos solo los bits sealados, y los bits no
seleccionado tomaran automticamente el valor de 0. Visto en la figura 10.

Figura 10. Smbolo y Configuracin en la Variable Resultado se Almacena el


Valor del PuertoA.

18

El bloque O esta sigla proviene del idioma ingles (out: salida), este
bloque puede ser orientado a un bit especifico del puerto, o a todo el
puerto como un registro o variable tipo byte.
Para escribir en un bit, se utiliza especficamente para colocar un 1 o 0, lgico
en la caja de texto variable, a un pin determinado de los puertos del micro. Este
pin, tambin puede asumir el valor de una variable entera o byte, que puede
estar en 0 o 1. La figura 11 ilustra cmo se coloca un uno lgico en el porta,2
(RA2).

Figura 11. Smbolo y Configuracin, Coloca un 1 en el PORTA,2


Para escribir en un puerto completo, en la caja de texto variable, se puede
colocar un valor entre 0 y 255 o se elige la variable, que posee el valor que va
tomar el puerto elegido, en este caso si se seala la opcin utilizar
enmascaramiento sern validos solo los bits sealados, y los no seleccionado
tomaran automticamente el valor de 0. Vista en la figura 12.

Figura 12. Smbolo y Ejemplo de Configuracin Coloca el Nmero 125 en el


PORTB.

19

El bloque con la letra D, esta sigla proviene del idioma ingles (delay:
demora), este bloque produce un retardo de tiempo que puede ser en
microsegundo, milisegundo segundo. Segn sea la exigencia del programa,
en la caja de texto Tiempo de Demora o Variable, se puede colocar un valor
de 0 a 1000 o que el tiempo vari de acuerdo con la variacin de una variable
externa, elegida por el usuario en el botn variable. La figura 13 ilustra la
ventana de programacin del bloque.

Figura 13. Smbolo y Configuracin de Demora.


Este es un bloque condicional que permite realizar una operacin
condicional usados con variable y/o constante con comandos como: =, <>, ,
MOD, <, <=, >, >=,>>, <<. Este bloque presenta una pequea dificulta con los
smbolo >, < a nivel de teclado, para colocarlos se sugiere presionar el botn
de ayuda ? y de all copiarlo para posteriormente pegarlo. El ejemplo de la
figura 14, pregunta si la variable valorx es mayor o igual a 125, si es afirmativo
en la va si se coloco un bloque de ingreso colocando un cero en el porta,0
(ra0), en la va negada se coloco un bloque de ingreso colocando un 1 en el
porta,0 (ra0), por defecto la opcin SI se encuentra en la va horizontal, y la
opcin NO en la va vertical, pero si seala la opcin intercambiar Si o No
podr intercambiar las vas del rombo condicional, como un gusto particular del
usuario. La figura 14 ilustra la ventana del condicional y el bloque.

Figura 14. Smbolo, Configuracin y Ejemplo del Uso del Condicional

20

Este smbolo es una estructura de caso de igualdad, la cual permite al


usuario tomar hasta 10 decisiones o vas diferentes, de acuerdo con los
valores establecidos por el mismo. En el ejemplo ilustrado en la figura 15.
Pregunta por 3 opciones si la variable valorx es igual a 1 40 100,
Si es igual a 1 se coloco un bloque demora de 1segundo
Si es igual a 40 se coloco un bloque demora de 2 milisegundos
Si es igual a 100 se coloco un bloque demora de 3 segundos

Figura 15. Smbolo, Configuracin y Ejemplo de la Estructura de Caso.

Este smbolo es una etiqueta de punto de conexin para salto, por


defecto viene denotado con letras, pero en la caja de texto opcin label
(etiqueta) se puede cambiar la letra por un nombre determinado por el usuario.
La figura 16 denota el valor por defecto y la figura 17 ilustra que la etiqueta A
es cambiada por la palabra ciclo.

Figura16. Smbolo, Configuracin de Punto de Conexin por Defecto Denota


con Letra.

21

Figura 17. Smbolo, Configuracin de Punto de Conexin con Etiqueta


Modificada Denota con la Palabra Ciclo.

Este smbolo es un salto a una etiqueta, de punto de conexin para


salto, en la pestaa de ir a punto de conexin, se muestran todas las etiquetas
o puntos de conexin existentes en el programa, en donde el usuario debe
elegir la etiqueta de salto que requiere. La figura 18. Muestra el smbolo y la
configuracin de la ventana.

Figura 18. Smbolo, Configuracin de Salto a Punto de Conexin a la Etiqueta


Ciclo.

Este smbolo es de un ciclo repetitivo e incluye en el diagrama dos


smbolos, por defecto viene seleccionado el Bucle Mientras con el valor
1, configurado como un ciclo infinito, la cual debe comenzar al principio
segn la seleccin por defecto, toda la lgica que se encuentre dentro del ciclo
se repetir indefinidamente. Vase la figura 19 para mayor ilustracin.

Figura 19. Smbolo, Configuracin de Bucle o Ciclo Repetitivo

22

El ejemplo visto en la figura 20. Ilustra que si se cumple la condicin, de


que la variable resultado sea igual 125, resultado = 125, comenzara desde el
principio realizando todas las operaciones que estn dentro del ciclo y al llegar
al final volver a preguntar por la condicin nuevamente, y si no se cumple la
condicin si ira al final del ciclo, obviando todas operaciones dentro del mismo.
Regresando nuevamente a preguntar por la condicin. Al llegar al final del
bucle siempre regresa a preguntar por la condicin, donde se dictaminara, si se
obvian o no, las operaciones dentro del ciclo. De acuerdo a la pregunta a travs
de los operandos: =, <>, <, <=, >, >=, >>, <<.

Figura 20. Smbolo, Configuracin de Bucle o Ciclo Repetitivo Condicional


Si se selecciona la opcin Loop Until (repetir hasta), se debe establecer el
numero de veces que se desea que se repita el ciclo, y por ende las
operaciones que se encuentran dentro del mismo se ejecutaran de manera
cronolgica, tal como se encuentran dentro del ciclo.

Este smbolo representa los macro de la herramientas virtuales que


posee flowcode, dando doble clic sobre este smbolo, se abrir una
subventana tal como se muestra en la figura 21, en la caja de texto
Componente se Pueden observar todos los componente tipos hardware
insertado por el usuario en el panel de componente, y en la caja de texto Macro
se encuentras todas funciones que contiene Flowcode para programar y/o
controlar el componente seleccionado.

23

Figura 21. Smbolo, Configuracin de Macro de Componente


La figura 22 muestra la eleccin del macro del diodo led, le permite
encender o apagar colocndolo en alto o en bajo un pin del puerto
permitiendo al programador obtener una variable de retorno del estado del led.

Figura 22. Configuracin de Macro de Componente Diodo Led.


La figura 23 muestra la eleccin del macro de un suiche, permite realizar tres
operaciones.
-ReadState: permite leer el estado del interruptor asignado a un pin del puerto
1 0.
-WaitUntilHigh: se queda el macro en un ciclo repetitivo hasta que el interruptor
asignado a un puerto del PIC pase ha estado alto.
-WaitUntillow: se queda el macro en un ciclo repetitivo hasta que el interruptor
asignado a un puerto del PIC pase ha estado bajo.

24

Figura 23. Configuracin de Macro de Componente Interruptor.


El macro elegido en la figura 24 es el del display de cuatro dgitos y solicita tres
parmetros en el botn variable el usuario insertara las variables separadas por
coma(,)
Digit(BYTE): es el nmero del display contado de izquierda a derecha dentro
del display de 4 dgitos. Son 4 posiciones 0,1,2,3.
Value(BYTE): es el valor que va asumir ese display.
DecimalPont: es el punto del display 0 desactivado 1 activado.
Nota: es importante destacar que la impresin entre macro de displays,
debe estar un retardo de al menos 5 mseg.

Figura 24. Configuracin de Macro de Componente Display de 4 Dgitos.


El macro elegido en la figura 25 es de un display, este solicita dos parmetros,
en el botn variable el usuario encertara las variables separadas por coma(,)
Value(byte): valor que va asumir el dysplay
DecimalPont: es el punto del display, 0 desactivado 1 activado

25

Figura 25. Configuracin de Macro de Componente Display.


En la figura 26 se aprecia el macro del lcd es elemento muy importante consta
de varios comandos entre ellos tenemos
Start: se utiliza para inicializar el lcd, antes de usar el lcd se debe inicializar,
esta operacin se realiza solo una vez, por eso se recomienda no utilizarse en
un ciclo repetitivo.
Clear: funcin para limpiar el lcd y se utiliza mayormente antes comenzar a
imprimir un mensaje completo en la lcd:
PrintNumber(BYTE number, or INT number); permite imprimir en la lCD una
variable tipo byte o entero.
PrintString(STRING String): permite imprimir un string por ejemplo hola o
variable de secuencia hasta 20 dgitos.
PrintASCII: se utiliza para imprimir un caracter.
Command: permite enviar un comando al lcd para ello se debe tener la lista de
ellos.
Cursor (x, y): define la posicin del cursor, x: es el del nmero carcter en la
lnea comenzando desde el carcter 0, y: es el nmero de lnea de la pantalla,
comenzando desde la linea0.
ClearLine(BYTE Line_Number): limpia una lnea especifica en la lcd
ScrollDisplay(BYTE Direction, BYTE Num_Positions)
Si BYTE Direction= 0 entonces rotara el mensaje a la izquierda
Si BYTE Direction= 1 entonces rotara el mensaje a la derecha
BYTE Num_Positions: a partir de qu carcter ocurrir la rotacin.

26

Figura 26. Configuracin de Macro de Componente LCD.


Nota: Despus de imprimir un mensaje completo se acostumbra a dejar un
retardo o delay entre 50mseg a 200mseg, especialmente cuando se imprimen
una variable int, para darle tiempo de retencin a la memoria del lcd.
La figura 27 ilustra el macro del teclado, el cual permite obtener el nmero
presionado en el teclado en cdigo ascii o en nmero entero.
Nota: cuando se esta trabajando con el teclado matricial en ciertas
ocasiones especiales, los bloques de retardo (delay) el tiempo se divide
entre 10, es decir que si se desea obtener un retardo de 1 seg, hay que
colocar un delay de 10 seg.

Figura 27. Configuracin de Macro de Componente Teclado Matricial.

27

El macro visto en la figura 28 del modulo rs232, le da opcin al usuario de


enviar o recibir, bien sea en cdigo ascii carcter a carcter o una cadena de
caracteres en una variable string o secuencia.

Figura 28. Configuracin de Macro de Componente RS232.


El macro visto en la figura 29, se observan las diferente operaciones que posee
Flowcode para manipular el modulo PWM.

Figura 29. Configuracin de Macro de Componente PWM.

28

Este smbolo es un macro o subrutina para realizar operaciones


aritmtico lgica, inclusive se pueden utilizar formulas donde
intervengan varias variables del mismo tipo, los operandos con variables como
byte y Int, son: ( ), =, <>,+, -, *, /, MOD,>>(rotar a la derecha), << (rotar a la
izquierda), NOT, AND, OR, XOR NOT, AND, OR, dando doble clic sobre este
smbolo, se abrir una subventana tal como se muestra en la figura 30,
Nota: Es importante destacar que a la hora de realizar operaciones
matemticas o lgicas, se deben operar de la siguiente forma, es decir
byte con byte, int con int, int con byte o viceversa. float con float, string
con string. Al menos que se utilice una funcin especial de Flowcode
donde intervengan varios tipos de variables. No se deben realizar
operaciones entre formatos no explicito en la presente nota, como por
ejemplo entre una variable de nmero entero y una variable de nmero
flotantes.
En matemtica, la aritmtica MOD modular es un sistema aritmtico para
clases de equivalencia((Clase de nmeros con signo)) de nmeros enteros
llamadas clases de congruencia. Algunas veces se le llama, sugerentemente,
aritmtica del reloj, ya que los nmeros 'dan la vuelta' tras alcanzar cierto valor
(el mdulo).
Por ejemplo, 23 mod 12 = 11. (Estos clculos mod 12 son lo que se hace
cuando se convierte la hora de un reloj 24-horas a un reloj 12-horas).

Operaciones con nmero flotantes


Para realizar operaciones con nmeros flotante solo se deben utilizar
las funciones que posee Flowcode para operar con ellas, las cuales se
explican a continuacin:
float = fadd(float, float)

- suma de dos nmeros flotantes

float = fsub(float, float)

- resta de dos nmeros flotantes

float = fmul(float, float)

- Multiplicacin de dos nmeros flotantes

float = fdiv(float, float)

- Divisin de dos nmeros flotantes

float = fmod(float, float)

- MOD de dos nmeros flotantes

Las siguientes operaciones Retorna el valor 1 al byte si se cumple la condicin


y 0 si no se cumple.
byte = isinf(float)

- verifica si un nmero flotantes es infinito

29

byte = isnan(float)
un nmero

- Comprobaciones para ver si el punto flotante no es

byte = float_eq(float, float) - compara si dos nmeros flotantes son iguales


byte = float_ge(float, float) - Compara dos nmeros de punto flotante para ver si
uno de ellos es mayores o igual respecto a otro
byte = float_le(float, float) - Compara dos nmeros de punto flotante para ver si
uno de ellos es mayores respecto a otro.
byte = float_lt(float, float) Compara dos nmeros de punto flotante para ver si
uno de ello es menor respecto a otro
int = random() - genera un nmero aleatorio desde -32768 <=> 32767
As se tiene por ejemplo:
Tal como se puede observar en la figura 27. En la ventana de configuracin
de operaciones, en este bloque se pueden realizar mltiples operaciones
matemticas con el uso de las funciones matemticas.
En el botn de funciones estn disponibles todas las funciones requeridas
para trabajar en la caja de clculos, y en el botn variable podemos encontrar
todas las variables existentes en el programa para su utilizacin en las
operaciones.

Figura 30. Smbolo, Configuracin del Macro de Operaciones.

30

Este smbolo se utiliza para colocar comentario a una altura


predeterminada del diagrama de flujo, con el fin de dar una orientacin en la
operacin, para su mejor compresin, a la hora de analizar un programa estos
comentario son de gran ayuda. Vase la figura 31.

Figura 31. Smbolo, Configuracin del Bloque de Comentario

Este smbolo posee funciones que permite la manipulacin de variables


string secuencia para conversin de variables tipo byte, in,t y float a string
entre otras, tal como muestra la figura 32.
En el botn de funciones estn disponibles todas las funciones para
trabajar con string, y en el botn variable podemos encontrar todas las
variables existentes en el programa para su utilizacin en las operaciones.
En la figura se 32 ilustra el uso de este bloque para transforma una variable
flotante en este caso la variable denominada float5 en una variable de
secuencia string.

31

Figura 32. Smbolo, Configuracin del Bloque de Manipulacin de String.


Para la suma por ejemplo.
Si Dato1 [20] = "Hola"
Si Dato2 [10] = "Cerebro"
Total [20]
Total = Dato1 + Dato2
Entonces despus de la suma la variable Total = Hola Cerebro.
Funcin ToString$(value)
Pasa una variable numrica constante a string.
Ejemplo, valor es una variable string y valorx= es una variable de nmeros
enteros
valor = ToString$(12345); almacena 12345 como una cadena a string
valor = ToString$(valorx); pasa el dato de la variable valor a una cadena a
string

Funcin ToUpper$(string)
Si Str1= hello
Cambias las letras a maysculas.
TestStr = ToUpper$(Str1)
TestStr es ahora "HELLO "

32

Funcin ToLower$(string)
Si Str1= HELLO
Cambias las letras a minsculas.
TestStr = ToLower$(Str1)
TestStr es ahora "hello "
Funcin Length$(string)
Si Str1= HELLO
Retorna el nmero de caracteres
RetVal = Length$(Str1)
RetVal es ahora 5
Funcin: Right$(string, size)
Str1= hello
string: variable string
size: nmero de caracteres
El siguiente ejemplo ilustra que la variable Str1 tomaran solo los 3 caracteres
que estn a la derecha de la variable tomando en cuenta que si Str1= hello al
tomar los ltimo 3 caracteres de la derecha queda "lo "quedando la variable
TestStr "lo
TestStr = Right$(Str1, 3)
Ahora la variable TestStr es "lo "
Funcin: Mid$(string, start, size)
string: variable string
Start: posicin de inicio
size: nmero de caracteres a tomar
El siguiente ejemplo ilustra segn la funcin si la variable Str1= hello al usar
la funcin Mid$(Str1, 2, 3) tomara de la variable str1 los caracteres a partir del
carcter 2, y el nmero de caracteres a tomar es 3.
TestStr = Mid$(Str1, 2, 3)
TestStr is ahora "llo"
Compare$(string1, string2, compare_type)
String1= variable de secuencia1
String2= variable de secuencia2
compare_type = variable de retorno de resultado
Compara 2 string o variable de secuencia, y retorna un byte correspondiente al
siguiente resultado

33

0 = si los string o variable de secuencia son iguales


1 = string1>string2
255 = string2>string1
El tercer parmetro compare_type determina la sensibilidad del caso
0 = sensibilidad estricta
1 = sensibilidad flexible
Ejemplo
Si Str1 = "ABC"
Si Str2 = "abc"
RetVal = Compare$(Str1, Str2, 0)
La variable RetVal es ahora 255 dado que a pesar que son las misma letras el
caso es de sensibilidad estricta porque unas letras estn en maysculas y otras
en minsculas, segn la posicin que ocupan estos caracteres en el cdigo
ASCII string2>string1
Dado el ejemplo anterior RetVal es ahora 255
Ahora si

RetVal = Compare$(Str1, Str2, 1)

RetVal es ahora 0 porque es un caso de sensibilidad flexible por ende las dos
variables son idnticas debido a que son las misma letras as que una este
maysculas y otras en minsculas.
Si Str2 = Str1
RetVal = Compare$(Str1, Str2, 0)
RetVal es 0 porque ambos string son idnticos.
Funcin FloatToString$(): convierte un nmero flotante a string.
Ejemplo: pasa la variable de nmero flotante resultado a una variable de
nmeros string denominada valorx.
Valorx= FloatToString$(resultado)
Funcin StringToInt$(): convierte un string a un nmero entero
Ejemplo
Pasa la variable string result a un nmero entero almacenado en la variable
de nmeros entero retx.

34

retx=StringToInt$(result):
Funcin StringToFloat$(): convierte un string a un nmero flotante
Ejemplo
Pasa una variable string result a un nmero flotante almacenado en la
variable de nmero flotante Valorx.
Valorx=StringToFloat$(result):
Funcin NumberToHex$(): convierte un nmero a cdigo hexadecimal.
Ejemplo
Pasa la variable de nmero entera estex a un cdigo hexadecimal en la
variable Verx.
Verx= NumberToHex$(estex)

Este smbolo se utiliza para llamar o crear un macro. Un macro es una


operacin que permite al usuario crear su una rutina de usuario
herramienta, la cual podr utilizar en cualquier programa si lo desea, la figura
33 ilustra la configuracin de este bloque. Los macros creados estarn en la
caja de texto macro, y podrn ser editados en el botn OK&Editar Macro.
Pasos para Crear un macro o subrutina
Damos doble sobre el botn crear nuevo macro.

Figura 33. Configuracin del Bloque para Llamar o a un Macro.

35

Tal como se muestra en la figura 34. En la caja de texto Nombre del Nuevo
Macro se debe colocar el nombre del macro que se va a realizar,
preferiblemente con un nombre asociado a la operacin del macro.
En la caja de texto Descripcin del Nuevo macro: si es de preferencia del
programador da una breve explicacin de la funcin del nuevo macro a realizar,
a manera de ilustracin
Crear un macro como un macro de usuario propia del programa.
En la figura 31. Si el usuario no va a crear un macro como una herramienta de
usuario para exportar, sencillamente establece el nombre del nuevo macro y le
da ok. Luego procede a dar click al botn OK&Editar Macro, visto en la figura
32, luego se abrir una nueva sub-ventana, de panel de diagrama de flujo
donde el programador podr estructurar el nuevo macro.
Crear un macro de herramienta de usuario para exportar y usar en otros
programas.
Si el usuario va a Crear un macro herramienta, debe utilizar las cajas de texto
de, Parmetros, Variables locales, Tipo de retorno
En la caja de texto de Parmetros en editar parmetros, se establecen las
variables que el macro les va a solicitara al programador que introduzca, sobre
las cuales se realizaran operaciones, dentro del macro.
En la caja de texto de Variables locales en editar variable, se establecen las
variables que se va a utilizar en el macro, las cuales van a trabajar con las
variables de parmetros,
En la caja de texto de Tipo de retorno, se elige el tipo de variable que
retornara el macro una vez utilizado, siendo este el ltimo resultado de la ltima
operacin que se realizo dentro del macro dentro del macro. De tal forma se
recomienda no tomar esta variable como resultado que se espera de la
operacin, si no utilizar variables declaradas en el programa principal y dentro
macro tomara el valor de una operacin determinada deseada por el
programador.

36

Figura 34. Configuracin del Bloque Crear Nuevo Macro.


Una vez establecidas todas las variables se les da al botn ok, luego se
abrir la ventana de Propiedades Macro como se muestra en la figura 35, si el
macro elegido se construy como herramienta le solicitara al usuario, la
variable de los parmetros segn su tipo y la variable de retorno si ese macro
posee variable de retorno. Luego Se procede a dar click a el botn OK&Editar
Macro, posteriormente se abrir una nueva sub-ventana, de panel de diagrama
de flujo, donde el programador podr estructurar el macro herramienta a
exportar.

Figura 35. Configuracin del Bloque de Macro

37

Como exportar (sacar) una Macro subrutina herramienta, para


convertirla en una herramienta
Una vez creada y estructurada la subrutina o macro en el panel superior,
elegimos la opcin Macro y elegimos exportar. Se abrir una ventana como la
de la figura 36. All mostrara todas las subrutina que se encuentran el
programa, una vez elegida el macro a exportar se abrir otra ventana, que le
permitir al programador guardar la subrutina en una direccin deseada para
su uso particular.

Figura 36. Ventana de Exportar Macro.

Como importar (introducir) una Macro subrutina herramienta, para


utilizarla en un programa
Primero se debe tener el macro subrutina, y la direccin donde se
encuentra, en el panel superior, elegimos la opcin Macro en la opcin
importar. Se abrir una ventana donde le solicita al programador la direccin
donde se encuentra la subrutina, una vez localizada y sealada, se insertara
automticamente en el programa, y se abrir una nueva ventana de diagrama
de flujo donde se encuentra la secuencia lgica del nuevo macro insertado,
estando disponible en ese momento en el smbolo del macro, para ser llamado,
y se declaran automticamente las variables del macro selecionado en el
programa.
Como realizar macros subrutinas, que generen varias variables de
retorno en un programa determinado.
Si el usuario requiere que el macro retorne varios valores en varias
variables, entonces dentro del macro o subrutina el usuario debe, igualar las
variables locales a las variables del programa y al exportar la subrutina se
Autor: Ing. Ulises Gmez
www.electronicalatianoamericana.com
Apure _ Venezuela
ulitronic@cantv.net

IUT Cumana Ext. Punta de Mata


1era Revisin

38

guardara como una herramienta. Cuando el usuario desee utilizar l macro la


importara, y todas las variables del programa donde se cre la subrutina o
macro, se crearan automticamente en el programa, dando como resultado
varias variables de retorno. Si existen previamente variables con el mismo
nombre de algunas de las variables de la subrutina o macro el programa
Flowcode lo detectara y le dar una sugerencia para cambiar el nombre.
Como aparecer los macros y la pantalla principal(main) en el entorno de
programa.
Existen dos forma
1.- En la opcin Macro que esta en la parte superior del men, se le da la
opcin Mostrar, all el programa le permite visualizar todos los macros y el
programa principal (main), de esta manera se puede visualizar, en el entorno
de programa tantos la estructura del macro como la del programa principal de
forma selectiva.
2.-Cuando se maximiza la ventana de un macro automticamente
se desaparece el entorno del programa principal, en la parte
superior de la pantalla a la derecha, se habilitaran de forma
paralela, tres botones para cerrar minimizar o maximizar el ambiente con la
estructura del macro, permitindole al usuario tener el acceso a todos los
macros existente y el programa principal.
Como eliminar o crear variables una vez creado el macro.
En este caso, primero hay que tener abierto la estructura del macro en el
entorno del programa. Posteriormente dar clic en la opcin Macro y luego en la
opcin editar
Nota: Las operaciones con las variables parmetros dentro de un macro
nuevo, a pesar que Flowcode permite realizar varias operaciones con ellas, se
recomienda que solo se hagan 1 sola operacin, a partir de all se respalden en
variables del programa, porque el mismo se tiende a perder cuando se realizan
mltiples operaciones con las variables de parmetros.

Este smbolo se utiliza para configurar y habilitar las interrupciones


y crear subrutinas o macro, para que se ejecuten dentro de la
interrupcin, en la caja de texto interrumpir por defectos Flowcode trae 5 tipos
de interrupciones. Vase la figura 37.

39

En el botn Propiedades se abrir otra ventana para configurar la interrupcin


elegida en la caja de texto Interrumpir en:
TMR0: Interrupcin por desborde timer0.
TMR1: interrupcin por desborde timer1.
TMR2: Interrupcin por coincidencia time2 a PR2
INT: Interrupcin por flanco en el pin rb0.
PORT: Por cambio de estado en algn pin entre RB4 a RB7.

Figura 37. Ventana de Configuracin de Interrupcin.


En la figura 38. Muestra la Ventana de Configuracin de Propiedades de la
Interrupcin por TMR0.
Clock Source Select: la procedencia del clock para el incremento del timer0
Si se elige transiction on TOCKI pin ser en modo contador, tomara la seal
de clock que est presente en el pin ra4. El tiempo que tardara en producirse la
interrupcin vendr determinada por el periodo que este en el pin ra4
Si se elige internal clock (CLKO): tomara la seal del cristal modo
temporizador.
Source Edge Select: se elige si el conteo va hacer en flanco ascendente o
descendente provenientes del clock.
Prescaler Rate: se elige el preescaler que determinara cada cuantos flancos
se incrementara en 1 el tmr0.
En la misma ventana les mostrara la frecuencia en modo temporizador que se
repetir la interrupcin en 1 segundo, si se desea saber este tiempo se debe
dividir 1/(frecuencia de interrupcin).

40

Figura 38. Ventana de Configuracin de la Interrupcin por TMR0.


En la figura 39. Muestra la Ventana de Configuracin de propiedades de la
interrupcin por TMR1.
Clock Source Select: la procedencia del clock para el incremento del timer0
Prescaler Rate: se elige el preescaler que determinara cada cuantos flancos
se incrementara en 1 el tmr1. En la misma ventana les mostrara la frecuencia
en que se repetir la interrupcin en 1 segundo, si se desea saber este tiempo
se debe dividir 1/(frecuencia de interrupcin).

Figura 39. Ventana de Configuracin de la Interrupcin por TMR1.


En la figura 40. Muestra la Ventana de Configuracin de propiedades de la
interrupcin por TMR2.
Clock Source Select: la procedencia del clock para el incremento del timer0
Prescaler Rate: se elige el preescaler que determinara cada cuantos flancos
se incrementara en 1 el tmr1.

41

Postcaler Rate: se elige la cantidad de veces que debe ocurrir, la coincidencia


entre pr2 (Rollover) y tmr2 para que deba ocurrir la interrupcin.
Rollover Value: es el valor de que tomara el registro pr2, que dictaminara el
tiempo de ocurrencia por interrupcin de timer2
En la misma ventana les mostrara la frecuencia en que se repetir la
interrupcin en 1 segundo, si se desea saber este tiempo se debe dividir
1/(frecuencia de interrupcin).

Figura 40. Ventana de Configuracin de la Interrupcin por TMR1.


En la figura 41. Muestra la Ventana de Configuracin de propiedades de la
interrupcin por flanco en Rb0.
Source Edge Select: se elige si interrupcin se producir por flanco
ascendente o descendente en el pin RB0.

Figura 41. Ventana de Configuracin de la Interrupcin por RB0.


Una vez configurada la interrupcin se procede a crear la subrutina en el botn
crear nuevo macro visto en la figura 42.

42

Este smbolo se utiliza para crear un bloque en lenguaje c cdigo


assembler. Una vez insertado el smbolo en el programa se da doble
click sobre el smbolo, abrindose una ventana tal como se muestra en
la figura 39. Cabe destacar que las operaciones realizadas en este bloque de
cdigo no podrn intervenir en la simulacin pero si en el programa que se va a
cargar en el micro, en el mismo orden que se coloco en el programa
una vez mostrado la configuracin del bloque cdigo lo primero que se debe
hacer es borrar todo el comentario que muestra en la caja de texto Cdigo C,
se coloca un nombre alusivo a la operacin a realizar.

Figura 42. Ventana de Configuracin del Bloque para Insertar Condigo en C, o


Assembler.
Insertar cdigo assembler
Para insertar una lnea en assembler se antepone las siglas asm antes del
cdigo como por ejemplo asm movlw 50
Para insertar varias instrucciones se coloca
asm
{
Introduzca el cdigo aqu respetando las reglas de flowcode.
}

43

Lo que se acostumbra a la hora de insertar cdigo en assembler, si estn


involucrados los puertos del micro se deben configurar como entrada o salida,
para proceder a realizar las operaciones requeridas tal como se muestra en la
figura 43.

Figura 43. Ventana de Configuracin para Insertar Cdigo Assembler


Manejando los Puertos del PIC y Variables de Flowcode.
Insertar lenguaje C
A la hora de insertar cdigo de lenguaje C, hay que tomar en cuenta las
reglas de Flowcode descrita en el presente manual, referente al uso de las
variables, llamada a macro y salto a etiquetas, trabajar en lenguaje c permite
realizar operaciones matemticas mas directas, utilizando las funciones de
Flowcode
La figura 44 ilustra el siguiente ejemplo.
LED7Seg40_ShowDigit : es una funcin orientada a una herramienta virtual,
que permite utilizar un display de 4 dgitos y (2, FCV_COUNT2, 1), son 3
parmetros, que en este caso el display 2, tomara el valor de la variable
COUNT2, y activara el punto del display(1), manejando de esta forma los
parmetros que solicita esa funcin, para manejar el componente virtual,
igualmente en lenguaje C se puede utilizar los opertandos <, <=, >, ( ), =, <>,+,
-, *, /, MOD,>>, <<, NOT, AND, OR, XOR NOT, AND, OR, >=,>>, <<.

44

Figura 44. Ventana de Configuracin en Lenguaje C Manejando Funciones de


Flowcode.
Lo que se acostumbra a la hora de insertar lenguaje C, si se desea utilizar
los puertos del PIC como entrada o salida, inicialmente se deben configurar tal
como se muestra en la figura 45.

Figura 45. Ventana de Configuracin para Insertar Lenguaje C Manejando los


Puertos del PIC.
Reglas de Flowcode para manejar: variables, macro de Flowcode y puntos de
conexin.

45

Manejo de Variables de Flowcode en Lenguaje C y Cdigo Assembler.


Por ejemplo si el programador desea usar una variable declarada en Flowcode
como por ejemplo VALORX para utililizar esta variable:
En lenguaje C se debe anteponerle el prefijo: FCV_ para utilizar la
variable VALORX quedando FCV_VALORX, los registros especiales se
deben escribir en letras minsculas como: portb, status, en lenguaje c
se pueden utilizar sin ninguna complicacin, sin anteponer ninguna sigla
En cdigo assembler se debe anteponerle el prefijo: _FCV_ para utilizar
la variable VALORX quedando _FCV_VALORX
En cdigo assembler si se desea utilizar registro especiales se deben
escribir en letras minsculas como el portb, status, entre otros se debe
anteponer el smbolo _ antes del registro especial en cuestin por
ejemplo bsf _portb,2, y las operaciones orientadas a registros, se les
debe colocar el destino del mismo, por ejemplo incf _porta, w; donde si
se coloca la sigla W implica que el resultado quedara en el
acumulador y si se coloca la sigla F el resultado de la operacin se
queda en el registro que aparece en la operacin.
Manejo de llamadas de macro de Flowcode en lenguaje C y cdigo
assembler.
Por ejemplo, si el programador desea llamar un macro de herramienta virtual,
de herramienta de usuario o de usuario elaborado e insertado en el
programa como por ejemplo el macro BIN_BCD en:
En Lenguaje C, se debe utilizar : FCM_() para llamar a el macro
BIN_BCD seria FCM_ BIN_BCD ()
En cdigo Assembler se debe utilizar _FCM_() para llamar al macro
BIN_BCD seria _FCM_ BIN_BCD ()
Manejo de Punto de conexin o etiquetas en Flowcode en lenguaje C y
cdigo assembler.
Por ejemplo, si el programador desea saltar a una etiqueta o punto de conexin
llamado por ejemplo CICLO elaborado en el programa del Flowcode, se debe
utilizar
En lenguaje C se utiliza FCC_ para saltar a la etiqueta o punto de conexin
seria FCC_CICLO.
En cdigo assembler se utiliza _FCC_ para saltar a la etiqueta o punto de
conexin seria _FCC_CICLO.

46

Como utilizar el bloque de insertar lenguaje C y/o cdigo assembler en un


bloque macro de herramienta.
Primeramente este bloque debe estar contenido en el macro de herramienta,
las variables que se utilizan el bloque de cdigo, se deben utilizar dentro de la
subrutina en cualquier otra operacin, de esta manera una vez que este macro
se importe a otro proyecto las variables que maneje el bloque de cdigo
tambin sern importada.
Compilar el programa.
A la hora de compilar el programa, Flowcode trae por defecto la
configuracin del programa de la empresa MATRIZ MULTIMEDIA, pero si no
se cuenta con el programador de esta empresa, se debe cambiar la
configuracin del compilador, para que se genere de manera correcta el
archivo .hex, de tal forma que el programa funcione correctamente a la hora de
que sea programado con otro tipo de programador. Para ello una vez realizado
el programa el usuario debe dar clic en la opcin chip que esta en la barra de
herramienta superior y luego en opcin configurar. Posteriormente debe elegir
la opcin Switch To Expert Config Screen, all mostrara una subventana, el
usuario solo debe dejar tres opciones apagada y una deshabilitada en el orden
tal como se muestra en la figura 46 presionando luego el botn OK, el usuario
vuelve a dar el clic en la opcin chip y finalmente en la opcin compilar a hex,
el programa mostrara la ventana de configuracin, la cual debe durar cierto
tiempo, mostrando finalmente return =0, implica que el programa se compilo sin
errores, y genero un archivo con el mismo nombre del programa y en la misma
direccin, pero con extensin .hex, Este archivo lo utilizara el usuario para
grabar el micro en el programador de su preferencia.

Figura 46. Configuracin del compilador para programadores que no son de la


empresa Matriz Multimedia c.a.

47

Errores de compilacin
En ocasione cuando se manejan varias variables en un macro o subrutina,
a la hora de compilar da error, le exige una variable de retorno, en ese caso, se
debe generar una variable de retorno en la subrutina, para desaparecer este
tipo de error de compilacin.
A la hora de compilar un programa donde se utilicen herramientas virtuales, se
deben realizar todas las conexiones de ese instrumento virtual con los pines del
micro, si no dar error de compilacin.
Algunas veces el compilador se desconfigura y de forma constante enva
error de compilacin, en ese caso se debe cerrar flowcode, luego se vuelve
abrir, tomar un programa de la carpeta Flowcode_V4_Examples/Examples
dentro de la carpeta Interrupts se elige el ejercicio 2. Interrupt every second,
luego se guarda en la misma direccin donde esta el programa que le arrojo el
error en la compilacin, se compila Interrupt every second en .hex y luego sin
cerrar el programa abre el programa que estaba mostrando el error de
compilacin, esta operacin soluciona el problema del compilador
reconfigurndolo permitiendo compilar su programa sin problema.

48

CONEXIONES ENTRE LOS COMPONENTES VIRTUALES Y EL MICRO,


TANTO EN EL AMBIENTE FLOWCODE COMO A NIVEL DE HARDWARE
A la hora de hacer las conexiones tanto a nivel virtual en Flowcode, como a
nivel hardware en un montaje prototipo, se deben seguir ciertos parmetros. En
el curso se van a utilizar: leds, interruptores, display, teclado, lcd, convertidores
A/D, RS232, de las cuales se leS dar al lector un diagrama, estos utilizan las
misma conexiones del montaje de prueba, de tal manera que a la hora de
hacer las conexiones virtuales y reales deben tomar como gua las siguientes
figuras para que puedan probar sus programas en el montaje de prueba.
En la figura 47 se observa el componente y la conexin fsica, que debe tener
la pantalla lcd, referente a los pines del micro del montaje de prueba.

Figura 47. Diagrama de Conexin del LCD.

49

En la figura 48 se observa el entorno de conexin virtual de LCD en flowcde, la


cual debe realizar el alumno en el curso, para poder probar su programa en el
montaje de prueba.

Figura 48. Entorno de conexin virtual del LCD.


En la figura 49. Se observa el componente y la conexin fsica, que debe tener
el modulo de displays, referente a los pines del micro del montaje de prueba.

Figura 49. Diagrama de Conexin del Mdulo de displays.

50

En la figura 50 se observa el entorno de conexin virtual del modulo de displays


en flowcode, la cual debe realizar el alumno en el curso, para poder probar su
programa en el montaje de prueba usando todo el puerto D para la conexin de
llos segmentos desde d0 hasta d7.

Figura 50. Entorno de conexin virtual del modulo displays..


En la figura 51. Se observa el componente y la conexin fsica, que debe tener
el modulo de displays, referente a los pines del micro del montaje de prueba.

Figura 51. Diagrama de Conexin del teclado matricial 4x4.

51

En la figura 52 se observa el entorno de conexin virtual del teclado en


flowcode, la cual debe realizar el alumno en el curso, para poder probar su
programa en el montaje de prueba.

La figura 53 muestra dos tipos de teclado el de la foto es el que se va utilizar


en el curso, y el del dibujo, es el que trae por defecto Flowcode.

Figura 53. Teclado convencional y teclado de flowcode.


En el caso del teclado, existe una pequea dificultad dado que el teclado de
Flowcode trae una estructura diferente referente al orden de las teclas
convencional con en que vamos ha utilizar en el curso, para ello Flowcode en
la parte derecha arriba de la opcin connections se debe dar clic en la opcin
Ext properties automticamente se abrir una ventana tal como se muestra en
la figura 54. y por defecto muestra el valor de cada tecla de acuerdo a su
posicin del teclado que trae flowcode, para ello el programador debe cambiar
este orden de los valores de las teclas en forma numerica o asccii, en la figura
55 se muestra como se debe cambiar los valores numericos adaptados al tipo
de teclado utilizado en el montaje de prueba.

52

Figura 54. Entorno de propiedades de componente con valores por defectos

Figura 55. Entorno de propiedades de componente con valores modificados de


valores numricos, adaptados al montaje de prueba.

53

54