CURSO DE FLOWCODE.pdf

55

Transcript of CURSO DE FLOWCODE.pdf

Page 1: CURSO DE FLOWCODE.pdf
Page 2: CURSO DE FLOWCODE.pdf

1

INTRODUCCIÓN

Hoy en día la automatización es parte de la vida del hombre, al hablar de automatización esta implícito el termino de tarjeta de control, estas son programadas algorítmicamente e interactúan con una serie de componente, como los sensores, las cuales les suministran información a la tarjeta de control, para el monitoreo de las variable presente un proceso, y los actuadores, permiten la modificación de la variable, sustituyendo en cierta forma la mano del hombre, la programación 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 programación de los microprocesadores y los microcontroladores, se ha considerado una tarea compleja, inicialmente se programaba en código assembler y lenguaje C, a medida que ha avanzado la tecnología han surgido una serie de lenguaje de programación orientado a la programación de microcontroladores, MPLAB inicialmente facilitaba la tarea de la programación en código assembler, lenguaje C para programar micros solo se le era mas fácil a pocos programadores, pero estas dos herramientas eran poco didáctica y engorrosa a la hora de realizar una pequeña tarea, picbasic le dio un sentido un poco mas orientado a objeto, pero no era suficientemente didáctico, luego surgió NIPLE un software que facilitaba en gran forma la programación, pero con ciertas limitaciones como, el manejo de variable punto flotantes, limitación en el numero de micros a programar, paginación de memoria, además 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 programación 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, código assembler y lenguaje C.

El presente manual ilustra de forma detallada el uso de las herramientas básicas de Flowcode así como también las conexiones básicas a nivel de hardware. Esta herramienta permitirá la inclusión de nuevos programadores de microcontroladores PIC, AVR y ARM, abriendo un mundo de soluciones en el área de automatización y control, en las diversas rama de la ciencia como: robótica, meca trónica, electromedicina entre otras.

Page 3: CURSO DE FLOWCODE.pdf

2

FLOWCODE PROGRAMA ORIENTADO A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC.

Objetivo general.

Estudiar y manejar el programa de Flowcode, para que los participantes puedan programar a cualquier microcontrolador PIC .

Objetivo específicos.

Describir de forma breve la función, programación y aplicaciones de los microcontroladores.

Conocer el Entorno Flowcode.

Estudiar las herramientas y configuraciones básicas 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 básicas a nivel de hardware para la elaboración de montajes prototipos.

Herramientas requeridas en curso.

1. Herramientas Físicas.

Los recursos utilizados para impartir el curso son: pizarra acrílica, marcador, lapto, video bean, protoboard con montaje de prueba, tarjeta programadora.

2. Herramientas Virtuales Software.

Power Point, Word, Flowcode, Labview y WINPIC800 3.55B.

Metodología.

Basado en el método científico, una vez estudiado las aplicación y evolución de la programación de los microcontroladores, se procederá a conocer el entorno y las herramientas básicas de flowcode, posteriormente se realizaran ejercicios prácticos, siendo estos dirigidos por el instructor, cuando los mismos estén 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

Page 4: CURSO DE FLOWCODE.pdf

3

pueden realizar los ejercicios de forma individual o en grupo (máximo de 2 personas).

Dirigido.

A estudiante del último nivel de su carrera y/o profesionales con conocimientos básico de electrónica analógica y digitales, con intereses a fines a la programación y diseño 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.

Número de participante:

De 8 a 20 participantes máximo de acuerdo al espacio del laboratorio, donde se impartirá el curso.

Page 5: CURSO DE FLOWCODE.pdf

4

Contenido de Flowcode para Pic.

• Definición de Flowcode.

• Configuración del entorno Flowcode.

• Estudio del entorno de Flowcode, conociendo las herramienta dediagrama de flujo y herramienta virtuales tipo hardware.

• Ejemplo de programación simulación y practica, usando diodo led consecuencia de tiempo para aplicaciones de semáforos.

• Ejemplo de programación simulación y practica, usando diodo led ypotenciómetro, para aplicaciones de monitoreo y control on-off.

• Ejemplo de programación simulación y practica, usando potenciómetro ydisplays , para aplicaciones de indicadores.

• Ejemplo de programación simulación y practica, usando potenciómetro ypantalla lcd, con operaciones matemáticas, regla de tres formulas yvariable punto flotante, para aplicaciones de control de precisión.

• Ejemplo de programación simulación y practica usando pantalla lcd yteclado matricial, para aplicaciones de control de acceso.

• Ejemplo de programación simulación y practica usando potenciómetro,pantalla lcd y comunicación rs232. con aplicaciones en Labview. parasistemas de adquisición datos y control.

• Ejemplo de programación simulación y practica usando el modo pwm,como generador de señales.

• Ejemplo de programación simulación y practica referente a la creaciónde macro o subrutina, bajo lenguaje Flowcode, lenguaje c ó códigoassembler.

• Ejemplo de programación simulación y practica del uso de lasinterrupciones timer0 y timer1 para realizar tarea cada cierto tiempodeterminado.

• Estudio de ejercicios de comunicación usb, lcd grafico y motores pasó apaso. potenciómetro digital, y dac 10bits.

