Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso de Flowcode PDF
Curso de Flowcode PDF
1
FLOWCODE PROGRAMA ORIENTADO A LA PROGRAMACIÓN DE
MICROCONTROLADORES PIC.
Objetivo general.
Objetivo específicos.
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.
Metodología.
2
pueden realizar los ejercicios de forma individual o en grupo (máximo de 2
personas).
Dirigido.
Evaluado.
Número de participante:
3
Contenido de Flowcode para Pic.
• Definición de Flowcode.
4
Estudio de Flowcode para PIC y sus aplicaciones. La herramienta del futuro
para la programación de Microcontroladores.
5
CURSO DE FLOWCODE
Conocimientos básicos.
Mclr : Masterclear
Gnd: Tierra
Vdd: Voltaje positivo
Osc1: Entrada de cristal
Osc2: Salida de cristal
6
Figura 1. Conexiones Básicas de los Microcontroladores.
El Programador
7
Figura 2. Conexión Física del Programador.
8
Pasos para configurar el entorno FlowCode
9
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.
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.
11
ENTORNO FLOWCODE
13
Manejo del Protocolo SPI.
Manejo de Protocolo TCPI Para Publicar Datos en Servidor Web Módulos Matriz.
14
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
15
Insertar y editar un bloque.
16
Manejo de formatos:
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
17
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.
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.
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. 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.
20
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,
21
Figura 17. Símbolo, Configuración de Punto de Conexión con Etiqueta
Modificada Denota con la Palabra Ciclo.
22
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: =, <>, <, <=, >, >=, >>, <<.
23
Figura 21. Símbolo, Configuración de Macro de Componente
-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.
24
Figura 23. Configuración de Macro de Componente Interruptor.
25
Figura 25. Configuración de Macro de Componente Display.
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.
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.
26
Figura 26. Configuración de Macro de Componente LCD.
27
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.
El macro visto en la figura 29, se observan las diferente operaciones que posee
Flowcode para manipular el modulo PWM.
28
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,
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).
29
byte = isnan(float) - Comprobaciones para ver si el punto flotante no es
un número
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
30
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.
31
Figura 32. Símbolo, Configuración del Bloque de Manipulación de String.
Función ToString$(value)
Función ToUpper$(string)
Si Str1= hello
Cambias las letras a mayúsculas.
TestStr = ToUpper$(Str1)
TestStr es ahora "HELLO "
32
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
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 "
TestStr = Mid$(Str1, 2, 3)
TestStr is ahora "llo"
33
0 = si los string o variable de secuencia son iguales
1 = string1>string2
255 = string2>string1
Ejemplo
Si Str1 = "ABC"
Si Str2 = "abc"
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
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
Valorx= FloatToString$(resultado)
Ejemplo
Pasa la variable string “result” a un número entero almacenado en la variable
de números entero retx.
34
retx=StringToInt$(result):
Valorx=StringToFloat$(result):
Ejemplo
Pasa la variable de número entera “estex” a un código hexadecimal en la
variable Verx.
Verx= NumberToHex$(estex)
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 operación del macro.
36
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&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.
37
Como exportar (sacar) una Macro ó subrutina herramienta, para
convertirla en una herramienta
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
39
En el botón Propiedades se abrirá otra ventana para configurar la interrupción
elegida en la caja de texto Interrumpir en:
Clock Source Select: la procedencia del clock para el incremento del timer0
40
Figura 38. Ventana de Configuración de la Interrupción por TMR0.
Clock Source Select: la procedencia del clock para el incremento del timer0
Clock Source Select: la procedencia del clock para el incremento del timer0
41
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.
42
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.
Para insertar una línea en assembler se antepone las siglas asm antes del
código como por ejemplo asm movlw 50
asm
43
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.
Insertar lenguaje C
44
Figura 44. Ventana de Configuración en Lenguaje C Manejando Funciones de
Flowcode.
45
Manejo de Variables de Flowcode en Lenguaje C y Código Assembler.
46
Como utilizar el bloque de insertar lenguaje C y/o código assembler en un
bloque macro de herramienta.
Compilar el programa.
47
Errores de compilación
48
CONEXIONES ENTRE LOS COMPONENTES VIRTUALES Y EL MICRO,
TANTO EN EL AMBIENTE FLOWCODE COMO A NIVEL DE HARDWARE
49
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.
50
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.
51
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.
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.
52
Figura 54. Entorno de propiedades de componente con valores por defectos
53
54