You are on page 1of 54

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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).

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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

Autor Ing: Ulises Gmez Cedula: 13.433.468 Email: ulitronic@cantv.net Profesor del IUT Cuman Extensin Punta de Mata Pagina Web: www.electronicalatinoamericana.com

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.


Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

Figura 2. Conexin Fsica del Programador.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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).

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

11

ENTORNO FLOWCODE

SMBOLO DE HERRAMIENTAS VIRTUALES Figura Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net 7. Entorno Flowcode. Cumana Ext. Punta de Mata IUT
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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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 escribir en un bit o todo el puerto del micro

Este smbolo se utiliza para leer 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

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

Cuadro1. Smbolos de Diagrama de Flujo de Flowcode 15

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.


Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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


Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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,>>, <<, 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) float = fsub(float, float) float = fmul(float, float) float = fdiv(float, float) float = fmod(float, float) - suma de dos nmeros flotantes - resta de dos nmeros flotantes - Multiplicacin de dos nmeros flotantes - Divisin de dos nmeros flotantes - 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)
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net

- verifica si un nmero flotantes es infinito


IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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 "

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.


Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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).

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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. }

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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, >=,>>, <<.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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_TEST() para llamar a el macro BIN_BCD seria FCM_TEST (BIN_BCD) En cdigo Assembler se debe utilizar _FCM_TEST() para llamar al macro BIN_BCD seria _FCM_TEST (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_TES,T_ para saltar a la etiqueta o punto de conexin seria FCC_TEST_CICLO.

En cdigo assembler se utiliza _FCC_TEST_ para saltar a la etiqueta o punto de conexin seria FCC_TEST_CICLO.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.


Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

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.
Autor: Ing. Ulises Gmez www.electronicalatianoamericana.com Apure _ Venezuela ulitronic@cantv.net IUT Cumana Ext. Punta de Mata 1era Revisin

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.

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

IUT Cumana Ext. Punta de Mata 1era Revisin

53

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

IUT Cumana Ext. Punta de Mata 1era Revisin

54

You might also like