• Estudio de circuitos para activación de cargas dc, ac (sw de estadosólidos).

Page 6: CURSO DE FLOWCODE.pdf

5

Estudio de Flowcode para PIC y sus aplicaciones. La herramienta del futuro para la programación de Microcontroladores.

Al hablar de automatización está implícito el término de tarjeta de control, estas son programadas algorítmicamente e interactúan con una serie de componentes, como lo son los sensores y actuadores, la programación 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 sistemático de las diversas herramientas de programación existentes en el mercado en el área de microcontroladores y microprocesadores, arrojo como resultado que el programa mas completo para la programación de microcontroladores es Flowcode, un novedoso programa orientado a la programación de diversos microcontroladores tipo AVR, ARM y PIC, único software de programación de micro, que posee dos ambientes simultaneo, uno de programación de diagrama de flujo y otro de simulación lo que lo hace exclusivo, contando con múltiples 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, Módulos 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 además al usuario realizar herramientas propias en Flowcode, Lenguaje C o Código Assembler, contando con su propio compilador, y programador. A través del método científico se realizo un estudio teórico práctico de Flowcode, la cual permitió la elaboración de un manual de Flowcode para PIC, este brindara a los investigadores de esta área, múltiples soluciones en materia de automatización, el mismo viene sustentando por un curso teórico práctico ha impartirse en el IUT Cumana y su extensión de Punta de Mata. Con miras a ser extendido a otros institutos del país.

Palabras claves: diseño, control, programación.

Page 7: CURSO DE FLOWCODE.pdf

6

CURSO DE FLOWCODE

Flowcode es un programa orientado a la programación de microcontroladores AVR, ARM y Microchip, la programación se realiza a través de diagrama de flujo, una vez construido el programa, Flowcode permite traducir el diagrama de flujo a lenguaje C, o a código assembler (ASM), y a su vez compila el programa dentro del mismo entorno, genera el código .HEX, que es el que finalmente se graba en el micro a través de la placa del programador y su respectivo software. Flowcode tiene 2 ambiente simultáneo, uno de diagrama de flujo y otro panel de componente hardware, permitiendo simular el comportamiento del programa a través 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 garantía que brinda Flowcode de un óptimo funcionamiento del programa según la simulación respetando sus pruebas de simulación.

Este programa le permite al programador realizar subrutinas propias, bien sea Código Assembler o en Lenguaje C, según sea la preferencia del programador. Para convertirla en macro ó bloque en lenguaje Flowcode, con la salvedad que ese código no permite la simulación de los componentes.

Conocimientos básicos.

Antes de comenzar a explicar el programa de Flowcode para aquellos que se están iniciando en esta área de la electrónica, es necesario tener conocimientos básicos de electrónica analógica y digital, las conexiones básicas que debe tener un micro para que funcione el programa realizado en Flowcode, las cuales se va a descargar al microcontrolador a través del programador.

La figura 1 muestra conexión básica de un microcontrolador, los pines comunes de conexión en los microcontroladores son:

Mclr : Masterclear Gnd: Tierra Vdd: Voltaje positivo Osc1: Entrada de cristal Osc2: Salida de cristal

Page 8: CURSO DE FLOWCODE.pdf

7

Figura 1. Conexiones Básicas de los Microcontroladores.

El Programador

Una vez realizado el programa en Flowcode u otro lenguaje de programación de micro, se debe compilar el programa en un software compilador, este genera un archivo con extensión .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 más versátil económico 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, suministrándole la energía del puerto USB al circuito, la figura 2 muestra la conexión ha realizar, se recomienda dejar libre los pines rb6 y rb7, pudiéndose 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.

Page 9: CURSO DE FLOWCODE.pdf

8

Figura 2. Conexión Física del Programador.

Page 10: CURSO DE FLOWCODE.pdf

9

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 opción nuevo. La cual se observa la figura 3.

Figura 3. Primer Entorno de Flowcode.

Luego de elegir la opción 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. Elección del Micro a Utilizar.

Posteriormente se abrirá el entorno de flowcode, si el entorno no esta en español, damos clic en la opción view y luego el ultimo ítems de globaloptions ó opción y en la opción “override languaje” se cambia la opción a español.

Page 11: CURSO DE FLOWCODE.pdf

10

Una vez establecido el idioma, procedemos a elegir el cristal que va utilizar el micro en el montaje. Volvemos a elegir la opción view y luego elegimos Project options.

En la figura 5 se puede observa la ventana Project Options, en ella se encuentra la configuración 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 simulación entre otros parámetros.

Figura 5. Opciones de Proyecto

En la opción 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).

Page 12: CURSO DE FLOWCODE.pdf

11

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 visualización 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 opción Ext Properties, allí el usuario podrá modificar las características físicas de los componentes, así como elegir otra serie del mismo componente.

Luego el usuario debe entrar en la opción Connections, allí se debe establecer las conexiones del componente en el microcontrolador.

En la opción 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 configuración de elementos virtuales claro esta, en el caso de utilizar elementos virtuales con operación de inicialización. Los macros de inicialización no deben estar en ciclos repetitivos.

Los siguientes macros a insertar son los de interrupción si el programa utiliza interrupción.

Posteriormente se acostumbran a utilizar etiquetas o ciclos repetitivos y dentro de ellos, múltiples operaciones de acuerdo a la lógica del programa.

Una vez realizado toda la estructura del programa en la opción 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 (código assembler) lenguaje C y código .Hex que es el que finalmente se grabara en el microcontrolador a través de la tarjeta programadora por medio de un PC y un software.

Page 13: CURSO DE FLOWCODE.pdf

Autor: Ing. Ulises Gómez IUT Cumana Ext. Punta de Mata www.electronicalatianoamericana.com 1era Revisión Apure _ Venezuela [email protected] 12

SÍMBOLO DE HERRAMIENTAS VIRTUALES

ENTORNO FLOWCODE

Figura 7. Entorno Flowcode.

Page 14: CURSO DE FLOWCODE.pdf

13

Símbolo para Insertar Led

Símbolo Para Insertar Hasta 8 Led

Símbolo Para Insertar Display

Símbolo Para Insertar hasta 4 Display.

Símbolo Para Insertar Pantalla LCD.

Símbolo para Insertar Pantalla GLCD Gráfica.

Símbolo Para Insertar Interruptor.

Símbolo Para Insertar Hasta 8 Interruptores.

Símbolo para Insertar Potenciómetro Analógico.

Símbolo para Insertar Teclado Matricial.

Símbolo que Inserta Instrumento para Observar el Contenido de la Memoria del

Micro.

Símbolo que Inserta Instrumento para Observar la Señal PWM Generada.

Símbolo que Inserta Instrumento que Simula la Comunicación entre el Micro y un

PC por RS232.

Símbolo que Inserta Instrumento que Simula la Comunicación entre el Micro y

dispositivo que Maneje i2c.

Símbolo que Inserta Motores Servomotor.

Símbolo que Inserta Motor Paso a Paso.

Page 15: CURSO DE FLOWCODE.pdf

14

Manejo de Módulos Externos RF.

Manejo de Protocolo TCPI Módulos Matriz.

Manejo de Protocolo TCPI Para Publicar Datos en Servidor Web Módulos Matriz.

Manejo de Protocolo Bluetooht Módulos Matriz.

Manejo de Protocolo para el Manejo de Memorias Micro SD Módulos Matriz

Manejo de Protocolo Para Manejar Música Módulos Matriz

Manejo del GPS Módulos Matriz

Manejo de los Motores del Carrito Matriz

Manejo del Protocolo SPI.

Manejo de Protocolo Para el Manejo de USB Modo Esclavo Módulo Matriz.

Manejo de Protocolo para el Manejo de USB.

Page 16: CURSO DE FLOWCODE.pdf

15

EXPLICACIÓN BÁSICA DE LOS SIMBOLOS DE FLOWCODE: el cuadro 1 denota los símbolos existentes en Flowcode y su función básica.

Este símbolo se utiliza para leer en un bit o todo el puerto del micro

Este símbolo se utiliza para escribir en un bit o todo el puerto del micro

Este símbolo es un bloque D de delay o demora Este símbolo es un condicional usados con variable y constante con operaciones con o sin paréntesis y comandos como: =,<><, <=, >, >=,>>, <<, Este símbolo es una estructura de casos

Símbolo A: Etiqueta para definir un salto

Símbolo A para Salto a etiqueta

Loop al incluir este símbolo se incluyen 2 símbolo permitiendo repetirse de manera infinita o N veces lo que esta dentro del ciclo. Símbolo usado para llamar un macro hecho por el usuario o crear uno nuevo

Símbolo usado para llamar macro o subrutinas para manipular los componentes insertado

Operaciones matemática : con paréntesis ( ), =, <>,+, -, *, /, MOD, <, <=, >, >=,>>, <<, NOT, AND, OR, XOR NOT, AND, OR, Exclusive OR

Conversiones de formato string, flotante, entero

Activación y llamado a subrutinas dentro de la interrupción

Este símbolo permite crear un bloque realizando las operaciones en código assembler o lenguaje c

Símbolo para insertar comentario

Cuadro1. Símbolos de Diagrama de Flujo de Flowcode

Page 17: CURSO DE FLOWCODE.pdf

16

Insertar y editar un bloque.

Para insertar un bloque se debe a puntar el puntero del mouse sobre el símbolo deseado, manteniendo click izquierdo del mouse presionado permite arrastrar el símbolo 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 múltiples bloque al igual que la opción de cortar de paint, y arrastras donde desee el usuario esos múltiples bloque.

El símbolo de ayuda este presente en todas las ventanas de configuración de los bloques del diagrama de flujo, la cual a la hora que el

usuario tenga alguna duda la satisfaga.

Creación de variables de usuario

La mayoría de los bloque en su configuración posee un botón 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 configuración del bloque una vez creada, la figura 8 muestra el entorno de la creación y selección de variables.

Los tipos de variable son:

Byte: la cual es un registro de 8 bits. Entero: la cual es un número que oscile entre -32768 a 32767 Secuencia: variable orientada a cadena de caracteres string de código ascci. Hasta 20 dígitos. Punto flotante: variable que almacena valores positivos negativos y con decimales.

La figura 8. Entorno de la Creación y Selección de Variables.

Page 18: CURSO DE FLOWCODE.pdf

17

Manejo de formatos:

Todos los bloques de configuración 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 numéricos fuera de ese intervalo, manejándose de forma circular o modular.

A nivel numérico a la ahora que se desea asignar un valor a un variable numérica constante como byte y entero (int) se puede introducir de tres forma.

En decimal: se coloca el número deseado: 255 En hexadecimal: se coloca el número hexadecimal deseado con el prefijo 0x ejemplo: 0xFF En binario se coloca el número binario deseado con el prefijo 0b ejemplo: 0b11111111

Las variables float (punto flotante) admiten números con signo y decimales, para definir los decimales deben ser a través de un punto ejemplo 1.23

Las variables string (secuencia) admiten cadena de caracteres a través de las comillas como por ejemplo “hola usuario” además 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.

Page 19: CURSO DE FLOWCODE.pdf

18

Explicación y configuración 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 específico 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 físico 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. Símbolo y Configuración, 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 señala la opción utilizar enmascaramiento, serán validos solo los bits señalados, y los bits no seleccionado tomaran automáticamente el valor de 0. Visto en la figura 10.

Figura 10. Símbolo y Configuración en la Variable Resultado se Almacena el Valor del PuertoA.

Page 20: CURSO DE FLOWCODE.pdf

19

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 específicamente para colocar un 1 o 0, lógico en la caja de texto variable, a un pin determinado de los puertos del micro. Este pin, también puede asumir el valor de una variable entera o byte, que puede estar en 0 o 1. La figura 11 ilustra cómo se coloca un uno lógico en el porta,2 (RA2).

Figura 11. Símbolo y Configuración, 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 señala la opción utilizar enmascaramiento serán validos solo los bits señalados, y los no seleccionado tomaran automáticamente el valor de 0. Vista en la figura 12.

Figura 12. Símbolo y Ejemplo de Configuración Coloca el Número 125 en el PORTB.

Page 21: CURSO DE FLOWCODE.pdf

20

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. Según 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 variación de una variable externa, elegida por el usuario en el botón variable. La figura 13 ilustra la ventana de programación del bloque.

Figura 13. Símbolo y Configuración de Demora.

Este es un bloque condicional que permite realizar una operación condicional usados con variable y/o constante con comandos como: =, <>, , MOD, <, <=, >, >=,>>, <<. Este bloque presenta una pequeña dificulta con los símbolo >, < a nivel de teclado, para colocarlos se sugiere presionar el botón 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 vía si se coloco un bloque de ingreso colocando un cero en el porta,0 (ra0), en la vía negada se coloco un bloque de ingreso colocando un 1 en el porta,0 (ra0), por defecto la opción SI se encuentra en la vía horizontal, y la opción NO en la vía vertical, pero si señala la opción intercambiar Si o No podrá intercambiar las vías del rombo condicional, como un gusto particular del usuario. La figura 14 ilustra la ventana del condicional y el bloque.

Figura 14. Símbolo, Configuración y Ejemplo del Uso del Condicional

Page 22: CURSO DE FLOWCODE.pdf

21

Este símbolo es una estructura de caso de igualdad, la cual permite al usuario tomar hasta 10 decisiones o vías 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 1segundoSi es igual a 40 se coloco un bloque demora de 2 milisegundosSi es igual a 100 se coloco un bloque demora de 3 segundos

Figura 15. Símbolo, Configuración y Ejemplo de la Estructura de Caso.

Este símbolo es una etiqueta de punto de conexión para salto, por defecto viene denotado con letras, pero en la caja de texto opción 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. Símbolo, Configuración de Punto de Conexión por Defecto Denota con Letra.

Page 23: CURSO DE FLOWCODE.pdf

22

Figura 17. Símbolo, Configuración de Punto de Conexión con Etiqueta Modificada Denota con la Palabra Ciclo.

Este símbolo es un salto a una etiqueta, de punto de conexión para salto, en la pestaña de ir a punto de conexión, se muestran todas las etiquetas o puntos de conexión existentes en el programa, en donde el usuario debeelegir la etiqueta de salto que requiere. La figura 18. Muestra el símbolo y la configuración de la ventana.

Figura 18. Símbolo, Configuración de Salto a Punto de Conexión a la Etiqueta Ciclo.

Este símbolo es de un ciclo repetitivo e incluye en el diagrama dos símbolos, por defecto viene seleccionado el Bucle Mientras con el valor 1, configurado como un ciclo infinito, la cual debe comenzar al principio

según la selección por defecto, toda la lógica que se encuentre dentro del ciclo se repetirá indefinidamente. Véase la figura 19 para mayor ilustración.

Figura 19. Símbolo, Configuración de Bucle o Ciclo Repetitivo

Page 24: CURSO DE FLOWCODE.pdf

23

El ejemplo visto en la figura 20. Ilustra que si se cumple la condición, de que la variable resultado sea igual 125, resultado = 125”, comenzara desde el principio realizando todas las operaciones que están dentro del ciclo y al llegar al final volverá a preguntar por la condición nuevamente, y si no se cumple la condición si ira al final del ciclo, obviando todas operaciones dentro del mismo. Regresando nuevamente a preguntar por la condición. Al llegar al final del bucle siempre regresa a preguntar por la condición, donde se dictaminara, si se obvian o no, las operaciones dentro del ciclo. De acuerdo a la pregunta a través de los operandos: =, <>, <, <=, >, >=, >>, <<.

Figura 20. Símbolo, Configuración de Bucle o Ciclo Repetitivo Condicional

Si se selecciona la opción 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 cronológica, tal como se encuentran dentro del ciclo.

Este símbolo representa los macro de la herramientas virtuales que posee flowcode, dando doble clic sobre este símbolo, 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.

Page 25: CURSO DE FLOWCODE.pdf

24

Figura 21. Símbolo, Configuración de Macro de Componente

La figura 22 muestra la elección del macro del diodo led, le permite encender o apagar colocándolo en alto o en bajo un pin del puerto permitiendo al programador obtener una variable de retorno del estado del led.

Figura 22. Configuración de Macro de Componente Diodo Led.

La figura 23 muestra la elección 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.

Page 26: CURSO DE FLOWCODE.pdf

25

Figura 23. Configuración de Macro de Componente Interruptor.

El macro elegido en la figura 24 es el del display de cuatro dígitos y solicita tres parámetros en el botón variable el usuario insertara las variables separadas por coma(,)

Digit(BYTE): es el número del display contado de izquierda a derecha dentro del display de 4 dígitos. 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 impresión entre macro de displays, debe estar un retardo de al menos 5 mseg.

Figura 24. Configuración de Macro de Componente Display de 4 Dígitos.

El macro elegido en la figura 25 es de un display, este solicita dos parámetros, en el botón 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

Page 27: CURSO DE FLOWCODE.pdf

26

Figura 25. Configuración 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 operación se realiza solo una vez, por eso se recomienda no utilizarse en un ciclo repetitivo.

Clear: función 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 dígitos.

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 posición del cursor, x: es el del número carácter en la línea comenzando desde el carácter 0, y: es el número de línea de la pantalla, comenzando desde la linea0.

ClearLine(BYTE Line_Number): limpia una línea 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é carácter ocurrirá la rotación.

Page 28: CURSO DE FLOWCODE.pdf

27

Figura 26. Configuración de Macro de Componente LCD.

Nota: Después 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 retención a la memoria del lcd.

La figura 27 ilustra el macro del teclado, el cual permite obtener el número presionado en el teclado en código ascii o en número 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. Configuración de Macro de Componente Teclado Matricial.

Page 29: CURSO DE FLOWCODE.pdf

28

El macro visto en la figura 28 del modulo rs232, le da opción al usuario de enviar o recibir, bien sea en código ascii carácter a carácter o una cadena de caracteres en una variable string o secuencia.

Figura 28. Configuración 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. Configuración de Macro de Componente PWM.

Page 30: CURSO DE FLOWCODE.pdf

29

Este símbolo es un macro o subrutina para realizar operaciones aritmético lógica, 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 símbolo, se abrirá una subventana tal como se muestra en la figura 30,

Nota: Es importante destacar que a la hora de realizar operaciones matemáticas o lógicas, 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 función especial de Flowcode donde intervengan varios tipos de variables. No se deben realizaroperaciones entre formatos no explicito en la presente nota, como por ejemplo entre una variable de número entero y una variable de número flotantes.

En matemática, la aritmética MOD modular es un sistema aritmético para clases de equivalencia((Clase de números con signo)) de números enteros llamadas clases de congruencia. Algunas veces se le llama, sugerentemente, aritmética del reloj, ya que los números 'dan la vuelta' tras alcanzar cierto valor (el módulo).

Por ejemplo, 23 mod 12 = 11. (Estos cálculos mod 12 son lo que se hace cuando se convierte la hora de un reloj 24-horas a un reloj 12-horas).

Operaciones con número flotantes

Para realizar operaciones con números flotante solo se deben utilizar las funciones que posee Flowcode para operar con ellas, las cuales se explican a continuación:

float = fadd(float, float) - suma de dos números flotantes

float = fsub(float, float) - resta de dos números flotantes

float = fmul(float, float) - Multiplicación de dos números flotantes

float = fdiv(float, float) - División de dos números flotantes

float = fmod(float, float) - MOD de dos números flotantes

Las siguientes operaciones Retorna el valor 1 al byte si se cumple la condición y 0 si no se cumple.

byte = isinf(float) - verifica si un número flotantes es infinito

Page 31: CURSO DE FLOWCODE.pdf

30

byte = isnan(float) - Comprobaciones para ver si el punto flotante no es un número

byte = float_eq(float, float) - compara si dos números flotantes son iguales

byte = float_ge(float, float) - Compara dos números de punto flotante para ver si uno de ellos es mayores o igual respecto a otro

byte = float_le(float, float) - Compara dos números de punto flotante para ver si uno de ellos es mayores respecto a otro.

byte = float_lt(float, float) Compara dos números de punto flotante para ver si uno de ello es menor respecto a otro

int = random() - genera un número aleatorio desde -32768 <=> 32767

Así se tiene por ejemplo:

Tal como se puede observar en la figura 27. En la ventana de configuración de operaciones, en este bloque se pueden realizar múltiples operaciones matemáticas con el uso de las funciones matemáticas.

En el botón de funciones están disponibles todas las funciones requeridas para trabajar en la caja de cálculos, y en el botón variable podemos encontrar todas las variables existentes en el programa para su utilización en las operaciones.

Figura 30. Símbolo, Configuración del Macro de Operaciones.

Page 32: CURSO DE FLOWCODE.pdf

31

Este símbolo se utiliza para colocar comentario a una altura predeterminada del diagrama de flujo, con el fin de dar una orientación en la operación, para su mejor compresión, a la hora de analizar un programa estos comentario son de gran ayuda. Véase la figura 31.

Figura 31. Símbolo, Configuración del Bloque de Comentario

Este símbolo posee funciones que permite la manipulación de variables string ó secuencia para conversión de variables tipo byte, in,t y float a string entre otras, tal como muestra la figura 32.

En el botón de funciones están disponibles todas las funciones para trabajar con string, y en el botón variable podemos encontrar todas las variables existentes en el programa para su utilización 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.

Page 33: CURSO DE FLOWCODE.pdf

32

Figura 32. Símbolo, Configuración del Bloque de Manipulación de String.

Para la suma por ejemplo.

Si Dato1 [20] = "Hola" Si Dato2 [10] = "Cerebro" Total [20]

Total = Dato1 + Dato2

Entonces después de la suma la variable Total = “Hola Cerebro”.

Función ToString$(value)

Pasa una variable numérica ó constante a string.

Ejemplo, valor es una variable string y valorx= es una variable de números 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

Función ToUpper$(string) Si Str1= hello

Cambias las letras a mayúsculas. TestStr = ToUpper$(Str1) TestStr es ahora "HELLO "

Page 34: CURSO DE FLOWCODE.pdf

33

Función ToLower$(string) Si Str1= HELLO Cambias las letras a minúsculas. TestStr = ToLower$(Str1) TestStr es ahora "hello "

Función Length$(string) Si Str1= HELLO Retorna el número de caracteres RetVal = Length$(Str1) RetVal es ahora 5

Función: Right$(string, size) Str1= “hello “ string: variable string size: número de caracteres

El siguiente ejemplo ilustra que la variable “Str1” tomaran solo los 3 caracteres que están 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 "

Función: Mid$(string, start, size)

string: variable string Start: posición de inicio size: número de caracteres a tomar

El siguiente ejemplo ilustra según la función si la variable Str1= “hello” al usar la función Mid$(Str1, 2, 3) tomara de la variable str1 los caracteres a partir del carácter 2, y el número 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

Page 35: CURSO DE FLOWCODE.pdf

34

0 = si los string o variable de secuencia son iguales 1 = string1>string2 255 = string2>string1

El tercer parámetro 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 están en mayúsculas y otras en minúsculas, según la posición que ocupan estos caracteres en el código 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 idénticas debido a que son las misma letras así que una este mayúsculas y otras en minúsculas.

Si Str2 = Str1

RetVal = Compare$(Str1, Str2, 0)

RetVal es 0 porque ambos string son idénticos.

Función FloatToString$(): convierte un número flotante a string.

Ejemplo: pasa la variable de número flotante “resultado” a una variable de números string denominada valorx.

Valorx= FloatToString$(resultado)

Función StringToInt$(): convierte un string a un número entero

Ejemplo Pasa la variable string “result” a un número entero almacenado en la variable de números entero retx.

Page 36: CURSO DE FLOWCODE.pdf

35

retx=StringToInt$(result):

Función StringToFloat$(): convierte un string a un número flotante Ejemplo Pasa una variable string “result” a un número flotante almacenado en la variable de número flotante Valorx.

Valorx=StringToFloat$(result):

Función NumberToHex$(): convierte un número a código hexadecimal.

Ejemplo Pasa la variable de número entera “estex” a un código hexadecimal en la variable Verx.

Verx= NumberToHex$(estex)

Este símbolo se utiliza para llamar o crear un macro. Un macro es una operación 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 configuración de este bloque. Los macros creados estarán en la caja de texto macro, y podrán ser editados en el botón OK&Editar Macro.

Pasos para Crear un macro o subrutina

Damos doble sobre el botón crear nuevo macro.

Figura 33. Configuración del Bloque para Llamar o a un Macro.

Page 37: CURSO DE FLOWCODE.pdf

36

Tal como se muestra en la figura 34. En la caja de texto Nombre del NuevoMacro se debe colocar el nombre del macro que se va a realizar, preferiblemente con un nombre asociado a la operación del macro.

En la caja de texto Descripción del Nuevo macro: si es de preferencia del programador da una breve explicación de la función del nuevo macro a realizar, a manera de ilustración

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 botón 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, Parámetros, Variables locales, Tipo de retorno

En la caja de texto de Parámetros en editar parámetros, 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 parámetros,

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 operación 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 operación, si no utilizar variables declaradas en el programa principal y dentro macro tomara el valor de una operación determinada deseada por el programador.

Page 38: CURSO DE FLOWCODE.pdf

37

Figura 34. Configuración del Bloque Crear Nuevo Macro.

Una vez establecidas todas las variables se les da al botón 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 parámetros según su tipo y la variable de retorno si ese macro posee variable de retorno. Luego Se procede a dar click a el botón OK&EditarMacro, 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. Configuración del Bloque de Macro

Page 39: CURSO DE FLOWCODE.pdf

Autor: Ing. Ulises Gómez IUT Cumana Ext. Punta de Mata www.electronicalatianoamericana.com 1era Revisión Apure _ Venezuela [email protected] 38

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 opción 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 dirección 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 dirección donde se encuentra, en el panel superior, elegimos la opción Macro en la opción importar. Se abrirá una ventana donde le solicita al programador la dirección donde se encuentra la subrutina, una vez localizada y señalada, se insertara automáticamente en el programa, y se abrirá una nueva ventana de diagrama de flujo donde se encuentra la secuencia lógica del nuevo macro insertado, estando disponible en ese momento en el símbolo del macro, para ser llamado, y se declaran automáticamente 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

Page 40: CURSO DE FLOWCODE.pdf

39

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 automáticamente 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 opción Macro que esta en la parte superior del menú, se le da la opción 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 automáticamente 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, permitiéndole 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 opción Macro y luego en la opción editar

Nota: Las operaciones con las variables parámetros dentro de un macro nuevo, a pesar que Flowcode permite realizar varias operaciones con ellas, se recomienda que solo se hagan 1 sola operación, a partir de allí se respalden en variables del programa, porque el mismo se tiende a perder cuando se realizan múltiples operaciones con las variables de parámetros.

Este símbolo se utiliza para configurar y habilitar las interrupciones y crear subrutinas o macro, para que se ejecuten dentro de la

interrupción, en la caja de texto interrumpir por defectos Flowcode trae 5 tipos de interrupciones. Véase la figura 37.

Page 41: CURSO DE FLOWCODE.pdf

40

En el botón Propiedades se abrirá otra ventana para configurar la interrupción elegida en la caja de texto Interrumpir en:

TMR0: Interrupción por desborde timer0. TMR1: interrupción por desborde timer1. TMR2: Interrupción por coincidencia time2 a PR2 INT: Interrupción por flanco en el pin rb0. PORT: Por cambio de estado en algún pin entre RB4 a RB7.

Figura 37. Ventana de Configuración de Interrupción.

En la figura 38. Muestra la Ventana de Configuración de Propiedades de la Interrupción 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 señal de clock que esté presente en el pin ra4. El tiempo que tardara en producirse la interrupción vendrá determinada por el periodo que este en el pin ra4

Si se elige internal clock (CLKO): tomara la señal 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 interrupción en 1 segundo, si se desea saber este tiempo se debe dividir 1/(frecuencia de interrupción).

Page 42: CURSO DE FLOWCODE.pdf

41

Figura 38. Ventana de Configuración de la Interrupción por TMR0.

En la figura 39. Muestra la Ventana de Configuración de propiedades de la interrupción 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 interrupción en 1 segundo, si se desea saber este tiempo se debe dividir 1/(frecuencia de interrupción).

Figura 39. Ventana de Configuración de la Interrupción por TMR1.

En la figura 40. Muestra la Ventana de Configuración de propiedades de la interrupción 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.

Page 43: CURSO DE FLOWCODE.pdf

42

Postcaler Rate: se elige la cantidad de veces que debe ocurrir, la coincidencia entre pr2 (Rollover) y tmr2 para que deba ocurrir la interrupción.

Rollover Value: es el valor de que tomara el registro pr2, que dictaminara el tiempo de ocurrencia por interrupción de timer2

En la misma ventana les mostrara la frecuencia en que se repetirá la interrupción en 1 segundo, si se desea saber este tiempo se debe dividir 1/(frecuencia de interrupción).

Figura 40. Ventana de Configuración de la Interrupción por TMR1.

En la figura 41. Muestra la Ventana de Configuración de propiedades de la interrupción por flanco en Rb0. Source Edge Select: se elige si interrupción se producirá por flanco ascendente o descendente en el pin RB0.

Figura 41. Ventana de Configuración de la Interrupción por RB0.

Una vez configurada la interrupción se procede a crear la subrutina en el botón crear nuevo macro visto en la figura 42.

Page 44: CURSO DE FLOWCODE.pdf

43

Este símbolo se utiliza para crear un bloque en lenguaje c ó código assembler. Una vez insertado el símbolo en el programa se da doble click sobre el símbolo, abriéndose una ventana tal como se muestra en

la figura 39. Cabe destacar que las operaciones realizadas en este bloque de código no podrán intervenir en la simulación 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 configuración del bloque código lo primero que se debe hacer es borrar todo el comentario que muestra en la caja de texto Código C, se coloca un nombre alusivo a la operación a realizar.

Figura 42. Ventana de Configuración del Bloque para Insertar Condigo en C, o Assembler.

Insertar código assembler

Para insertar una línea en assembler se antepone las siglas asm antes del código como por ejemplo asm movlw 50

Para insertar varias instrucciones se coloca

asm

{

Introduzca el código aquí respetando las reglas de flowcode.

}

Page 45: CURSO DE FLOWCODE.pdf

44

Lo que se acostumbra a la hora de insertar código en assembler, si están 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 Configuración para Insertar Código Assembler Manejando los Puertos del PIC y Variables de Flowcode.

Insertar lenguaje C

A la hora de insertar código 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 matemáticas mas directas, utilizando las funciones de Flowcode

La figura 44 ilustra el siguiente ejemplo.

LED7Seg40_ShowDigit : es una función orientada a una herramienta virtual, que permite utilizar un display de 4 dígitos y (2, FCV_COUNT2, 1), son 3 parámetros, 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 parámetros que solicita esa función, para manejar el componente virtual, igualmente en lenguaje C se puede utilizar los opertandos <, <=, >, ( ), =, <>,+, -, *, /, MOD,>>, <<, NOT, AND, OR, XOR NOT, AND, OR, >=,>>, <<.

Page 46: CURSO DE FLOWCODE.pdf

45

Figura 44. Ventana de Configuración 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 Configuración para Insertar Lenguaje C Manejando los Puertos del PIC.

Reglas de Flowcode para manejar: variables, macro de Flowcode y puntos de conexión.

Page 47: CURSO DE FLOWCODE.pdf

46

Manejo de Variables de Flowcode en Lenguaje C y Código 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 minúsculas como: portb, status, en lenguaje c se pueden utilizar sin ninguna complicación, sin anteponer ninguna sigla

En código assembler se debe anteponerle el prefijo: _FCV_ para utilizar la variable VALORX quedando _FCV_VALORX En código assembler si se desea utilizar registro especiales se deben escribir en letras minúsculas como el portb, status, entre otros se debe anteponer el símbolo “_” antes del registro especial en cuestión 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 operación se queda en el registro que aparece en la operación.

Manejo de llamadas de macro de Flowcode en lenguaje C y código 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 código Assembler se debe utilizar _FCM_() para llamar al macro BIN_BCD seria _FCM_ BIN_BCD ()

Manejo de Punto de conexión o etiquetas en Flowcode en lenguaje C y código assembler.

Por ejemplo, si el programador desea saltar a una etiqueta o punto de conexión 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 conexión seria FCC_CICLO.

En código assembler se utiliza _FCC_ para saltar a la etiqueta o punto de conexión seria _FCC_CICLO.

Page 48: CURSO DE FLOWCODE.pdf

47

Como utilizar el bloque de insertar lenguaje C y/o código 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 código, se deben utilizar dentro de la subrutina en cualquier otra operación, de esta manera una vez que este macro se importe a otro proyecto las variables que maneje el bloque de código también serán importada.

Compilar el programa.

A la hora de compilar el programa, Flowcode trae por defecto la configuración del programa de la empresa MATRIZ MULTIMEDIA, pero si no se cuenta con el programador de esta empresa, se debe cambiar la configuración 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 opción chip que esta en la barra de herramienta superior y luego en opción configurar. Posteriormente debe elegir la opción 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 botón OK, el usuario vuelve a dar el clic en la opción chip y finalmente en la opción compilar a hex, el programa mostrara la ventana de configuración, 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 dirección, pero con extensión .hex, Este archivo lo utilizara el usuario para grabar el micro en el programador de su preferencia.

Figura 46. Configuración del compilador para programadores que no son de la empresa Matriz Multimedia c.a.

Page 49: CURSO DE FLOWCODE.pdf

48

Errores de compilación

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 compilación.

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 compilación.

Algunas veces el compilador se desconfigura y de forma constante envía error de compilación, 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 dirección donde esta el programa que le arrojo el error en la compilación, se compila Interrupt every second en .hex y luego sin cerrar el programa abre el programa que estaba mostrando el error de compilación, esta operación soluciona el problema del compilador reconfigurándolo permitiendo compilar su programa sin problema.

Page 50: CURSO DE FLOWCODE.pdf

49

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 parámetros. 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 guía las siguientes figuras para que puedan probar sus programas en el montaje de prueba.

En la figura 47 se observa el componente y la conexión física, que debe tener la pantalla lcd, referente a los pines del micro del montaje de prueba.

Figura 47. Diagrama de Conexión del LCD.

Page 51: CURSO DE FLOWCODE.pdf

50

En la figura 48 se observa el entorno de conexión 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 conexión virtual del LCD.

En la figura 49. Se observa el componente y la conexión física, que debe tener el modulo de displays, referente a los pines del micro del montaje de prueba.

Figura 49. Diagrama de Conexión del Módulo de displays.

Page 52: CURSO DE FLOWCODE.pdf

51

En la figura 50 se observa el entorno de conexión 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 conexión de llos segmentos desde d0 hasta d7.

Figura 50. Entorno de conexión virtual del modulo displays.. En la figura 51. Se observa el componente y la conexión física, que debe tener el modulo de displays, referente a los pines del micro del montaje de prueba.

Figura 51. Diagrama de Conexión del teclado matricial 4x4.

Page 53: CURSO DE FLOWCODE.pdf

52

En la figura 52 se observa el entorno de conexión 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 pequeña 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 opción connections se debe dar clic en la opción Ext properties automáticamente 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 posición 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.

Page 54: CURSO DE FLOWCODE.pdf

53

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

Figura 55. Entorno de propiedades de componente con valores modificados de valores numéricos, adaptados al montaje de prueba.

Page 55: CURSO DE FLOWCODE.pdf

54