Вы находитесь на странице: 1из 116

Página 2

Bienvenidos al curso!

El curso contiene una serie de ejercicios de programación, (parte 1) con el apoyo de fondo
información para la referencia, (partes 2 a 6).

Parte 1 - programación de Ejercicios - p.4

Parte 2 - El uso de E-Blocks - p.29

parte 3 - Introducción a Flowcode 7 - p.37

parte 4 - Flowcode 7 - Su primer programa - p.48

parte 5 - Flowcode 7 - Trabajado Ejemplos - p.55

parte 6 - Introducción a los microcontroladores - p.84

parte 7 - curso Fundamentos - p.106

La ruta a través de él:

En términos generales, hay dos tipos de estudiantes:

El programador experimentado:

Probablemente comienza con los ejercicios de programación '', (parte 1), refiriéndose a la información en las otras secciones, como y

cuando sea necesario.

Después de todo, los programadores de sólo lectura del manual cuando se atascan!

Sin embargo, antes de comenzar un ejercicio, usted debe familiarizarse con la sección (s) de referencia para que

sepa dónde buscar ayuda en caso de que se atascan!

El usuario menos confianza:

concentra primero en el material de referencia y los ejemplos prácticos y luego los intentos de los ejercicios.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Página 3

Antes de que empieces:

'Flowcode 7' trabaja con una gama de microcontroladores, incluyendo PIC, Arduino y ARM. Para simplificar, este curso se centra en los

microcontroladores PIC. También incluye información para el usuario Arduino.

'Flowcode 7' en sí es neutro microcontrolador - presenta prácticamente la misma interfaz de usuario, independientemente del

microcontrolador utilizado. Las diferencias están en el hardware y la forma en que el programa está descargado y probado.

Para los usuarios PIC, la mayoría de los ejercicios utilizan el E-blocks EB006 v9 Multiprogramador y la junta EB083 Combo. Estos se

muestran en las siguientes imágenes.

Arduino Uno usuarios necesitan un Arduino y E-blocks Arduino Uno Shield (EB093), se muestra a continuación, así como la mesa
Combo.

Para más información:


En el sitio web de la matriz, www.matrixtsl.com, en el menú 'Productos':
haga clic en 'Flowcode' - abrir el menú '' Recursos de soporte y acceso:
• 'Flowcode 7' - Guía de introducción;
• Wiki 'Flowcode 7';
• una serie de 'Flowcode 7' ejemplos.
haga clic en 'E-blocks' - acceder a la 'E-blocks Guía del usuario';
abrir el menú 'Juntas' y haga clic en cualquier tablero de E-blocks para localizar su hoja de datos, en
la pestaña 'Recursos'.
buscar 'Arduino' - el acceso al 'Flowcode Guía de principiantes de Arduino' bajo 'Recursos'. buscar 'HPACT (el panel
de la formación del actuador)
- en la pestaña 'Recursos', de acceso a las hojas de trabajo del panel Actuators ''.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Página 4

Parte 1

programación de Ejercicios

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 5

Parte 1 Contenido
El hardware: ............................................... .................................................. ............................................ 7
configuración de los puentes metálicos: .............................................. .................................................. ......................... 7
Flowcode 7 y descarga de ajustes: ............................................ .................................................. ............. 7
Ejercicio 1 - Crear materiales de ............................................. .................................................. ...................... 8
Ejercicio 2 - Usando Los retrasos ............................................. .................................................. .............................. 9
Ejercicio 3 - El uso de puntos de conexión ............................................ .................................................. .......... 10
Ejercicio 4 - Realizar cálculos ............................................. .................................................. ......... 11
Ejercicio 5 - Uso de bucles ............................................. .................................................. ............................. 12
Ejercicio 6 - Introducción de datos ............................................. .................................................. ......................... 14
Ejercicio 7 - Toma de decisiones ............................................. .................................................. .................... 15
Ejercicio 8 - Programación de los LCD ............................................. .................................................. ................. 17
Ejercicio 9 - Uso del teclado ............................................ .................................................. ..................... 19
Ejercicio 10 - Entradas analógicas y la EEPROM .......................................... ............................................ 21
Ejercicio 11 - Uso del software de macros ............................................ .................................................. .......... 23
Ejercicio 12 - Uso de interrupciones externas ............................................ .................................................. ....... 24
Ejercicio 13 - Utilización del temporizador de interrupciones ............................................ .................................................. ........... 26

Retos adicionales: ............................................... .................................................. ............................. 28

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 6

Programación de ejercicios para que usted intente:

El objetivo de los ejercicios es desarrollar experiencia en el uso 'Flowcode 7' y, en el proceso, el desarrollo de la comprensión de la
terminología y las técnicas de programación que abarca. En todas las etapas, siempre que se alienta la experimentación adicional.
“¿Qué pasa si ...” es la mejor manera de aprender!

Los programadores experimentados pueden desear comenzar el curso aquí y utilizar el material de referencia como y cuando sea necesario.

La mayoría de los ejercicios suponen que el programador está usando un microcontrolador PIC aunque son igualmente aplicables a
otros microcontroladores. La página siguiente describe el hardware y los ajustes utilizados en estos ejercicios. En ocasiones, pueden
diferir de esta norma, en cuyo caso los datos están contenidos en las instrucciones para el ejercicio.

Para algunos ejercicios, es suficiente para programas de prueba mediante la simulación de ellos en 'Flowcode 7'. Otros

deben ser descargados a un microcontrolador y probados en el hardware. Las instrucciones hacen la opción recomendada

clara.

La sección termina con algunos retos. Estos son bastante abiertas y contienen sólo una especificación breve.

Parte 2 contiene información sobre el uso de E-Blocks para crear sistemas de control y de prueba.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 7

El hardware:
La mayoría de los ejercicios usan el tablero EB006 Multiprogramador y EB083 Combo, que se muestra a continuación. (Se pueden

suministrar juntos como HP4832 -.-Bloques E Development Board)

Las tablas se enumeran los ajustes de hardware y software utilizados para probar la mayoría de los programas.

Cualquier cambio en estos casos se indican en las instrucciones para el ejercicio.

configuración de los puentes de hardware:

EB006
configuración de los puentes
versión 9

dispositivo PIC 16F1937

la tensión de destino 5V J15

Fuente de voltaje PSU J11

programación Fuente USB J12,13,14: USB

Selector de oscilador OSC J18,19

Un puerto de E-bloque E-blocks de mesa Combo

Puerto B E-bloque EB083

El puerto C E-bloque

Port D E-bloque de

puertos E E-bloque

Flowcode 7 y descarga de ajustes:

Menú Nombre Ajuste

Construir> Opciones del proyecto ...> elegir un objetivo Familia - PIC 16F1937

Velocidad de reloj (Hz) 19 660 800


Crecimiento> Opciones del proyecto ...> Opciones Generales
velocidad de simulación Normal

Oscilador SA oscilador
Construir> Opciones del proyecto ...> Configurar
Temporizador de vigilancia bit de habilitación Discapacitado

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Ejercicio 1 página 8

Crear materiales de

Este ejercicio configura 'Flowcode 7' a señales digitales específicas de salida a la matriz de LED.

objetivos:
• para enviar diferentes códigos de 8 bits al puerto B del microcontrolador;

• para cambiar el nivel lógico de una sola patilla de puerto B;


• para configurar un icono de salida;

• utilizar código binario;


• para manipular los niveles de salida lógica;

• utilizar LEDs para mostrar una salida;


• para compilar un programa de un microcontrolador.

planes de estudios acordes:

• Parte 6 - 'Introducción a los microcontroladores';


• Parte 2 - 'El uso de E-blocks';

• La adición de salidas digitales - “La luz del LED”;

• Flowcode Wiki - '' El uso de máscaras;

Instrucciones

Programa 1:
• crear 'Flowcode 7' diagramas de flujo que:

• añadir un icono de salida única, configurado para iluminar todos los LED del puerto B y ejecutar la simulación;

• entonces alterar los parámetros a sólo los LEDs impares de luz y ejecutar la simulación;
• hacer lo mismo pero sólo para los LEDs de número par;
• finalmente hacer lo mismo pero para sólo los bits altos 'nibble' (4 a 7) del puerto B.

• modificar este programa por:

• la repetición de estos cuatro pasos utilizando hexadecimal en lugar de numeración decimal;

• iluminación de sólo el LED en el bit 7, mediante el envío de un valor de 8 bits para el puerto;

• iluminación de sólo el LED en el bit 7, utilizando el método de salida 'solo bit';

• iluminación de sólo el LED en el bit 7, utilizando el método de salida 'enmascarar'.

Programa 2:
• escribir un programa que utiliza al menos veinte salidas iconos para escribir valores diferentes para el puerto B, uno tras otro:

• utilizar los cuatro métodos en este ejercicio - hexadecimal, decimal, de un solo bit y de enmascaramiento;

• la simulación del programa y revisar los resultados;


• guardar el programa y descargarlo al microcontrolador;
• reinicie el programa varias veces presionando el botón de reinicio en el tablero Multiprogramador.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Ejercicio 2 página 9

Retrasos Uso

Introducción:

En este ejercicio, aprenderá cómo se utilizan los retrasos para frenar la ejecución del programa. Microcontroladores trabajan de forma extremadamente

rápida - un PIC puede ejecutar aproximadamente 5.000.000 instrucciones de montaje, cada segundo. Un ser humano puede detectar y comprender

sólo alrededor de tres imágenes estables por segundo. Para permitir que un microcontrolador de alta velocidad para comunicarse con los seres

humanos 'lentos', a veces tenemos que reducir la velocidad mediante la adición de instrucciones de retardo.

objetivos:
• añadir un retardo a la ejecución desaceleración de un programa;

• para cambiar el intervalo de retardo;

• para configurar un icono de demora;

• para controlar la velocidad de un microcontrolador;

• utilizar un osciloscopio para eventos de tiempo.

planes de estudios acordes:

• Parte 6 - 'Introducción a los microcontroladores';


• Parte 2 - 'El uso de E-blocks';

• Flowcode - Wiki 'Loop' propiedades del icono;

Instrucciones

Programa 1:
• abrir el programa creado en el último ejercicio (Ejercicio 1, Programa 2):
• añadir iconos de retardo y configurarlos para que los estados de salida se pueden ver cómodamente incluso en 'SA oscilador'
velocidad;
• guardar el programa y descargarlo al microcontrolador;
• probar el programa en las tablas de E-blocks;
• modificar la duración de los retrasos causados ​por los iconos de retardo:

• comenzar con un retraso de 1 s;

• reducir progresivamente la demora hasta que es demasiado rápido para los ojos para detectar los diferentes estados de

salidas;

• descargar el programa para el microcontrolador cada vez y probarlo en E-blocks.


• utilizar un osciloscopio para medir los retrasos que ha configurado en 'Flowcode 7';

• hacer un dibujo detallado de la imagen de osciloscopio, con información de la tensión y el tiempo y el


tiempo de retardo usado en el programa 'Flowcode 7'.

Insinuación:

No prueba esto en el modo de simulación - simulación de tiempo no siempre es exacta ya que se ejecuta en un sistema operativo
Windows y no en 'tiempo real';

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 3 página 10

El uso de puntos de conexión

Introducción:
Un punto de conexión, o la instrucción 'Goto', se utiliza a menudo para crear un bucle infinito - para repetir un conjunto de instrucciones una y otra vez.
(Una mejor manera de hacer esto es utilizar una instrucción 'Loop'.) La ventaja de un punto de conexión es que puede ser usado salto fuera de un bucle
para un lugar determinado en el programa. La idea de la anchura del impulso de modulación (PWM) se introduce como un medio de controlar el brillo del
LED.
objetivos:
• utilizar puntos de conexión para introducir ramificación incondicional en un programa;

• introducir PWM como un medio de controlar el brillo de los LEDs.


• para crear un bucle infinito;
• para manipular los niveles de salida lógica;

• utilizar LEDs para mostrar una salida;

planes de estudios acordes:

• La adición de salidas digitales - “La luz del LED”;

• Flowcode Wiki - 'Punto de conexión icono de propiedades';

• Parte 6 - 'Introducción a los microcontroladores';

• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:

• crear un diagrama de flujo que utiliza Delay, de salida y de conexión iconos Point a la luz de los LED pares e impares de puerto B, alternativamente
dentro y fuera, con un intervalo entre 300 ms, en un bucle infinito;

• probar el programa en un primer 'paso a paso' y luego continuamente en el 'Flowcode 7' simulador .;
• uso Delay, de salida y los iconos de punto de conexión a parpadear los altos LEDs nibble nibble y bajos de puerto B alternativamente dentro y
fuera, con un intervalo entre 300 ms, en un bucle infinito;

• descargar el programa para el microcontrolador y probarlo.


• uso de retardo y los iconos de salida a parpadear todos los LED de puerto B de encendido y apagado con un 500 ms intervalo en el medio, en un bucle

infinito;

• descargar el programa para el microcontrolador y probarlo.

Insinuación:

Hacer que los retrasos en estos programas muy corto y hacer que el encendido y apagado asimétricas, (por ejemplo, durante 8 ms y

apagado durante 12 ms).

Usted acaba diseñado un generador de PWM de software. (Búsqueda de 'PWM' en el Internet para obtener más información.) Cuando se ejecuta, la
intensidad de los LED es menor. Se encienden y apagan demasiado rápido para los ojos para observar. En cambio, vemos el cambio de intensidad.

• modificar el programa 1 cambiando el 'encendido' y 'apagado' veces de tal manera que el total ( 'on' + 'off') el tiempo es sin cambios, por ejemplo, por 12

ms y apagado durante 8 ms;

• descargar el programa para el microcontrolador y probarlo - ¿cuál es la diferencia?


Programa 2:

• escribir un programa que:

• luces LEDs en los cuatro bits más significativos, (MSB,) de puerto B y los mantiene en;
• atenúa la intensidad de los LED en los cuatro bits menos significativos, (LSB,) de puerto B, en comparación con los cuatro LEDs MSB, utilizando

PWM;

• descargar el programa para el microcontrolador y probarlo.


• utilizar un osciloscopio para examinar la señal de control de uno de los cuatro LSB LEDs;

• hacer un dibujo detallado de la imagen de osciloscopio, con información de la tensión y el tiempo y el encendido y apagado
utilizados en el programa 'Flowcode 7'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 4 página 11

realizar cálculos

Introducción:
microcontroladores modernos, como el PIC, son capaces de hacer tareas matemáticas sencillas con números de 8 bits a muy alta velocidad. Como

los cálculos se vuelven más complejos o los números se elevan por encima de un valor de 8 bits, entonces el tiempo de ejecución se alarga de forma

espectacular. 'Flowcode 7' permite cálculos complejos utilizando hasta un número de 16 bits y se encarga de todas las complejidades. Sin embargo,

éstos pueden reducir la velocidad de ejecución del programa.

objetivos:
• para crear y utilizar una variable;
• para configurar un icono de cálculo para realizar cálculos aritméticos y lógicos.
• para crear y manipular las variables;
• para realizar cálculos;
• utilizar LEDs con resistencias limitadoras de corriente;

planes de estudios acordes:

• Variables - 'Ejemplo 1. Adición de entradas digitales - ¿Dónde está el fuego?'

• Flowcode Wiki - '' la creación de variables;


• Las entradas digitales -'Example 1. Suma de entradas digitales - ¿Dónde está el fuego ';?

• Flowcode Wiki - 'Cálculo icono de propiedades';


• Parte 6 - 'Introducción a los microcontroladores';
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• crear un diagrama de flujo que:

• utiliza una variable llamada 'counter' que contiene un valor inicial de '1';
• muestra el valor almacenado en la variable 'counter' en LEDs.
• simular el programa de prueba que funciona.
• modificar el Programa 1:
• la adición de un icono de cálculo para duplicar el valor almacenado en la variable 'counter';

• que muestra este nuevo valor de LEDs.


• usando un bucle infinito que repetir estos pasos continuamente con un retardo de 300 ms entre ellos. ¿Que
ves? (Esto se llama una 'luz corriente'.)
• la sustitución de la 'se multiplica por 2' con 'contador = contador + 1'. ¿Qué ves ahora?
(Que acaba de programar un contador binario).

Programa 2:
• modificar Programa 1 para mostrar el resultado de los cálculos siguientes en los LEDs de puerto B:
• 45 + 52;
• 45 y 52;
• 45 o 52;
• NO 45;
• (1 + 3) * (6/2);
• VAR2 = VAR1 * 3 (donde variable 'VAR1' almacena el número 18). Sobre el papel, compruebe
si los resultados son correctos.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Ejercicio 5 Pagina 12

mediante bucles

Introducción:
La repetición de un conjunto de instrucciones, para un número exacto de veces, mientras o hasta que se cumpla una condición es uno de los más

potentes operaciones de programación.

Los programas están cada vez más interesante, pero también más complejo. Utilice la simulación lenta o 'Paso a paso'
función en el 'Flowcode 7' simulador para depurar programas de ahora en adelante.

objetivos:
• crear y utilizar un programa de 'luz corriente', utilizando el método de 'multiplicar-por-dos';
• crear y utilizar un programa 'Luz de marcha', utilizando el método de 'cambio-derecha';

• para crear y rellenar una matriz;


• para crear un bucle condicional;

planes de estudios acordes:

• Flowcode - Wiki 'Loop' propiedades del icono;

• LCD - 'Ejercicio 8 - Programación de los LCD'

• Flowcode Wiki - 'Punto de conexión icono de propiedades';


• Flowcode Wiki - '' la creación de variables;
• Parte 6 - 'Introducción a los microcontroladores';
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa para hacer que un contador binario de 8 bits, usando un icono de lazo, a contar de 0 a 255, a continuación, reiniciar y

repetir el recuento;

• visualizar el valor del contador en los LEDs de puerto B.

• Programa de modificación 1 para hacer el recuento de contador ascendente de 0 a 255 y luego contar de nuevo a '0':

• usando dos bucles dentro de un bucle infinito de modo que el proceso se repite indefinidamente;

• mostrando el valor del contador en los LED de puerto B.


• descargar el programa para el microcontrolador y probarlo a toda velocidad.

Programa 2:
Recuerde KITT De Knight Rider o los robots cylon de Battlestar Galactica ?.
• escribir un programa para hacer que un simple 'luz corriente' que se extiende desde el puerto B, el bit 0 a bit 7 del puerto B y luego de vuelta al

puerto B bit 0, en repetidas ocasiones:

• utilizando el método de 'multiplicar-por-dos';

• visualizar la salida de los LED de puerto B.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Ejercicio 5 página 13

mediante bucles

Programa 3:
• hacer una simple 'luz corriente' que se extiende desde el puerto B, el bit 0 a bit 7 del puerto B y luego de vuelta al puerto B bit 0, en repetidas

ocasiones:

• utilizando el método de la 'desplazamiento a la derecha';

• visualizar la salida de los LED de puerto B.


• modificar el programa 3 para crear una luz 16 bits que se ejecuta, utilizando los LEDs en tanto el puerto A y B.

• Utilice sólo los bucles - ninguna decisión!

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 4:
• crear un diagrama de flujo que:

• contiene una matriz de cuatro variables, llamado 'Matrix [x]' que almacena los valores siguientes:
• Matrix [0] = 129;
• Matrix [1] = 66;
• Matrix [2] = 36;
• Matrix [3] = 24;
• utiliza dos 'do-while' bucles para crear una secuencia infinita:
• Matrix [0] -Matrix [1] -Matrix [2] -Matrix [3] -Matrix [2] -Matrix [1] -Matrix [0] -Matrix [1] -
.... . ;
• se refiere a las cuatro variables como 'Matrix [x]' donde 'x' es una variable independiente, conocido como el índice de la matriz;

• muestra la salida en los LEDs de puerto B.


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 6 página 14

la introducción de datos

Introducción:
Suma de entradas digitales a un circuito microcontrolador es bastante fácil, pero es un gran paso adelante. Esto permite que las señales externas que

influyen en cómo reacciona el programa.

objetivos:
• a los datos de entrada de interruptores;

• utilizar bucles para crear secuencias de LED;

• para configurar un icono de entrada;

planes de estudios acordes:

• La adición de salidas digitales - “La luz del LED”;

• Parte 6 - 'Introducción a los microcontroladores';


• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa para mostrar el estado de los interruptores conectados al puerto A, en los LEDs conectados al puerto B es decir, cuando

se pulsa un interruptor, el LED correspondiente en luces puerto B;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.


• modificar el programa para que:
• el LED correspondiente en estancias puerto B iluminadas por 2s;

• durante este tiempo, no hay nuevas entradas deben ser leídos;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.


• modificar el programa de nuevo de modo que:

• cuando se pulsa el interruptor '0', las luces 'LB1';

• cuando se pulsa el interruptor '1', 'LB2' luces, y así sucesivamente;

• cuando se pulsa el interruptor '7', no pasa nada;


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 2:
• escribir un programa para crear un contador que:

• contiene dos bucles;


• cuenta cuando se pulsa el interruptor '0';
• recuentos de abajo cuando se pulsa el interruptor '1';

• muestra el recuento en los LEDs de puerto B;


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 3:
• escribir un programa 'Luz de marcha' que:
• contiene dos bucles;
• hace que los LEDs 'correr' a la izquierda cuando se pulsa el interruptor '0';

• hace que los LEDs derecho 'correr' cuando se presiona el interruptor '1';

• muestra el recuento en los LEDs de puerto B;


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 7 página 15

Tomando decisiones

Introducción:

programas anteriores incluyen sencilla la toma de decisiones, el uso de bucles y puntos de conexión. Ahora miramos en detalle en el icono de la

Decisión, ampliamente conocida como la estructura 'si ... entonces ... otra cosa', probablemente la línea de comandos más utilizados en cualquier

programa.

objetivos:
• a los iconos de configuración de decisión y por lo tanto añadir bifurcación condicional a un programa;

• para controlar la frecuencia a la cual LEDs parpadean;

• utilizar LEDs a niveles lógicos de salida de pantalla;

• utilizar la memoria temporal;

planes de estudios acordes:

• Flowcode Wiki - 'Decisión icono de propiedades';


• Flowcode Wiki - 'Punto de conexión icono de propiedades';
• Parte 6 - 'Introducción a los microcontroladores';
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa que utiliza interruptores para producir una secuencia inversa en los LEDs:

• cuando se pulsa el interruptor '0', las luces 'LB7';

• cuando se pulsa el interruptor '1', luces 'LB6'; y


así…

Programa 2:
• escribir un programa que crea un contador de 8 bits, el conteo de '0' a '255' y luego de vuelta a '0' en varias ocasiones:

• el uso de iconos de decisión en lugar de iconos de bucle.

• utilizando dos interruptores conectados al puerto B, los bits 0 y 1;

• contando hasta cuando el interruptor '0' es prensada;

• la cuenta atrás cuando se presiona el interruptor '1';

• Muestra el contador de corriente en los LED conectados al puerto A;


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 3:
• escribir un programa que cuenta de '0' a un valor almacenado en una variable llamada 'contar' cuando se presiona el interruptor '0' y
espera hasta que el interruptor '1' se pulsa antes de la cuenta atrás a '0':
• utilizando dos interruptores conectados al puerto B, los bits 0 y 1;

• mostrando el valor actual de la cuenta en los LEDs en el puerto A;


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 4:
• escribir un programa que hace que los ocho LEDs en el puerto B de flash encendido y apagado a una frecuencia de 1 Hz, es decir, teniendo un

segundo por un 'en-y-fuera' ciclo. Adicionalmente:

• los LED parpadean más rápido si se pulsa el interruptor '0';

• parpadean más lentamente si el interruptor '1' es presionado;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 7
página 16

Tomando decisiones

Programa 5:
• escribir un programa que hace que los ocho LEDs de luz del puerto B cuando se pulsa el interruptor '0' la primera vez y se apagan

cuando se pulsa de nuevo;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 6:
• Un coche tiene dos luces interiores, una en la parte delantera del coche, el segundo en la parte trasera. Estos serán simulados utilizando

LEDs.

• Cinco interruptores a controlar:


• interruptores '0' a '3' representan interruptores de puerta que indican si una puerta está abierta o no;

• switch'4' indica que la bota (maletero) está abierto o no.


Suponiendo que los interruptores están cerrados cuando las puertas están abiertas - más fácil para simular con 'pushto-make' interruptores,

escribir un programa que:

• luces LED tanto cuando una puerta se abre;


• ilumina sólo el 'trasero' LED cuando se abre la bota;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 7:
• escribir un programa para controlar las luces externas del vehículo, utilizando los interruptores en el volante:

• switch '0' controla la dirección-indicador izquierdo (representado por 'lb0'), que parpadea durante 250 ms y luego apagado para 250
ms repetidamente hasta que el interruptor '0' se libera;

• switch '1' controla la dirección correcta, indicador ( 'LB1') de la misma manera;


• switch '2' controla las luces de freno ( 'LB2' y 'LB3'), que se ilumina mientras se pulsa el interruptor;

• switch '3' controla la luces de la cabeza ( 'LB4' y 'LB5'), que la luz cuando se presiona y permanecerá encendida hasta que se pulsa de

nuevo el interruptor;

• switch '4' controla las luces antiniebla ( 'LB6' y 'LB7'), de la misma manera;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Un consejo: no trate de escribir este programa a la vez - lo dividen en subsecciones y resolver cada uno por separado ante ellos
poniendo todos juntos.
Para hacerlo más fácil, utilice la función de etiquetado de 'Flowcode 7' a los interruptores de etiquetas y LEDs.

Programa 8:
Seis ovejas se les permite vagar entre dos potreros. Entre las dos potreros,
hay dos sensores. Se necesitan dos, ya veces una oveja desencadenantes
un sensor y luego se vuelve hacia atrás.

• escribir un programa que cuenta y muestra el número de ovejas en


cada potrero:
• los resultados se muestran en forma binaria en los LEDs de puerto B;

• los cuatro LSB LED muestran el número en el prado de la izquierda;


• los cuatro LEDs MSB muestran el número en el cercado de la derecha;
• cuando se presiona el interruptor '0', representa una oveja activación del sensor 1;

• cuando se pulsa el interruptor '1', esto representa una oveja activación del sensor 2; (Una oveja es
más larga que la distancia entre los sensores!)

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 8 página 17

programación de las pantallas LCD

Introducción:
El uso de LEDs para mostrar salidas de los limita a sólo los números y en código binario en eso! La pantalla LCD es una manera mucho mejor para

mostrar los datos, tanto letras y números, por los seres humanos no binarios.

objetivos:
• para crear, poblar y manipular las variables de cadena;
• para controlar la visualización de texto y números en una pantalla LCD;

• utilizar un LCD como un dispositivo de salida para el microcontrolador;

• para configurar una macro de componentes para la pantalla LCD;

planes de estudios acordes:

• LCD - 'Ejercicio 8 - Programación de los LCD'

• Parte 6 - 'Introducción a los microcontroladores';


• Parte 2 - 'El uso de E-blocks';

• Flowcode - Wiki 'cadena' funciones de manipulación;

Instrucciones

Programa 1:
• escribir un programa que muestra el texto “Hello World” en el centro de la línea inferior de la pantalla LCD de 2x16.

Programa 2:
• escribir un programa, ya sea utilizando bucles o decisiones, que:

• que cuenta hacia arriba mientras se presiona el interruptor '0';

• cuenta atrás mientras el interruptor de '1' se presiona;

• muestra el recuento actual en binario en LEDs conectado al puerto B;


• muestra el recuento en decimal en la pantalla LCD.

Programa 3:
• escribir un programa para mostrar el estado de los interruptores conectado al puerto A, de modo que cada vez que un interruptor o

interruptores está / se presionan, las correspondientes LED (s) de puerto B de luz (s) y el decimal equivalente se muestra en la pantalla LCD .

Programa 4:
• escribir un programa para mostrar el estado de los interruptores conectado al puerto A en el LED (s) de puerto B y en la línea superior de la

pantalla LCD y, a continuación:

• multiplicar este número binario por 100;


visualizar el resultado en la línea inferior de la pantalla LCD, con “[x 100 =]” que se muestra en frente de ella;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 5:
• escribir un programa que muestra el texto “[R15 = 560” en el centro de la línea inferior de la pantalla LCD, utilizando el
comando 'PrintASCII' para imprimir el signo '':
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 8 página 18

programación de las pantallas LCD

Programa 6:

• escribir un programa que desplaza las líneas de texto se indican a continuación, una línea a la vez:

• inicialmente, el texto se centra en la línea inferior de la pantalla durante 2s;

• a continuación, se mueve hacia arriba a estar centrado en la línea superior para 2s, para ser reemplazado en la línea inferior de la siguiente

línea de texto, y así sucesivamente;

• Texto:

• "Solo hay";
• “10 tipos”;
• "de la gente !";
• “Los que”;
• "entender";
• "BINARIO";
• “Y los que”;
• “NO ....”.
• encerrar el programa en un bucle infinito;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 7:

• escribir un programa que:

• utiliza el icono de la manipulación de cadenas para cargar una variable de cadena llamada 'Mystra [20]' con el texto “Hola”;

• muestra esta cadena variableon la LCD usando el comando 'printString' con el parámetro 'Mystra' (sin las
'[]'].
Programa 8:

• escribir un programa que:

• cargas de una variable de cadena llamada 'Mystra [20]' con el texto “Hola”;

• cargas de una segunda variable de cadena llamada 'MyStrB [20]' con el texto “Matrix”;

• muestra el mensaje “Hola Matrix” en la pantalla LCD mediante la manipulación de cadenas simples.

• modificar el programa 8 de modo que, utilizando las mismas variables de cadena con el mismo contenido, la pantalla LCD muestra el mensaje “HOLA

MATRIX” por medio de la manipulación de cadenas simples.

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 9:

• escribir un programa que:

• cargas de una variable de cadena llamada 'Mystra [20]' con el texto “Hola”;

• cargas de una segunda variable de cadena llamada 'MyStrB [20]' con el texto “Matrix”;

• muestra “Ello MATRIX = 13” en la pantalla LCD usando una gama de manipulaciones de cadena.

• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Sugerencia: Para saber cómo mostrar longitud de la cadena mediante la manipulación de cadenas. El número cambia automáticamente cuando la longitud de

la cadena cambia.

Programa 10:

• escribir un programa que:

• cargas de una variable de cadena llamada 'Mystra [20]' con el texto “Hola”;

• cargas de una segunda variable de cadena llamada 'MyStrB [20]' con el texto “Matrix”;

• muestra el mensaje “xirtaM Olleh” en la pantalla LCD.

Programa 11:

• modificar el programa de lucha contra las ovejas del último ejercicio para mostrar los números de ovejas en los dos potreros en la pantalla LCD.

(Usted decide el formato de la pantalla!)

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 9 página 19

Uso del teclado

Introducción:
Un teclado numérico se utiliza en muchos dispositivos electrónicos, de su teléfono móvil, por ejemplo, donde se utiliza tanto como un teclado
numérico y como una forma de tipo texto en lugar de números. Un emisión- hay doce botones en el teclado, sin embargo, el teclado está
conectado al microcontrolador por sólo ocho líneas! Este problema se resuelve mediante el uso de multiplexación.

objetivos:
• para introducir texto y números de un teclado y mostrar mensajes en la pantalla LCD;
• al código ASCII uso para transmitir estos datos;

• utilizar entradas multiplexadas;

• para configurar una macro de componentes para el teclado;

planes de estudios acordes:

• LCD - 'Ejercicio 8 - Programación de los LCD'

• Flowcode - Wiki 'cadena' funciones de manipulación;


• Parte 6 - 'Introducción a los microcontroladores';
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa para:

• visualizar, en la pantalla LCD, el número que se pulsa en el teclado;


• mostrarla durante el tiempo que se presiona el botón en el teclado;
• mostrar sólo un número a la vez;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.
• re-escribir este programa sin utilizar el teclado macro de componentes:
• Guardar este programa, descargarlo en el microcontrolador y probarlo.
• extender este programa a:
• pantalla, uno tras otro en la fila superior de la pantalla LCD, los números que se presionan en el teclado;

• utilizar el carácter '*' para un espacio;


• borrar la pantalla cuando '#' se presiona;
• mostrar un máximo de quince caracteres;
• mostrará una advertencia en la fila inferior de la pantalla LCD cuando se supera este máximo;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 9 página 20

Uso del teclado

Programa 2:
• escribir un programa para:

• sumar dos números, menos de '9999', introducidos a través del teclado;


• mostrar los dos números, el '+' y '=' y la suma resultante en la fila superior de la pantalla LCD;
• mostrará una advertencia en la fila inferior cuando se supera '9999' límite;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 3:
• escribir un programa para un simple juego de adivinanzas, donde:

• un jugador tiene que adivinar un número entre '0' y '9';


• el número secreto está pre-programado en el microcontrolador;
• las pantallas LCD, en la fila superior, la última conjetura introducen a través del teclado;

• la pantalla LCD muestra un mensaje, en la fila inferior, que indica si la suposición es demasiado alto o demasiado bajo;

• Guardar este programa, descargarlo en el microcontrolador y probarlo.


• extender este programa a fin de que:

• el número secreto está en el rango de '0' a '255';


• Guardar este programa, descargarlo en el microcontrolador y probarlo.
• extender el programa de nuevo de modo que:

• el número secreto está en el rango de '0' a '9999';


• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Programa 4:
• escribir un programa para utilizar el teclado, como en un teléfono móvil, al texto de entrada al microcontrolador:

• usando el código ASCII para transmitir los datos;

• utilizando el carácter '*' para un espacio;

• la limpieza de la pantalla cuando '#' se presiona;

• Mostrando un mensaje en la fila inferior cuando el texto tiene más de diez caracteres;
• Guardar este programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 10 página 21

Las entradas analógicas y la EEPROM

Introducción:

El 16F1937 PIC microcontrolador acepta catorce entradas analógicas separadas. Los dispositivos más nuevos tienen aún más. Una señal
analógica en una de estas entradas puede ser traducido en un número binario digital de 10 bits. Podemos optar por utilizar sólo los ocho más
significativo bits de este número de 10 bits o de usar el número de 10 bits. Tenga en cuenta que el trabajo con números de 10 bits en un
microcontrolador de 8 bits como el PIC, la escritura necesita cuidado programa!

objetivos:
• para crear registradores de datos, utilizando datos de 8 bits y 10 bits desde el ADC;

• para configurar una entrada analógica;

• para introducir datos a través de interruptores;

• para introducir la información de los sensores de luz y temperatura;

• Para configurar y usar la EEPROM;


• para desplazar los datos de EEPROM;

• para mostrar texto y datos numéricos en la pantalla LCD;

• utilizar el tablero prototipo E-blocks.

planes de estudios acordes:

• LCD - 'Ejercicio 8 - Programación de los LCD'

• Flowcode - Wiki 'cadena' funciones de manipulación;


• Parte 6 - 'Introducción a los microcontroladores';
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa para:

• display, en la pantalla LCD, un número de 8 bits equivalente a la tensión de entrada analógica desde el sensor de luz en la
placa del sensor;
• guardar el programa, descargarlo en el microcontrolador y probarlo. (Conectar un voltímetro para medir la tensión de entrada
analógica.)

Programa 2:
• modificar el programa a 1:

• mostrar los datos del 'pot' en la placa del sensor;


• guardar el programa, descargarlo en el microcontrolador y la prueba de que, como antes.

• modificar este programa a:


• convertir el ADC salida de 8 bits en un voltaje de lectura de entre 0 y 5 V, por lo que es tan preciso como el modo de 8 bits
permite;
• guardar el programa, descargarlo en el microcontrolador y probarlo, usando un voltímetro para medir la tensión de entrada
analógica, una vez más.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 10 página 22

Las entradas analógicas y la EEPROM

Programa 3:
• modificar el programa a 2:

• display, en la pantalla LCD, un número de 10 bits equivalente a la tensión de entrada analógica de la 'olla' en la placa del
sensor;
• guardar el programa, descargarlo en el microcontrolador y probarlo, usando un voltímetro para medir la tensión de entrada
analógica, una vez más.
• a continuación, modificar este programa a:

• convertir el ADC de salida de 10 bits en un voltaje de lectura de entre 0 y 5 V, por lo que es tan preciso como el modo de 10
bits permite;
• guardar el programa, descargarlo en el microcontrolador y probarlo, usando un voltímetro para medir la tensión de entrada
analógica, una vez más.

Programa 4:
• escribir un programa para controlar la iluminación en una habitación durante un período de 24 horas:

• utilizando la señal analógica desde el sensor de luz en la placa del sensor;


• almacenar mediciones de luz en la EEPROM;
• el muestreo a la tasa más alta posible, dado que el PIC tiene 256 bytes de memoria EEPROM a bordo

• y la visualización de cada muestra con su número de la muestra, en la pantalla LCD;

• desplazándose hacia delante a través de las muestras mediante un conmutador a '0' La presión, o el desplazamiento hacia atrás

mediante un conmutador a '1' La presión;

• guardar el programa, descargarlo en el microcontrolador y probarlo. Aumentar la velocidad de muestreo de

modo que usted no tiene que pasar 24 horas en la prueba: pista.

Programa 5:
• conectar la placa de prototipos al puerto E y modificar el programa 4 para desarrollar una unidad de visualización precisa de la

temperatura de 10 bits que:

• monitores de temperatura de la habitación cada 20 minutos durante un período de 24 horas;

• asemeja desarrolló el registrador para iluminación de la habitación, excepto que éste almacena los datos de 10 bits en una amplia

EEPROM de 8 bits;

• mantiene un LED que parpadea para indicar que el sistema todavía está registrando;

• ilumina todos los LED después de 24 horas para indicar que el registro se ha completado;

• le permite desplazarse a través de los resultados utilizando interruptores '0' y '1' como antes;

• muestra la temperatura y su dirección EEPROM en la pantalla LCD.


• guardar el programa, descargarlo en el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 11 página 23

Uso del software de macros

Introducción:
En lenguajes de programación basados ​en códigos, como 'C' y 'BASIC', una macro de software se llama un 'subrutina' o 'función' o
'procedimiento'. A medida que los programas se hacen más grandes, utilizan ciertas combinaciones de instrucciones una y otra vez. Estos
programas se vuelven más difíciles de entender y leer. Las rutinas que son re-utilizados se pueden poner en una macro de software, que se
puede llamar siempre que sea necesario en el programa principal. Haciendo uso de estas macros de software 'ilumina' el programa principal y
hace que sea mucho más fácil de leer.

objetivos:
• utilizar macros de software para simplificar la estructura de un programa;
• para crear macros de software;
• utilizar el control de bucle cerrado;

• usar PWM para controlar el brillo de los LED.

planes de estudios acordes:

• macros de software - Ejercicio 11 - Uso del software de macros


• Flowcode Wiki - 'Software propiedades macro icono;
• Parte 2 - 'El uso de E-blocks';

Instrucciones

Programa 1:
• escribir un programa que selecciona y dirige uno de tres programas diferentes mediante el uso de dos interruptores:

• interruptor de '0' selecciona uno de los tres programas (que usted desarrolló antes);

• 'X': un binario de 8 bits contador ascendente, que se muestra en los LEDs.

• 'Y': un binario de 8 bits contador descendente, que se muestra en los LEDs.

• 'Z': un bidireccional de 8 bits 'luz corriente', que se muestra en los LEDs.


• la pantalla LCD muestra un mensaje de texto que identifica el programa seleccionado;

• interruptor de '1' activa el programa seleccionado cuando se presiona.

• los tres programas se colocan en las macros de software.


• descargar este programa para el microcontrolador y probarlo.
• modificar el programa 1, de modo que:

• Si se pulsa el interruptor '0', mientras que uno de los tres software se está ejecutando, la ejecución se detiene inmediatamente y el
foco vuelve al bucle principal y espera una nueva selección.

• descargar este programa para el microcontrolador y probarlo.


• modificar el programa 1 de nuevo de modo que:

• si el interruptor de '0' se pulsa mientras que uno de los tres software está en funcionamiento, la ejecución se detiene y vuelve al

bucle principal, como antes, pero que almacena el valor mostrado en los LEDs;

• cuando se hace la selección siguiente, que comienza macro los LEDs de donde la anterior fue apagado, haciendo la
transición entre ellos más suave.
• descargar este programa para el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 12 página 24

Uso de interrupciones externas

Introducción:
En ejercicios anteriores, el microcontrolador no necesariamente reacciona a las entradas de inmediato porque estaba ocupado haciendo otra cosa. Las

características de interrupción externas de la PIC a resolver este problema. En un 16F1937, las interrupciones externas son en el pin 'RB0' - una única

interrupción de pasador y en el puerto B como una 'interrupción en el cambio (COI)'. Si estas interrupciones se ha inicializado correctamente, entonces

un cambio en el puerto B puede causar el programa para la ejecución de parada inmediata e interruptor para la ejecución de la macro de interrupción

apropiado. entonces tenemos lo que se llama una ejecución 'tiempo real'.

objetivos:
• Para crear y utilizar las interrupciones 'de un solo pin';

• Para crear y utilizar 'interrupción-en-cambio' interrupciones (COI);


• utilizar la operación en tiempo real de un microcontrolador;

planes de estudios acordes:

• Parte 2 - 'El uso de E-blocks';

• 'Flowcode 7' Wiki.

Instrucciones

Programa 1:
• escribir un programa para el tiempo cuántos segundos han pasado desde que el programa fue reset y:
• mostrará el resultado en la pantalla LCD;

• utiliza una variable llamada 'contar' cuyo valor se muestra en los LEDs. No utilice ningún tipo
de interrupción.
• descargar este programa para el microcontrolador y probarlo. Insinuación:

Utilice un retraso 1s.

Un flanco ascendente en el pin 'RB0' debe llamar a una macro que agrega una a 'contar'.

• re-diseñar este programa utilizando una interrupción (de un solo pin) en RB0.

• descargar este programa para el microcontrolador y probarlo.


• ahora re-diseñarlo utilizando ambos tipos de interrupción externa de forma que:

• la activación de la single-pin de interrupción incrementos 'count' (count = count + 1);


• la activación de la COI interrupción decrementos 'count' (count = count - 1).
• descargar este programa para el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 12 página 25

Uso de interrupciones externas

Programa 2:
• escribir un programa para hacer que un dado electrónicos que:

• cuenta de 1 a 12;
• mostrará el resultado en la pantalla LCD;

• se pulsa comienza 'balanceo' cuando el interruptor '0';

• se detiene 'rodando' cuando el interruptor de '0' se presiona de nuevo.

• descargar este programa para el microcontrolador y probarlo. Insinuación:

El LCD debe mostrar los números de 1 a 12, uno tras otro, una y otra vez rápidamente, a intervalos de 20 ms - mucho a
rápido para ver con un ojo humano.

• modificar este programa de forma que:

• los dados mantiene 'rodando', siempre y cuando el interruptor '0' se mantiene pulsado;

• se detiene 'rodando' cuando se suelta el interruptor;

• en ese punto muestra el número en la pantalla LCD.


• descargar este programa para el microcontrolador y probarlo.

Programa 3:
• escribir un programa para hacer que un contador de tiempo de reacción que:

• ilumina todos los LED inicialmente;

• los mantiene encendida durante todo 6s;

• ellos se apaga y se inicia un temporizador;


• se detiene el temporizador cuando cambian el jugador pulsa en '0';

• a continuación, muestra el 'tiempo de reacción' resultante en la pantalla LCD.

(Utilice una variable que se incrementa cada 10 ms.)

• descargar este programa para el microcontrolador y probarlo.


• modificar el programa 3 para limitar el tiempo permitido para el tamaño de la variable utilizada y:

• muestra un mensaje se visualiza en la pantalla LCD cuando se supera este tamaño;

• incluye una trampa para evitar el engaño simplemente manteniendo pulsado el interruptor '0' de forma continua.

• descargar este programa para el microcontrolador y probarlo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 13 página 26

Utilización del temporizador de interrupciones

Introducción:
El otro tipo de función de interrupción en 'Flowcode 7' es la interrupción de temporizador. Estos le permiten realizar tareas de software en
intervalos de tiempo predeterminados, precisamente, - una característica muy útil en el desarrollo de aplicaciones y los relojes de tiempo crítico.

objetivos:
• crear y utilizar interrupciones del temporizador;

• utilizar el pre-escalador para crear intervalos de tiempo precisos;

• para activar el temporizador usando el cristal o un evento externo;

planes de estudios acordes:

• Flowcode Wiki - '¿Qué es un display de 7 segmentos?';


• Parte 2 - 'El uso de E-blocks';

Temporizador de la aritmética:

El 16F1937 tiene varios temporizadores, pero un vistazo a sólo dos: 'Timer0' (Timer 0) y 'TMR1' (Timer 0).
• TMR0 puede ser activado por el cristal o por una transición en el pin 'T0CKI' 'RA4'.
• El reloj interno tiene una frecuencia de 'cristal frecuencia de reloj' / 4, es decir, 19,660,800 / 4 =
4,915,200Hz.
• El prescaler TMR0 se puede ajustar desde 1: 2 a 1: 256. Para este ejercicio, lo ponen a 1: 256, de modo que cada 256 pulsos de reloj hacen
que el Timer0 para aumentar en 1. Esto ocurre a una frecuencia de
4.915.200 / 256 = 19.200Hz.
• Cada vez que este temporizador de 8 bits 'desborda' (alcanza 256), se genera una interrupción. Esto ocurre con una frecuencia de 19.200 /
256 = 75 Hz, de modo que el programa principal se detiene 75 veces por segundo y por lo que la interrupción de temporizador macro se
ejecuta 75 veces por segundo.

• En lugar de utilizar el cristal, este temporizador también puede ser 'frecuencia de reloj' por un evento externo, como en la medición de la

velocidad del motor etc.

• TMR1 puede ser activado por el oscilador de cristal o por una transición en el pin 'T1CKI' 'RC0'.
• Su funcionamiento es similar al de Timer0, excepto que utiliza diferentes valores prescaler.
• TMR2 También existe pero esto no se discute en este curso.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


ejercicio 13 página 27

Utilización del temporizador de interrupciones

Instrucciones

Programa 1:
• escribir un programa para producir un temporizador precisas 'segundos' que:

• muestra el resultado en la pantalla LCD;

• comienza cuando el microcontrolador se pone a cero. (Usar un

retraso 1s. No use una interrupción del temporizador.)

• descargar este programa para el microcontrolador y probarlo con su reloj.


• reescribir el programa utilizando una interrupción del temporizador.

• descargar este programa para el microcontrolador y probarlo como antes.

Programa 2:
• escribir un programa para crear un temporizador de baloncesto que:

• comienza cuando se presiona el interruptor '0';

• Muestra el tiempo transcurrido en la pantalla LCD;

• hace que los LEDs se encienden y apagan cuando han transcurrido 30 años, (el tiempo permitido para el equipo con la bola para

hacer un intento de gol).

(Use una interrupción 'de un solo bit' en el pin 'RB0' para iniciar la sincronización.)

• descargar este programa para el microcontrolador y probarlo con su reloj.

Programa 3:
• reescribir el programa de reacción automático (Ejercicio 12, programa 3) utilizar una interrupción de temporizador.

• descargar este programa para el microcontrolador y probarlo como antes.

Programa 4:
• escribir un programa para producir un reloj de precisión que muestra el tiempo transcurrido desde el último reinicio, en horas, minutos y segundos

en la pantalla LCD.

• descargar este programa para el microcontrolador y probarlo con su reloj.


• modificar este programa de forma que:

• switch '0' detiene el reloj cuando se pulsa la primera vez;


• interruptores '1', '2' y '3' se puede utilizar para cambiar la hora visualizada al tiempo real;
• switch '0' se reinicia el reloj cuando se pulsa una segunda vez;
• descargar este programa para el microcontrolador y probarlo.

Programa 5:
• escribir un programa para producir un temporizador de cuenta atrás de 01:00:00 a 00:00:00 en cuestión de segundos y luego se ilumina todos los

LEDs.

• descargar este programa para el microcontrolador y probarlo con su reloj.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Retos adicionales página 28

1. Desarrollar un regulador para todos los LEDs que reacciona a la intensidad de la luz medida.

• El sensor de luz controla la intensidad de la luz en una habitación. Cuando esta intensidad cae, un circuito de control envía más potencia
a las luces en esa habitación y viceversa, cuando la intensidad aumenta.

• Los indicadores sirven para simular las luces se apagaron. Esto se realiza mediante la programación de una salida PWM software para todos los LEDs

en el puerto B. Cuando el PWM 'on' que aumenta el tiempo, los LED más brillante, etc.

• Poner este programa en una macro de interrupción del temporizador.

• Los principales monitores de bucle la entrada analógica desde el sensor de luz en la placa del sensor, en el puerto C. Cuando el sensor
de luz detecta menos luz, los LED necesitan más brillante brillo. Lo contrario debe suceder con los LEDs cuando el nivel de luz, medida
por el sensor de luz, se intensifica.

• El período de las estancias de la señal PWM una temperatura constante de 20 ms en todo momento, juego utilizando una interrupción del temporizador.

• Descargar este programa para el microcontrolador y probarlo. Si usted tiene un osciloscopio de 2 canales, medir la entrada
analógica del sensor de luz en una y la salida PWM a uno de los LED de la otra.

• Utilizando un enfoque similar, desarrollar un controlador de temperatura para una incubadora. El sensor de la placa base EB090 se
puede utilizar ya sea con el módulo sensor EBM003 termistor o el módulo de sensor de temperatura EBM004 Digital. Usa los LEDs para
simular la acción de un calentador.

2. Tres jueces de voto variedad actúa en una 'X-factor'-como demostración del juego. Cuando dos o más jueces 'sí',
el acto avanza a la siguiente ronda.
• Diseñar un programa para combinar votos en un 'veredicto de los jueces pasa / no pasa'.

• Crear dos secuencias de luz LED, uno para indicar 'pase' y el otro 'fallan'.

3. Diseñar un sistema de riego automático para un terrario sellada (vidrio de contenedores de la planta). Usar la EBM016
Módulo de humedad sensor para detectar cuando las necesidades de riego de terrario.

• El dispositivo de salida es una bomba accionada por motor que se ejecuta durante un periodo de tiempo establecido una vez disparada. Debe haber

un período de 'descanso' después de riego antes de que el sistema pueda funcionar de nuevo.

4. Crear una cerradura de combinación, usando el tablero EB014 teclado para introducir un cuatro dígitos 'PIN'.

• Añadir una característica que 'se bloquea' un usuario después de tres intentos fallidos.

• Modificarlo para evitar un mayor acceso al sistema por un período de tiempo, como segundos diez.

• Utilice la pantalla LCD para mostrar los números seleccionados en el teclado y el número de intentos realizados.

5. Desarrollar un interruptor de proximidad para una luz de seguridad utilizando el módulo de sensor de distancia ultrasónico EBM019. los

sistema debe cambiar en cuatro luces (lámparas de 12V) cuando una persona se acerca a menos de un metro del sensor y por lo tanto hace uso
del módulo de relé EB038

6. Utilice el módulo de infrarrojos EBM020 sensor al tiempo de la oscilación de un péndulo sin obstaculizar la misma.

7. Diseñar un sistema para conducir el motor de corriente continua (y el sensor) en el panel de la formación actuadores a una velocidad constante.

• Añadir una función para modificar esta velocidad establecida.

8. Diseñar un sistema para accionar el motor paso a paso en el panel de la formación actuadores de modo que gira, en 15 0

pasos, a través de un círculo completo y luego se invierte de nuevo a su posición inicial de la misma manera.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 29

Parte 2

El uso de E-Blocks

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 30

Parte 2 Contenido

¿Cómo E-blocks se conectan entre sí .......................................... .................................................. ........... 31


El uso de un plano posterior ............................................... .................................................. ................................... 31
El uso de E-blocks en el banco ........................................... .................................................. ....................... 32
La protección de los circuitos de E-blocks ............................................. .................................................. ..................... 32
El uso de cubiertas ................................................ .................................................. ........................................... 32
La adición de poder de E-blocks ............................................ .................................................. .......................... 33
Comprender el sistema de parches .............................................. .................................................. ............. 34
Compartir un puerto ............................................... .................................................. .......................................... 35
El uso de sockets ZIF ............................................... .................................................. ..................................... 35
E-blocks documentación y numeración ............................................ .................................................. 35 ..
Notas para los usuarios de Arduino: ............................................. .................................................. ........................... 36

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 31

¿Cómo E-blocks se conectan entre sí


E-blocks se basan en un concepto basado en bus. Cada conector tipo D E-bloque utiliza nueve pines, que permite la transferencia de ocho
bits de datos y 'tierra'.

En el sistema de E-blocks, algunos E-blocks son 'corriente arriba' y algunos son 'aguas abajo'. dispositivos 'Upstream' tienen 'inteligencia',
son por lo general programable y controlan el flujo de información a dispositivos 'aguas abajo'. En el sistema de E-blocks, 'corriente arriba'
dispositivos se conectan utilizando 9 vías de tipo D
tomas de corriente, mientras que los dispositivos 'aguas abajo' se conectan usando 9-way D-Tipo tapones.

Los diagramas muestran cómo los pines están numerados en las tomas de corriente. En ambos enchufes y tomas de

corriente, el bit 0 es entregado en el pin 1, el bit 7 en el pin 8 y el pasador 9 se designa 0V.

Cuando dos dispositivos mercados anteriores necesitan estar conectados juntos un cambiador de género o cable
'Insulation Displacement Conector' (IDC) con dos tomas de IDC en puede ser utilizado.

El uso de una placa madre

E-blocks pueden ser montados sobre una placa posterior de metal para formar un sistema

completamente resistente. Para facilitar esto, cada E-bloque está equipado con orificios de 3

mm de cuatro espaciados a intervalos de 20 mm. tornillos M3 con espaciadores se usan

para montar las E-blocks en un plano posterior, que tiene agujeros de 4 mm en una

cuadrícula de 20 mm regular. Los agujeros de montaje en la placa posterior, los orificios en

el E-bloques y el espaciado de cada enchufe de tipo D y el zócalo en el E-bloques están

dispuestos de modo que E-blocks pueden conectarse entre sí y todavía ser montados en la

placa posterior.

Si modifica su sistema de E-blocks con regularidad o quisiera que otros fueran capaces de hacer esto, le sugerimos que utilice los pernos de acero o

de nylon M3 en todos los E-blocks. A continuación, 'sentarse' en el plano posterior de metal sin ser atornillada a la misma. (Si va a mover el sistema

alrededor, entonces uno o dos tuercas en la parte posterior para hacer de su E-blocks estancia en su lugar.)

Los pernos diagrama muestra de 12 mm con tuercas de bloqueo auto - esto mantiene los tornillos fijados en la placa de circuito y
le permiten colocar las placas en el plano posterior como desee.

Para obtener los mejores resultados, coloque los pernos de cierre automático y frutos secos y luego aflojar las tuercas por un cuarto de vuelta para

permitir un poco de movimiento en los agujeros de montaje de PCB. Esto hace que sea más fácil tomar la junta de la placa posterior.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 32

El uso de E-blocks en el banco


No es necesario un backplane de usar E-blocks - sólo tiene que conectarlos entre sí en el banco. En cada paquete de E-blocks se
encuentra a cuatro pequeñas patas de goma para facilitar esto. Estos proporcionan un grado de protección para los E-blocks juntas y
ayudar a prevenir cortocircuitos de alambre de cobre estañado y otros objetos metálicos en el banco.

La desventaja es que su sistema de E-blocks es menos portátiles como los conectores


estarán bajo más estrés que el sistema se mueve alrededor.

La protección de los circuitos de E-blocks

Siempre que sea posible, los componentes con plomo se han utilizado para los dispositivos de E-blocks tableros que son susceptibles
a daños eléctricos. Esto hace que la tarea de sustituirlos sencilla en caso de que se dañe.

Algunas placas aguas arriba '' (como las placas de procesador ARM y la tarjeta FPGA) hacer uso de la superficie montados los
componentes tecnológicos que no son fáciles de reemplazar. En estos casos, las pequeñas placas hijas se han utilizado en su lugar.
Donde se produce el daño, las nuevas placas hijas se pueden pedir para reemplazarlos.

Para proteger los componentes de 'upstream', todas las 'aguas abajo' E-blocks placas incluyen resistencias de protección. Los errores deben ocurren

cuando se declara la naturaleza de pines del puerto, por ejemplo una entrada declarada como una salida, se causó ningún daño.

Sin embargo, hay circunstancias en las que es posible daño causa:


• atención es necesaria al utilizar conectores terminales roscados y juntas parche / prototipo;
• siempre que sea posible, utilizar resistencias de protección para las líneas que necesita para conectarse al conectar dos placas de mercados

anteriores junto con un cambiador de género o el cable IDC;

• asegúrese de masa uniéndose antes de manipular placas de circuitos E-blocks para minimizar el riesgo de daños por electricidad estática. Si usted

no ha conseguido una pulsera antiestática, a continuación, toque de un radiador u otro objeto metálico conectado a tierra.

Antes de hacer cualquier cambio en el sistema de E-blocks, apague la fuente de alimentación.

el uso de cubiertas

En algunas circunstancias, es deseable limitar el acceso a partes de las placas de E-blocks. Tal vez usted no desea que los usuarios cambien la

configuración de mesa o tal vez hay un riesgo de vandalismo o robo. Para ofrecer esta protección mejorada, cubiertas de acrílico transparente

están disponibles para todos los E-blocks - El diagrama muestra una de cada uso con un Multiprogramador.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 33

Estas cubiertas se montan sobre Eblocks con 25mm tornillos M3

y los separadores de 10 mm, utilizando la cuadrícula de

agujeros para el montaje de los Eblocks a la placa posterior.

Los Vista en corte muestra cómo se hace esto:

Las cubiertas de acrílico transparente de Ajuste añaden fuerza

considerable para cada E-bloque, así como hacerlos a prueba de

manipulaciones más. Una técnica diferente se utiliza para la placa

de interruptor donde, debido a que los interruptores son

relativamente cortos, se sustituyen los espaciadores

M3 con tuercas de seguridad antes de que la cubierta se pone en su lugar. Esto se puede ver en el diagrama contrario:

La adición de poder de E-blocks

conexiones de alimentación se enrutan entre el E-blocks utilizando terminales simples tornillo. Esto facilita la interoperación de E-blocks con

diferentes niveles de tensión (en particular 3.3V y 5V) y fuentes de energía. La mayoría de los mercados anteriores E-blocks tienen 5V salidas

proporcionadas por un regulador de voltaje. Estas placas son alimentados por la aplicación de un voltaje más alto a través de un conector de

alimentación (exterior generalmente positivo) o el uso de bloques de terminales de tornillo.

Como 0V está conectado a todas las placas a través de los

conectores de tipo D de 9 vías, es sólo la línea de suministro de

potencia positivo que tiene un enlace de alambre.

Para mejorar el diseño, los cables de alimentación Se puede


repetir bajo E-blocks y el plano posterior para conectar
E-blocks 'aguas abajo'. La fotografía muestra los cables de
alimentación rojos enlazan E-blocks juntos. Ellos ruta 14V de
la Multiprogramador a la mesa de Proto.

Ten cuidado cuando se hace esto como el uso de un voltaje incorrecto puede dañar el dispositivo PIC en el tablero ultiprogrammer!

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 34

Comprender el sistema de parches


La mayoría de las 'aguas abajo' E-blocks incluyen un sistema de parche que le da flexibilidad en las conexiones que se realizan
entre el E-blocks 'aguas arriba' y 'aguas abajo'. Las conexiones por defecto están optimizados para facilitar la conexión entre PIC
'aguas arriba' y tableros E-Blocks 'aguas abajo'. Otros microcontroladores pueden requerir diferentes conexiones, facilitadas por el
sistema de parche. El sistema de parche tiene dos partes:

• de los puentes que seleccionan entre las conexiones por defecto y el sistema de parches,

• el parche propios conectores.


Las fotografías muestran una placa base EB090 sensores con y sin sensores conectados a él.

Las siguientes dos diagramas muestran cómo utilizar el


sistema de parches en esta placa. En el diagrama superior,
puentes J12 y J13 se establecen en la posición 'por defecto'.
Este rutas de señales desde el sensor de luz y 'olla' a las
patillas 1 y 2 del conector de tipo D, respectivamente.

Sin embargo, cuando se utiliza un microcontrolador diferente,


es posible que desee la señal de la 'olla' que aparezca en el
pin 5 del conector de tipo D. Para lograr esto, mover los
puentes J12 y J13 en la posición de 'parche' y añadir un
alambre de la toma 'olla' on 'J11' a la clavija 5 en J8, como se
muestra en el diagrama inferior.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 35

Compartir un puerto

A veces, es necesario dividir un puerto en varias secciones, o señales compartido en un puerto entre 'aguas abajo' E-blocks. Para
ello, utilice un cable divisor. Esto le permite conectar una 'corriente arriba' puerto a dos puertos 'aguas abajo' utilizando IDC
(conector con aislamiento desplazable) y conectores de cable plano.

Por ejemplo, supongamos que usted está desarrollando un sistema que utiliza dos sensores analógicos externos. La placa del sensor sólo tiene un

puerto sensor analógico externo. Utilice un cable divisor y dos Placas de sensores, dando el resultado que se muestra (nota: tabla (s) que se

muestran a continuación son los EB003 discontinuada):

La entrada de sensor analógico en el tablero superior utiliza la conexión predeterminada, el bit 3. En el tablero inferior los puentes se
mueven a la posición de 'parche' y un pequeño cable se utiliza para conectar el segundo sensor analógica a bit 2. El resultado le
permite para sensor analógico una conexión al bit 3 y el otro al bit 2 de la placa 'aguas arriba'.

El uso de sockets ZIF

Es posible utilizar sockets fuerza de inserción cero (ZIF) con el E-Blocks PIC Multiprogramador y otros
programadores en el E-bloques varían. Estas tomas son útiles cuando se quitarán las fichas desde el
programador muchas veces. zócalos ZIF están disponibles de muchos proveedores y pueden ser insertados en
los zócalos DIL en las juntas de aguas arriba ''. Donde E-blocks placas tienen otros componentes cerca del zócalo
DIL, añadir más zócalos DIL para ganar la altura suficiente para permitir que el zócalo ZIF a insertarse de manera
segura.

Matriz vende una completa microcontrolador PIC programador con los zócalos ZIF.

E-blocks documentación y numeración


La gama de E-blocks está en constante desarrollo. La comprensión de los códigos de producto E-blocks le permite localizar la
información correcta para sus tableros. Un número de pieza típica para un E-bloque es: 'EB AAA-BB-C'.

Aquí:
• ' AAA' se refiere al tipo de junta;
• ' cama y desayuno 'Se refiere a un artículo relacionado con que la junta;

• ' C' se refiere al número de versión de esa junta.


Ejemplo 1 : El número de parte 'EB006-00-6': '006' es el
código de la Multiprogramador; '00' es el código de la junta
construido y probado; '6' es la versión 6.

Ejemplo 2 : El número de pieza 'EB003-30-1': '003' es el


código de la tarjeta del sensor; '30' es el código de la hoja
de datos técnicos; '1' es la versión 1.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 36

Notas para los usuarios de Arduino:

Conectar el EB083 y EB093 juntos como se muestra en el diagrama.

Además, conectar un Arduino Uno a la EB093 E-blocks bordo y


proporcionar una conexión USB entre el Arduino y un equipo que
ejecuta Flowcode 7.

Al abrir Flowcode 7, se le presenta la pantalla de 'Bienvenida',


parte del cual se muestra contrario. A partir de aquí, haga clic en
'Abrir plantilla'.

En la pantalla Cargar plantilla, seleccione 'UnoR3 y


Combo'.
Haga clic en 'Load' para abrir la plantilla.

La plantilla se abre con el entorno estándar


Flowcode 7 con la Junta de Desarrollo
EB083 en el panel de instrumentos.

El diagrama de flujo básico ahora se puede


desarrollar en un programa que utiliza
componentes de la placa EB083.

Nota: A pesar de tener dos conexiones de puerto de hardware de 8 bits completos entre la placa de desarrollo EB083 y EB093 el
Escudo, la Arduino Uno sólo puede proporcionar 6 de propósito general de E / S conexiones en el puerto A, (A0-A5). Por lo tanto, los
LED 'LA6' y 'LA7' y 'SA6' interruptores y 'SA7' no se pueden utilizar con el Arduino Uno.

Con el fin de programar la tarjeta Arduino Uno directamente desde dentro de Flowcode 7, debe asegurarse de que están instalados los

controladores adecuados. Estos se proporcionan con el Flowcode 7 descargar, pero no se instalan automáticamente.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 37

parte 3

Introducción a
Flowcode 7

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 38

Parte 3 Contenido

Introducción a 'Flowcode 7' ............................................ .................................................. ................... 39


Lo que es 'Flowcode 7' ............................................ .................................................. ............................... 39
'Flowcode 7' visión general ............................................. .................................................. ............................ 39
Las barras de herramientas y paneles: ............................................. .................................................. ........................ 40
Iconos de la barra: .................................................. .................................................. ..................................... 40
Componentes barra de herramientas: .................................................. .................................................. ........................ 40
Menú y simulación barra de herramientas: .................................................. .................................................. ........... 40
Tablero de instrumentos y del sistema Paneles: .................................................. .................................................. ............. 41

panel propiedades .................................................. .................................................. ................................. 41


Explorador de proyectos .................................................. .................................................. ................................. 41
lista de iconos .................................................. .................................................. ............................................... 41
ventana de chip .................................................. .................................................. ...................................... 42
Acoplamiento y desacoplamiento de las barras de herramientas y paneles .................................................. ................................. 42

ventana de diagrama de flujo .................................................. .................................................. ............................. 43


ventana de simulación depurador .................................................. .................................................. ........... 43
El control de ventanas, barras de herramientas y paneles ............................................ ................................................. 43
Inicio de un nuevo diagrama de flujo .............................................. .................................................. ....................... 44
La apertura de un diagrama de flujo existente .............................................. .................................................. .............. 44
Guardar un diagrama de flujo ............................................... .................................................. ................................ 44
Diagrama de flujo de ahorro Imágenes ............................................... .................................................. ...................... 44
Diagramas de flujo de impresión ................................................ .................................................. .............................. 45
El menú Ver ............................................... .................................................. ..................................... 45
Opciones globales ................................................ .................................................. ..................................... 45
Diagrama de flujo Tab .................................................. .................................................. .................................... 45
esquema Tab .................................................. .................................................. ....................................... 46
anotación Tab .................................................. .................................................. .................................. 46
pestaña de aplicaciones .................................................. .................................................. .................................. 46
Tab editor .................................................. .................................................. .......................................... 46
Ubicaciones Tab .................................................. .................................................. ..................................... 47
ámbito Tab .................................................. .................................................. .......................................... 47

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 39

Introducción a 'Flowcode 7'

Esta sección permite a aquellos que son nuevos en 'Flowcode 7' para entender la forma en que se puede utilizar para desarrollar programas. Se
le permite crear programas paso a paso para aprender acerca de cómo '7' Flowcode obras.

Aconsejamos que se trabaja a través de cada sección para que se familiarice con todas las opciones y características de 'Flowcode 7' y
dará a conocer una serie de técnicas de programación. A medida que trabaja a través de cada parte, consulte también el archivo
'Flowcode 7' ayuda. La principal iconos 'Flowcode 7' se introducen a su vez.

Específicamente en esta sección aprenderá:


• cómo utilizar cada icono 'Flowcode 7' (excepto el icono de código C);
• cómo los componentes fundamentales en 'Flowcode 7' trabajo - el LED, LCD, ADC, interruptor, display de 7 segmentos, cuatro pantallas de
7 segmentos, teclado y componentes de EEPROM.

Lo que es 'Flowcode 7'

'Flowcode 7' le permite crear aplicaciones de microcontroladores de arrastrar y soltar iconos a un diagrama de flujo para crear
programas. Estos pueden controlar los dispositivos externos conectados al microcontrolador tales como, pantallas LCD de LED etc.

Una vez que el diagrama de flujo se ha diseñado, su comportamiento puede ser simulado en 'Flowcode 7' antes de que el diagrama de flujo es
compilado, montado y transferido a un microcontrolador.

El proceso:
1. Crear un nuevo diagrama de flujo, que especifica el microcontrolador que desea objetivo.
2. Arrastrar y soltar los iconos de la barra de herramientas sobre el diagrama de flujo y configurarlos para que crean la pro-

gramo.

3. Añadir dispositivos externos haciendo clic en los botones en la barra de herramientas componentes.

4. Editar sus propiedades, incluyendo la forma en que están conectados al microcontrolador y configurar
cualquier macro que utilizan.

5. Ejecutar la simulación para comprobar que se comporta el programa como se esperaba.

6. Transferir el programa al microcontrolador compilando el diagrama de flujo a C, y luego a código ensamblador y finalmente a código
objeto.

'Flowcode 7' visión general

El entorno 'Flowcode 7' se compone de:


• un área de trabajo principal en el que se muestran las ventanas de diagrama de flujo;

• un número de barras de herramientas que permiten iconos y componentes que han de añadirse al diagrama de flujo;

• los paneles del sistema y el salpicadero que muestran los componentes conectados y proporcionan capacidades básicas de dibujo;

• el panel Explorador de proyectos que muestra proyectan las variables, macros y macros de componentes;

• el panel Lista de iconos que muestra marcadores, puntos de interrupción y resultados de búsqueda;

• ventanas que:
• permitir que el estado del microcontrolador para ser visto;
• mostrar las variables y las llamadas macro cuando se simula el diagrama de flujo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 40

Una pantalla típica - un proyecto de la automoción:

Las barras de herramientas y

paneles: barra de herramientas de iconos:

iconos de 'arrastrar y soltar' desde esta barra de herramientas en la ventana principal de diagrama de flujo para crear

la aplicación diagrama de flujo. Normalmente posicionado en el lado izquierdo de la pantalla, se puede desacoplado.

Componentes barra de herramientas:

Conectar componentes externos al microcontrolador o usar panel de dibujo comandos básicos. Los componentes se agrupan en diferentes

categorías que aparecen como menús desplegables. Haga clic en un componente y que se añadirá al microcontrolador y aparecen en el panel. Las

conexiones de las patillas y las propiedades del componente de entonces se pueden editar. Normalmente posicionado en la parte superior izquierda

de la pantalla al lado de los iconos de la barra de herramientas esta barra de herramientas, puede ser desacoplado.

Menú y simulación barra de herramientas:

• Abrir y guardar archivos.

• acciones de deshacer y rehacer.

• Imprimir su diagrama de flujo.

• Controlar las funciones de simulación y de descarga.

Estas funciones también están disponibles en el menú estándar de Windows en la parte superior de la pantalla:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 41

Tablero de instrumentos y del sistema Paneles:

• Los componentes que se conectan al microcontrolador se mostrarán en uno de estos paneles donde se puede interactuar con ellos
cuando se ejecuta una simulación.
• También proporcionan dibujo básico presenta como líneas, formas e imágenes, que pueden ser utilizados para construir paneles de aspecto profesional

avanzada. El panel del tablero de instrumentos es principalmente para su uso en 2D aunque sí ofrece una vista 3D fijo. Se utiliza generalmente como una

interfaz que muestra los controles para componentes interactivos.

El panel de sistema es el panel principal 3D, que ofrece


muchas más funciones y opciones:

• el control pleno de la cámara;

• ambientes de fondo editables con defecto 'Sky Dome' y


vistas 'bóveda del mundo';
• La opción de utilizar una imagen como fondo;
• 'Modo Sombra', que ofrece tanto 'mesa' y opciones de sombra 'objeto'. Más detalles sobre estos paneles
se encuentran en el 'Flowcode 7 - Guía de introducción'.

panel de propiedades

Todos los elementos del panel, incluyendo el propio panel, tienen propiedades asociadas que se muestran en el

panel Propiedades cuando se selecciona el elemento. mientras que otros pueden ser manipulados Algunos son de

sólo lectura. Algunos, como el tamaño y la posición, el cambio a medida que interactúan con el artículo. Otros

permiten el acceso a funciones más avanzadas del elemento seleccionado. El panel Propiedades situado

típicamente se acopla a la parte derecha de la pantalla, pero se parece a esto cuando desacoplado:

Explorador de proyectos

Los botones en la parte superior de este panel permiten seleccionar 'Puertos', 'Globals', 'macros' y
'Componentes'.
• '' - Puertos nombres de variables asignadas a los puertos del microcontrolador.

• Globals '' - ningún constantes y variables que se han definido para su uso en el proyecto actual.

• 'Macros' - macros creadas por el usuario en el programa actual y permite el arrastre userto ellos en el diagrama de flujo
de corriente.

• 'Componentes' - similar, excepto que también enumera los componentes que están presentes en el panel.

lista de iconos

Todos los marcadores, puntos de ruptura y los iconos con discapacidad se enumeran, junto con los resultados de búsqueda y de error.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 42

ventana de chip

Se muestra el pinout para el chip microcontrolador seleccionado actualmente. Cuando se simula el diagrama de
flujo, el estado de cada pin del microcontrolador de E / S se muestra como rojo o azul, para las salidas de 'alto'
o 'bajo', respectivamente.

Acoplamiento y desacoplamiento de las barras de herramientas y paneles

Las barras de herramientas y paneles se pueden desacopló de sus posiciones predeterminadas y, o bien dejarse libres flotante o acoplada a la parte

superior, inferior o los lados de la 'Flowcode 7' ventana. He aquí un (extremo) ejemplo, mostrar barras de herramientas flotantes:

Para desacoplar una barra de herramientas acoplada, basta con hacer clic y mantenga en la barra de herramientas '' barras de apoyo (el área

manchada en la parte superior o lateral de la barra de herramientas) y arrastre la barra de herramientas a su nueva posición. Para acoplar de nuevo,

haga doble clic en la 'barra de apoyo'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 43

ventana de diagrama de flujo

Los iconos que componen el diagrama de flujo se muestran en este espacio principal.

Además, los diagramas de flujo de las macros que participan en el programa se muestran bajo su
propia pestaña independiente.

La pestaña diagrama de flujo principal es siempre visible y las pestañas macro se puede mostrar

u ocultar según sea necesario.

Una estrella roja junto a un icono indica que el diagrama de flujo no se ha guardado en
su forma actual.

Simulación
Al simular un programa en 'Flowcode 7' un rectángulo rojo alrededor de un
icono indica el icono para ejecutar la próxima.

ventana del depurador

Al simular un diagrama de flujo, los valores actuales de las variables utilizadas


en el programa aparecen en esta ventana. Estos se actualizan después se
simula un comando (a menos que la simulación está funcionando a toda
velocidad - 'Lo antes posible').

Si pulsa el botón de pausa durante la simulación,


puede hacer clic en una variable en esta ventana para cambiar su valor, (que le permite probar el programa en condiciones conocidas).

La ventana también muestra el ser macro actual simulado bajo la sección 'Llamadas Macro', útil cuando una macro llama a
otro durante el proceso de simulación.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 44

Inicio de un nuevo organigrama

• Crear un nuevo diagrama de flujo seleccionando Archivo> Nuevo o haga clic en el 'nuevo' botón en la 'principal
barra de herramientas'.

• Seleccione el microcontrolador que desea destino de la lista presentada.


• 'Flowcode 7' y visualiza dicho microcontrolador en la vista 'Chip' (Ver> Chip) y crea un diagrama de flujo de vacío para que
pueda empezar a añadir iconos a.

La apertura de un diagrama de flujo existente

• Hay varias maneras de abrir una 'Flowcode 7' diagrama de flujo existente:
• Seleccionar la opción Abrir en el menú Archivo (Archivo> Abrir) o haga clic en el 'Open' botón de la
'Barra de herramientas principal'. Esto le permitirá buscar el archivo que desea. o

• Seleccione el archivo de la lista de la mayoría de los archivos usados ​recientemente en el menú Archivo. o

• Haga doble clic en un archivo 'Flowcode 7' (.fcf) en el Explorador de Windows para iniciar 'Flowcode 7' y abra el archivo.

Guardar un diagrama de flujo

Para guardar un diagrama de flujo, seleccione 'Guardar' o las opciones de 'Guardar como' en el menú Archivo (Archivo> Guardar / Guardar como

...).

Diagramas de flujo deben ser salvados antes de que puedan ser compilados en C o transferidos a un microcontrolador.

Imágenes de ahorro de organigrama

Para guardar una imagen del diagrama de flujo activa, seleccione 'Guardar Diagrama de flujo de corriente ...' en el 'conservar la imagen' submenú en el

menú 'File' (Archivo> Guardar Imagen> Guardar Diagrama de flujo de corriente ...). Esta función guarda una imagen del programa a cualquier archivo

en el formato elegido de la lista:

• Bitmap (* .bmp);
• JPEG (* .jpg, * JPEG.);

• GIF (* .gif);
• PNG (* .png).
Tenga en cuenta que la tasa actual del zoom se utiliza para determinar la resolución de la imagen guardada. Si necesita imágenes de alta

calidad para la impresión a continuación, aumentar la tasa de zoom.

En el menú 'Guardar imagen', también tiene la opción de guardar la imagen actual sea el 'tablero de instrumentos' o el 'Panel System' (Archivo>

Guardar Imagen> Guardar la imagen del tablero de instrumentos ... / Guardar imagen Sistema de ... ).

Estas imágenes se pueden guardar en cualquier formato de archivo seleccionado de la lista:

• Modelo (* .mesh)
• Mapa de bits (* .bmp)

• JPEG (* .jpg, * jpeg).


• GIF (* .gif)
• PNG (* .png) Modelo (* .mesh)

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 45

Diagramas de flujo de impresión

Utilice el comando Imprimir vista previa para mostrar el diagrama de flujo como aparecería cuando se imprima. Cuando se utiliza este comando,

la ventana principal será reemplazado con una ventana de vista preliminar en la que se mostrarán una o dos páginas en su formato impreso. La

vista previa de impresión barra de herramientas que ofrece opciones para:

• ver una o dos páginas a la vez;


• mover hacia atrás y adelante a través del documento;

• acercar y alejar de páginas;


• iniciar un trabajo de impresión.

Por otra parte, el trabajo de impresión se puede iniciar sin vista previa seleccionando 'Imprimir' en el menú 'File' (Archivo> Imprimir) o haciendo clic en
el icono 'Imprimir' en la 'barra de herramientas Principal'.

El menú Ver
Esto dicta que aparecen paneles y barras de herramientas en el espacio de trabajo, una característica útil cuando se trata de simplificar su

apariencia.

También tiene un menú 'Zoom', que le permite mostrar más iconos en la ventana del espacio de trabajo que cuando se utiliza el zoom
predeterminado. El ajuste de zoom actual se muestra en el 'Zoom' submenú, y en el lado derecho de la barra de estado, en la parte inferior de
la 'Flowcode 7' ventana. El tamaño de cada icono está determinado por el nivel de zoom - para los iconos más grandes, zoom - para los
iconos más pequeños, Zoom hacia fuera! Utilice la función de vista previa de impresión para optimizar el aspecto de su diagrama de flujo en el
papel.

El menú 'Zoom' también se puede acceder haciendo clic derecho en el espacio de trabajo de diagrama de flujo. Funcionar

combinaciones de teclas:

• Aumentar Zoom (F3) - aumenta el tamaño zoom en un 5%;

• Reducir (F2) - disminuye el tamaño de zoom en un 5%;


• zoom predeterminado (F4) - conjunto de zoom al 75%;

• Zoom para encajar - zooms para adaptarse a toda el diagrama de flujo en la ventana actual;

• Zoom para encajar con la anchura - Zooms a la anchura del diagrama de flujo en la anchura de la ventana. El menú 'Ver' también

incluye un menú 'Estilo', que ofrece una oscura o una apariencia general a la luz 'Flowcode 7' aplicación y un área 'Opciones globales', que

ofrece una serie de potentes herramientas para configurar el diagrama de flujo.

Opciones globales

Para ver el efecto de cambiar estos ajustes, haga clic en el botón 'Vista previa' en la parte inferior de la ventana.

Diagrama de flujo Tab

Esta pestaña contiene los ajustes para cambiar el estilo de fuente y el tamaño y

características de los iconos.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 46

esquema Tab
Esta pestaña contiene los ajustes para cambiar la apariencia del
diagrama de flujo, incluyendo colores de los iconos y gráficos, colores
de fondo y los patrones etc.

anotación Tab
Todos los ajustes de esta ficha se relacionan con la manipulación de las

anotaciones en el diagrama de flujo, incluyendo texto icono y descripciones, así

como información sobre herramientas de anotación y estilos.

También la posibilidad de añadir icono de comentarios en el código C.

pestaña de aplicaciones

Estos ajustes afectan al aspecto y la 'sensación' de todo el programa.

Los preajustes de la piel y las opciones de pestañas cambiar el aspecto

general de 'Flowcode 7'. También ofrece la posibilidad de imprimir en color y

cambiar la configuración de acceso web. La opción 'lenguaje de anulación'

permite al usuario reemplazar el valor por defecto 'Flowcode 7' configuración

de idioma y de pantalla 'Flowcode 7' en un idioma determinado. Para ello,

seleccionar el idioma entre los disponibles en la lista desplegable y reinicio

'Flowcode 7' hacia abajo.

Lo hará en el idioma seleccionado, siempre que el paquete de idioma correspondiente se ha instalado.

Tab editor
'Auto-editar nuevos iconos' abre el panel Propiedades cuando se añade
un nuevo icono para el diagrama de flujo. Utilice la opción 'Añadir iconos
comentarios al código C' para incluir sus comentarios asociados al iconos
son compilados a código C.

El 'Permitir errores en los diagramas de flujo' opción le permite editar las

propiedades del icono sin desencadenar mensajes de error.

El 'Permitir puertos no conectados y pasadores' opción al-


mínimos que cambien conexiones de los componentes a 'desconectados' sin desencadenar un mensaje de error (aunque éstos todavía se
producirá durante la simulación y la compilación).

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 47

Ubicaciones Tab

Esto le permite elegir el directorio de destino que 'Flowcode 7'


compila a por defecto. También le permite especificar los
directorios que 'Flowcode 7' debe buscar en la búsqueda de
componentes y diccionarios.

ámbito Tab
El Alcance de datos permite al usuario ver los resultados y los valores de
los datos en bruto y de los propios componentes. Estos datos se muestran
durante la simulación y permite al usuario señales de monitor
seleccionados en los diferentes canales de alcance.

Puede leer y visualizar los datos de un número de diferentes puertos


simultáneamente. Ajuste de la 'base de tiempo' permite al usuario ver una
pequeña cantidad de datos a una mayor precisión o grandes cantidades
de datos.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 48

parte 4

Flowcode 7 Su

primer programa

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 49

Parte 4 Contenido

La adición de salidas digitales - Luz del LED: .......................................... .................................................. ...... 50


El hardware: ............................................... .................................................. ....................................... 50
El diagrama de flujo: ............................................... .................................................. ....................................... 50
Adición de LEDs ................................................ .................................................. ......................................... 51
Revisar el progreso! .................................................. .................................................. ......................... 51
¡Felicidades! .................................................. .................................................. ................................ 51
Velocidad de simulación de alta ............................................... .................................................. .......................... 51
Frenarla ............................................... .................................................. .................................... 51
Pasando a través de su programa: ............................................. .................................................. ........... 52
Cambio de la salida: .............................................. .................................................. ............................. 52
Numeros binarios ................................................ .................................................. ................................... 52
Convertir números ................................................ .................................................. ............................ 53
Dar salida a los números ................................................ .................................................. ............................ 53
Y una prueba corta! .................................................. .................................................. ................................ 53
Trabajando en Hex ............................................... .................................................. ...................................... 54
Hexadecimal en 'Flowcode 7' ............................................ .................................................. .................................. 54

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 50

La adición de salidas digitales - Luz del LED:

Crear un programa que se enciende un LED conectado al puerto B del microcontrolador Dicho de otra manera, este
programa introduce el tema de cómo controlar una salida digital.

No se preocupe - este programa no va a cambiar radicalmente su vida!

El hardware:
Este diagrama muestra cómo configurar el hardware de E-blocks. Anteriormente se demostró al principio de la sección 'Programación
de ejercicios', junto con los ajustes apropiados de hardware.

El diagrama de flujo:

• Iniciar un nuevo proyecto seleccionando 'Archivo' y luego haciendo clic en 'Nuevo' en


el menú que aparece (Archivo> Nuevo). Se le pedirá que elija un microcontrolador de
destino de la lista que aparece. Haga doble clic en '16F1937'.

• A continuación, se ve un diagrama de flujo, blanco a excepción de 'begin' y 'FIN' iconos. Todos los diagramas de flujo tienen

estos iconos por defecto. Mueva el cursor sobre el icono de 'Salida', , en la barra de herramientas de iconos. Hacer clic
y se arrastra sobre el área de trabajo. Mientras lo arrastra, el cursor normal, se transforma en un pequeño icono.

• Moverlo entre los iconos 'begin' y 'Fin'. Mientras lo hace, una flecha que aparece mostrando dónde se colocará
el icono de salida. Suelte el botón del ratón para soltar el icono de entre las cajas 'begin' y 'Fin'.

• Mueva el cursor sobre el icono de salida. Ahora, haga doble clic con el botón izquierdo del ratón o haga clic con el botón
derecho del ratón y selecciona 'Propiedades' en el menú que aparece.

• Ahora se ve un cuadro de diálogo como el que se enfrente Mover el cursor


sobre el '0' en el cuadro 'Variable o valor' y haga clic una vez. Esto pondrá de
relieve el valor '0'. Cambiar este valor a '1'. Este es el valor que será enviado a
la salida seleccionada.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 51

• Mueva el cursor sobre la flecha en el 'puerto'-ganar


Dow.
Haga clic en 'PORTB' en el menú que aparece. El cuadro de diálogo ahora
se parece a la de enfrente.
• Haga clic en el botón 'OK' para cerrar el cuadro.

Hasta el momento, se ha creado un programa que emite el número '1' al puerto B


del microcontrolador.
El siguiente paso es conectar un componente virtual a ese puerto para comprobar si el programa funciona.

Adición de LEDs

• Haga clic en el botón de 'productos' en la barra de herramientas Componentes y seleccione el componente

'LED Array'. Se parece a esto:

• Haga clic o arrastre en él para agregarlo al panel de instrumentos.

• Haga clic una vez sobre el componente en el panel para seleccionarlo. Su panel 'Propiedades' se abrirá y

mostrará sus propiedades.

• En la sección 'simulación', cambiar el 'conde'


propiedad a '8' por escribir en el cuadro al lado del nombre.
• Ahora, vaya a la sección 'Conexiones' y cambiar el 'Puerto' a 'PORTB'. Hacer esto significa que el
puerto B controla la matriz de LED
• Cambiar el color del LED de color rojo, el uso de los bienes de los 'Colores'. (Asegúrese de que la propiedad
'mismo' está ajustado en 'Sí' para cambiar toda la matriz de LED.)

Revisar el progreso!
Hasta el momento, se tiene:

• insertado un icono de salida en el diagrama de flujo;

• configurarlo para entregar un valor de 1 al puerto B;

• conectado ocho LED rojo es a los ocho bits de puerto B.

¡Felicidades!
Ha finalizado la primera parte del programa - para controlar digital (es decir, encendido / apagado) salidas. Ahora prueba mediante la

ejecución de una simulación de este programa.

Simulación de alta velocidad

Haga clic en el icono 'Ejecutar', en la barra de herramientas principal.

El resultado - las luces LED y primero, entonces hay un mensaje que dice que la simulación se ha completado. Si parpadeó, que se ha
perdido!
¿Que pasó? El programa emite el número 1 y se visualiza en el LED de, por la iluminación de la primera y dejando a
los otros fuera. Pero sucedió muy rápidamente!

Frenarla
Cuando haya pulsado el botón 'Ejecutar', el programa había terminado en un flash! Es la noticia
bueno y el malo - microcontroladores funcionan muy rápido.
En los programas posteriores a aprender cómo aminore su velocidad a una velocidad que los seres humanos pueden hacer frente, con retrasos o

bucles. Por ahora vamos más despacio la simulación!

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 52

Pasando a través de su programa:


'Flowcode 7' que permite el paso a través del icono del programa por el icono, utilizando el botón 'Paso a paso'
de la barra de menú.

Haga clic en él para ver 'Flowcode 7' simular el programa paso a paso. Ahora, se puede
ver el efecto de cada icono.
En el diagrama de flujo, el rectángulo rojo muestra el icono que se simuló la próxima vez que se hace clic en
'Paso a'.

Cambio de la salida:
• Haga clic en el icono de Salida y seleccione 'Propiedades' (o haga doble clic en el icono de salida,) para abrir el cuadro de diálogo
Propiedades de nuevo.
• Haga clic una vez en el cuadro 'Variable o valor' y cambie el número de 1 a 2.
• Haga clic en 'Aceptar' para cerrar el cuadro.

• Ejecutar la simulación haciendo clic en el icono Ejecutar:

• Tenga en cuenta que la matriz de LED se comporta de manera diferente.

• Repita este, usando diferentes números de la 'variable o valor de' caja.


• ¿Qué número hace que toda la luz del LED?

Numeros binarios

dispositivos electrónicos digitales no pueden hacer frente a números decimales (0, 1, 2, ..9 etc.). En su lugar, utilizan el sistema binario, que
utiliza sólo dos números 0 y 1. El número 1 podría estar representado por una señal de alta tensión, mientras que el número 0 podría ser un
voltaje bajo.

Los espectáculos opuestos tabla describe los dos sistemas numéricos se comparan:
Decimal Misma en binario

0 0
El sistema decimal utiliza números de diez, 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Al llegar al último de
éstos, '9', comenzamos de nuevo con '0', pero añadir otro número Al frente. Por ejemplo, 1 1

después de '8' y '9' viene '10', y después de '18' y '19' viene '20' y así sucesivamente. Cuando
2 10
se llega a '99', ambos de vuelta Ir a '0' de pero con un '1' delante, para hacer '100'.
3 11

4 100

5 101

6 110

7 111

8 1000

9 1001

10 1010

En binario, sucede lo mismo, pero mucho más a menudo, ya que utiliza sólo '0' y de '1' de. El conteo Decimal Misma en binario

progresivo se inicia con '0', '1', entonces de nuevo a '0' con un '1' delante, por lo que '10' (no diez - es
1 1
dos!) A continuación viene '11' (tres) y empezar de nuevo con dos '0 de pero con un '1' en el frente,
2 10
para dar '100'(cuatro) y así sucesivamente.
4 100

8 1000

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 53

convertir números
Tenga en cuenta que cada vez que el '1' se mueve binarios un lugar a la valor binario
valor decimal
izquierda, que doble el valor del número en decimal, como muestra la tabla
dieciséis 8 4 2 1
opuestos.
1 1
Podemos usar esta idea para convertir entre sistemas numéricos.
1 0 2

En cualquier número binario, el bit en el extremo de la izquierda, el 'bit 1 0 0 4

más significativo', (MSB), tiene el valor más alto. El que está en el 1 0 0 0 8

extremo de la derecha, el 'bit menos significativo', (LSB), vale menos . por

lo que 1 1 1 7

1 0 0 1 9

1 0 1 0 0 20
dar salida a los números

Por último, volviendo a la pregunta de los números de salida! Modificar su 1 1 1 1 1 31

programa para dar salida a los números dados


en la tabla, estableciendo el color del LED a la altura, y comprobar que se comporta el conjunto de LEDs como se muestra!

Número envía a la salida matriz de LED

31

32

130

255

Y una prueba corta!

Completa la tabla:
• sombreado en los LED que la luz, para las tres primeras filas;
• elaboración de lo que produce número de los patrones de LED que se muestran en las tres últimas filas.

Número envía a la salida matriz de LED

51

204

195

____

____

____

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 54

Trabajando en Hex

Un programador experimentado podría preguntarse si Decimal Binario Maleficio

'Flowcode 7' números hexadecimales soportes. La respuesta


0 00000000 0
es sí'.
1 00000001 1

2 00000010 2
Hexadecimal, 'hex' para abreviar, es una forma más conveniente que
binario (para los seres humanos) para representar números. 3 00000011 3

4 00000100 4
• Un dígito binario es o bien 0 o 1.
5 00000101 5
• Un dígito decimal varía entre 0 y 10.
6 00000110 6
• Un dígito hexadecimal tiene dieciséis estados posibles.
7 00000111 7
Claramente dieciséis estados es un problema, ya que tenemos sólo los
8 00001000 8
dígitos del 0 al 9. Para evitar esto, utilizamos las letras A a F para
9 00001001 9
proporcionar los seis dígitos adicionales requeridos.
10 00001010 UN

11 00001011 si
La tabla muestra los números equivalentes en decimal, binario y
12 00001100 C
hexadecimal. Tenga en cuenta que hemos demostrado el número
binario de ocho dígitos. Esta es una convención útil como computadoras 13 00001101 re

- y nuestros chips PIC almacenar información en grupos de ocho bits. 14 00001110 mi

15 00001111 F

Una célula de memoria única dentro de un dispositivo PIC puede almacenar un número que va de 0000 0000 y 1111

1111. En decimal de este rango es de 0 a 255. El equivalente en hexadecimal es de 0 a FF.

Hexadecimal en 'Flowcode 7'

Puede introducir un número hexadecimal en 'Flowcode 7' precediendo con '0x' en cualquiera de los cuadros de diálogo.

Por ejemplo:

Esto es equivalente a colocar el número binario de 1111 0000 en el puerto B.


En otras palabras, se coloca un 1 lógico (alrededor de 5V) en los cuatro pines de salida más significativos, y un 0 lógico (0 voltios) en los menos

significativos cuatro pasadores.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 55

parte 5

Flowcode 7

ejemplos resueltos

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 56

Parte 5 Índice

PIC o Arduino? .................................................. .................................................. .................................. 57


Ejemplo 1. La adición de entradas digitales - ¿Dónde está el fuego? .................................................. .......................... 57
Configuración del diagrama de flujo .............................................. .................................................. ........................ 57
La creación de las variables ............................................... .................................................. ........................... 58
Más sobre variables ............................................... .................................................. ................................. 59
'7' Flowcode variables: ............................................ .................................................. ............................ 59
Otros temas variables: .............................................. .................................................. ............................ 59
¿Por que preocuparse?: .............................................. .................................................. .......................................... 59
Configuración de las salidas .............................................. .................................................. ........................... 60
La adición de los interruptores ............................................... .................................................. ............................. 60
Simulando el programa ............................................... .................................................. ........................ 60
Ejemplo 2. Uso de bucles - Cuenta de ovejas (mal) ....................................... .......................................... 61
Configuración del diagrama de flujo .............................................. .................................................. ........................ 61
La creación de las variables ............................................... .................................................. ........................... 61
Configurar el cálculo .............................................. .................................................. ...................... 62
Configuración de propiedades de bucle ............................................... .................................................. .................. 62
Cuando para probar? .................................................. .................................................. .................................... 62
Loop para un número determinado de veces ........................................... .................................................. ................ 62
Configuración de la entrada .............................................. .................................................. ............................... 63
Configuración de la salida .............................................. .................................................. ............................ 63
Adición de la matriz de LED .............................................. .................................................. ............................. 63
Añadiendo el interruptor ............................................... .................................................. ................................. 64
Simulando el programa ............................................... .................................................. ........................ 64
La solución: La adición de un retardo ............................................ .................................................. ................... sesenta y cinco

Ejemplo 3. La pantalla LCD - Publicación de mensajes ......................................... .......................................... 66


pantallas LCD ................................................ .................................................. ......................................... 66
Adición del componente LCD .............................................. .................................................. ................... 66
Escribir mensajes ................................................ .................................................. ................................. 67
Otras funciones LCD ............................................... .................................................. ............................. 67
Usando PrintNumber - un ejemplo: ............................................ .................................................. ........... 68
Ejemplo 4. Un cronómetro ............................................. .................................................. ......................... 69
Ejemplo 5. El uso de números binarios - Una calculadora binario! .................................................. .................... 70
Configuración del diagrama de flujo .............................................. .................................................. ........................ 70
La creación de las variables ............................................... .................................................. ........................... 71
Configuración de las entradas .............................................. .................................................. ............................. 71
Configurar el cálculo .............................................. .................................................. ...................... 72
Configuración de la salida .............................................. .................................................. ............................ 72
Adición de una matriz de LED .............................................. .................................................. ................................. 72
La adición de los interruptores ............................................... .................................................. ............................. 72
simulación Slow ................................................ .................................................. ................................... 73
Ejemplo 6. lógica binaria en control! .................................................. .................................................. .... 74
A. El control del horno microondas: ........................................... .................................................. ......... 74
Configuración del diagrama de flujo .............................................. .................................................. ........................ 74
B. Control de la luz interior en un coche: ......................................... .................................................. ........... 76
Configuración del diagrama de flujo .............................................. .................................................. ........................ 76
Junta Ejemplo 7. El SPI - Hacer música! .................................................. ......................................... 78
Configuración de hardware ................................................ .................................................. .................................... 78
Configuración del diagrama de flujo .............................................. .................................................. ........................ 79

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 57

PIC o Arduino?

Todos estos ejemplos se pueden probar usando un PIC o un microcontrolador Arduino. Arduino usuarios deben
familiarizarse con la información del hardware al final de la Parte 2 del curso.

Ejemplo 1. La adición de entradas digitales - ¿Dónde está el fuego?

¡El escenario!
Un gran edificio tiene una serie de sensores de calor en su sistema de alarma contra incendios. Cuando se produce un incendio, los bomberos
tiene que saber donde está el fuego. En otras palabras, necesitan saber qué sensor de calor ha disparado la alarma.

El sistema está controlado por un dispositivo PIC. Hay cinco sensores de calor, conectados como entradas al puerto A. puerto B se configura como

puerto de salida y conectados a un conjunto de cinco LEDs. Si un sensor detecta el calor de un incendio, el LED correspondiente se ilumina.

Configuración del diagrama de flujo

• Lanzar 'Flowcode 7'.


• Iniciar un nuevo diagrama de flujo de dos formas:

• al hacer clic en el nuevo icono del documento, , en la barra de herramientas principal en la parte superior izquierda de la
pantalla;
• al hacer clic en 'Archivo' y luego en 'Nuevo' en el menú que aparece (Archivo> Nuevo);

• presionando 'Ctrl + N' en su teclado.


• No haga caso de las Opciones del proyecto '' 'Elegir una ventana de diálogo Target' por el momento.

• Hacer clic y arrastrar un icono de entrada, , y soltarlo en medio de las cajas 'begin' y 'Fin'.

• Hacer clic y arrastrar un icono de salida, , y soltarlo justo debajo de la entrada


icono.

• Su diagrama de flujo debe ser similar a la siguiente:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 58

La creación de las variables

• Haga clic en el icono de entrada y seleccione 'Propiedades' en el menú. Aparece el


cuadro de diálogo Propiedades de entrada, opuesta se muestra. Esto nos permite
añadir una 'variable'. Pero lo que es una variable?

Una variable es un lugar donde podemos almacenar información, en particular, la

información que cambia a medida que nuestros ejecuta el programa. En este caso, es

el número del sensor de calor que activa la alarma. Puede ser que sea el sensor 1 que

se apaga, o el sensor 5 .... . Vamos a utilizar una variable llamada "sensor" (sin

comillas) para almacenar la información en la que se ha activado el sensor.

• Haga clic en la flecha, , al lado de


'Variable:' caja.
Verá el siguiente cuadro de diálogo:

• Ahora ciernen sobre 'variables' la palabra y la flecha aparece.


Haga clic en él y seleccione 'Agregar nuevo'.

Otro cuadro de diálogo, se muestra contrario, parece, que ofrece una gran variedad de
tipos de variables. Por ahora, aceptar el tipo por defecto de 'byte', una variable que
puede almacenar números de '0' a '255'.

Escriba el nombre de "sensor" (sin comillas) como el nombre de la nueva


variable y haga clic en el botón 'OK'. Ahora aparece en la lista de variables que
el diagrama de flujo puede utilizar.

• Haga doble clic en el nombre de la variable de usarlo, o, alternativamente, haga clic y arrastre el

nombre en el cuadro variable. Ahora se ve la entrada de cuadro 'Propiedades' de nuevo. Tenga

en cuenta que usted necesita para indicar al sistema qué puerto que se va a utilizar para la

entrada

los datos de las necesidades del sistema. Se establece en el puerto A en el momento, y vamos a dejarlo así.

En este caso, las necesidades del sistema monitorear los sensores de calor y por lo que cada sensor se conecta a un poco diferente del puerto A.

Haga clic en 'Aceptar' para cerrar el cuadro de propiedades de entrada.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 59

Más sobre variables

En la sección anterior que ha añadido una variable para el programa usando el cuadro de diálogo
de variable:

Las señales de ordenador consisten en corrientes de binarios '0' y del 1 de en cada cable. Un grupo

de ocho cables puede llevar a ocho 'bits', (dígitos binarios,) simultáneamente. Esta agrupación de

ocho bits, conocido como un 'byte' se utiliza para gran parte del cableado interno dentro de

microcontroladores y para los registros que los datos de retención y de proceso.

También se utiliza dentro de los subsistemas de memoria. El contenido de una memoria de

registro que tiene ocho bits pueden variar de '0' a '255'. A dentro de la variable 'Flowcode 7'

puede ser configurado para utilizar un solo registro de memoria o más de uno.

'7' Flowcode variables:


'Flowcode 7' ofrece ocho tipos diferentes de variables:
• (Booleano) variable a 'Bool' o bien puede ser '1' o '0' (verdaderas o falsas);

• un registro único, conocido como una variable 'Byte', puede almacenar números de '0' a '255';

• un registro doble, conocida como variable de un 'Int', puede almacenar números de '-32768' a '32767';
• un doble registro también puede ser sin signo, cuando se sabe como una variable 'UInt', que puede almacenar los números de '0' a
'65535';
• un registro de cuatro, conocida como una variable 'larga', puede almacenar los números de '-2147483648' a '2147483647';

• un registro quad también puede ser firmado, cuando es conocido como una variable 'ULONG', que puede almacenar los números de '0' a
'4294967295'.

El consejo - Usar una variable 'Byte' para los contadores simples y para las variables que no pasarán por encima del valor '255'. Es el más
económico en términos de espacio de memoria y también el más rápido. procesos matemáticos que implican a dos bytes (a menudo referidos
como '16 bit aritmética ') tardan más en ejecutarse. Un registro múltiple, conocido como una variable 'cadena', puede consistir en un número de
variables 'Byte' - el valor por defecto en 'Flowcode 7' es 20.

Otros temas variables:


Números de punto flotante, ( que contienen un punto decimal en algún lugar en ellos,) también se puede utilizar, aunque representan una gama

mucho más amplia de valores que un número entero. Ellos sufren una pérdida de precisión en grandes rangos. Finalmente un " identificador de

objeto' se utiliza para hacer referencia a una pieza más complicada de datos (tales como un archivo, componente o un bloque de texto), cuyo formato

interno no se conoce.

¿Por que preocuparse?:

El número de registros dentro de un microcontrolador está limitada, y en aplicaciones más grandes el número y tipos de variables
debe ser manejada con cuidado para asegurarse de que hay suficiente. En la descarga de un programa, las variables en 'Flowcode
7' se implementan en la parte memoria de acceso aleatorio (RAM) del dispositivo PIC. En el 16F1937 hay 512 bytes de memoria.
Esto significa que puede tener 512 variables 'Byte', 265 'Variables Int' o 25 'Strings' cada uno consistente en veinte '' Bytes o
caracteres.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 60

Configuración de las salidas

• A continuación, haga clic en el icono de Salida y seleccione 'Propiedades' o simplemente haga doble clic en él. Las propiedades de salida de

la caja aparece.

• Haga clic en la flecha, , junto a la 'variable:' caja. Verá la variable 'sensor' en la lista.
• Haga doble clic en la palabra 'sensor' o haga clic y arrastre a la 'variable:' caja.
• Las propiedades de salida de la caja ahora demuestra que el sistema está configurado para dar salida a todos los datos que se almacena en la

variable 'sensor'. Cambiar el puerto utilizado para la conexión B, haciendo clic en la flecha, en el
ventana de proyección, y luego hacer clic en 'PORTB' en el menú que se abre.

• Haga clic en 'Aceptar' para cerrar la salida de la caja de propiedades.

• El diagrama de flujo ahora debería tener este aspecto:

Note las flechas en el icono de anotaciones. Muestran que la información se transmitirá desde el puerto

A en el diagrama de flujo, a través de 'sensor', (icono de entrada) y del diagrama de flujo, a través de

'sensor', a la conexión B (icono de salida).

• Ahora haga clic en el botón Salidas y seleccione el icono 'LED Array', 'Haga clic y arrastre' que
en el panel de instrumentos.
• Cambiar el 'conde' propiedad bajo la sección de 'simulación' con el valor '5' haciendo
clic en la casilla junto a la 'conde' propiedad y el uso del teclado para introducir el valor.

• Haga clic junto a 'Puerto' bajo la sección 'Conexiones' para abrir una vista interactiva del
chip, mostrando las clavijas compatibles.
• Haga clic en el menú desplegable y seleccione la opción 'PUERTO B'. Ahora ha conectado los LEDs a los pines en el
puerto B.

La adición de los interruptores

Usted va a utilizar cinco interruptores para simular los cinco sensores de calor. El interruptor que es 'on' (cerrado)
es el sensor de calor que ha disparado la alarma de incendios.

• Haga clic en el botón 'Entradas' y seleccione el 'interruptor array' Arrastre en un lugar adecuado en el
Panel System.
• Haga clic en la casilla junto a la propiedad 'Count' y cambie el valor a '5'. Compruebe que el componente está conectado
a 'Porta'.

Simulando el programa
• Haga clic una vez en el 'Paso a paso', , botón. Aparece la ventana del depurador 'Simulación', pero Ig
Nore todo por ahora.

• Mueva el cursor sobre uno de los interruptores y clic, para simular la detección de un incendio. El interruptor activa gráficos a la posición
cerrada. Haga clic en el 'Paso a paso' botón unas cuantas veces más para simular el programa completo.

El programa ha terminado, y el trabajo!


Usted acaba de detectarse un incendio, que se convirtió en un sensor de calor. El grupo de LED que, o el
cuerpo de bomberos, sensor que detecta el fuego dice.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 61

Ejemplo 2. Uso de bucles - Cuenta de ovejas (mal)


Contar ovejas, mal al principio, pero sin quedarse dormido!

El plan es sencillo - cuando una oveja pasa a través de la puerta, se rompe un haz de luz. Esto
envía un pulso a un sistema de conteo, que luego se suma uno al total almacenado en el
sistema.

Le mostramos este total en la matriz de LED. (El display de 7 segmentos sería un dispositivo de salida
mejor! - que es un ejercicio posterior)

El plan parece sencillo - pero no habrá problemas!

(Tenga en cuenta que 'Flowcode 7' tiene un componente 'de rotura de viga', basado en la 'colisión Detector'. Aunque esto haría un
trabajo mucho mejor, por ahora detectamos la interrupción del haz de luz usando métodos más básicos.)

Configuración del diagrama de flujo

• Lanzar 'Flowcode 7' y empezar un nuevo diagrama de flujo.

• Crear el diagrama de flujo mostrado opuesto. Contiene un icono 'Loop' y un icono de 'cálculo' que no se ha usado
antes.

La creación de las variables

Vamos a crear dos variables, una llamada 'oveja' y el otro llamado 'total'.
• La variable 'oveja' mostrará si una oveja está presente o no.
• El 'total' variable almacenar el número total de ovejas registrado hasta ahora.
• Haga clic en 'Ver' en la barra de menú, y asegúrese de que 'Project Explorer' está marcada (Ver>

Explorador de proyectos).

• Haga clic en el botón 'Globals' en la parte superior del panel Explorador de proyectos:

• Pase el ratón sobre 'variable:' en el panel Explorador de proyectos y haga clic en

• Haga clic en 'Añadir nuevo'. Ahora se ve el cuadro de diálogo 'Crear una nueva
variable'. Escribir en la "oveja" nombre y luego haga clic en 'Aceptar'. Puede dejar el tipo de
variable como 'byte', ya que no habrá que muchas ovejas!

• Cree una variable denominada "Total" de la misma manera.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 62

Configuración del cálculo


• Haga doble clic en el icono 'Cálculo' para abrir el cuadro de
diálogo 'Propiedades'.
• Cambiar el nombre de visualización "a "nuevo total".

• Crear el cálculo escribiendo lo siguiente en la


ventana 'cálculos': total = total + OVEJAS

• Vamos a simular romper el haz de luz con un interruptor pulsador


marcado 'SW0' en el puerto Un poco
0.
• Las propiedades 'de entrada' están configurados para almacenar cualquier número aparece en el puerto A en la variable llamada 'oveja.
Inicialmente, ese número es '0'. Cuando el interruptor es presionado, el número en el puerto A y almacena en la 'oveja variable es '1'. (Con un
solo interruptor, el número más grande que podemos crear en el puerto A es 1.)

Cuando se ejecuta el icono 'Cálculo', se añade el número almacenado en la variable 'oveja a la variable 'Total'. Por lo tanto,
cuando una oveja rompe el haz de luz, 'total' se incrementa en 1. Con ninguna oveja presente, 'total' se mantiene sin
cambios.
• Haga clic en el botón 'OK', para cerrar el cuadro de diálogo.

Configuración de propiedades de bucle

• Haga doble clic en el icono 'Loop' para abrir el cuadro de diálogo 'Propiedades'. Esto muestra
las opciones para controlar el bucle.

Al lado del 'bucle while:' declaración es el cuadro de texto de


control de bucle, en el que escribe la condición de bucle - el
programa continúa bucle hasta que se cumpla esta condición.
Ejemplos de condiciones de bucle:

• count = 10 (Bucle se ejecuta, siempre y cuando

la variable 'count' = 10)


• contador> 4 (Bucle se ejecuta mientras el 'recuento' es mayor que 4)
• count = preestablecido (bucle se ejecuta siempre que el 'count' es la misma que la variable 'preset') En todos estos, bucle

continúa siempre que la condición en el 'Loop mientras' cuadro de texto es 'verdadero'.

En la programación de 'verdadero' tiene un significado especial. Se le asigna un valor numérico de '1' de manera que una prueba puede

determinar si algo es 'verdadero'. Del mismo modo 'falso' se le asigna el valor numérico '0'.

La condición predeterminada en el 'bucle while:' cuadro de texto es '1' - esta condición es siempre 'verdadero' y así, con este valor, el
bucle se ejecutará siempre. Programas por lo general contienen un 'bucle infinito' estructura. Si no lo hacen, el programa terminará
pronto y el ordenador simplemente sentarse sin hacer nada.

Cuando para probar?

Puede configurar las propiedades para probar la condición de bucle ya sea al comienzo del bucle o al final. La comprensión de esta
opción es importante. Puede afectar el número de veces que el bucle voluntad programa.

Loop para un determinado número de veces

A veces, sólo desea ejecutar un bucle para un número determinado de iteraciones. Para ello, compruebe el 'recuento de bucle:' casilla e
introduzca el número de bucles que desee en el cuadro de texto asociado.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 63

Configuración de la entrada

• Haga clic en el icono de 'Entrada', y seleccione 'Propiedades' en el menú, para


ver el cuadro de diálogo siguiente:
• Cambiar el nombre de visualización. Haga doble clic en 'Entrada' en el 'Nombre de

usuario:' cuadro y escriba "Compruebe el sensor".

• Haga clic en el junto a la 'variable:' cuadro para abrir el


'Variable Gerente'.
• Haga doble clic en la palabra 'oveja' para insertarlo en la 'variable:'
caja.
• Por defecto, el puerto de entrada es A, que es lo que queremos. Haga clic en

'Aceptar' para cerrar el cuadro de diálogo.

Configuración de la salida

• Haga doble clic en el icono de 'Salida' para abrir la salida de la caja de diálogo 'Propiedades'.

• Haga clic en el junto a la 'variable:' caja.


• Doble- clic en la palabra 'total' para insertarlo en la 'variable:' caja.
• En el cuadro' Propiedades de salida, cambiar el puerto utilizado para 'PORTB'.

• Haga clic en 'Aceptar' para cerrar el cuadro de diálogo. El

diagrama de flujo ahora debería tener este aspecto:

Adición de la matriz de LED

• Haga clic una vez en el cuadro de 'productos' y seleccione el icono 'LED Array' Colocarlo en el panel del sistema
moviendo el cursor sobre él y luego 'al hacer clic y arrastrar' en su posición.
• Cambiar el valor de la propiedad 'Count' a '8' para establecer el número de LEDs en la matriz.
• Haga clic en la propiedad 'Conexiones' en el panel 'Propiedades'. Seleccione 'PORTB' en el menú desplegable para conectar los
LEDs a los pines en el puerto B.
• Puede cambiar el color de la matriz de LED en la sección 'Colores'.

Cuando la propiedad 'Mismo Color' se ajusta en 'Sí', se cambia el color de toda la matriz de LED a su color seleccionado.

Cuando la propiedad 'Mismo Color' se ajusta en 'No', se puede establecer el color de cada LED individual.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 64

Añadiendo el interruptor

Un conmutador pulsador único representará el sensor de haz de luz.

• Haga clic una vez en el cuadro de 'Entradas' y seleccione 'Empuje panel redondo' icono, . Añadir o arrastrarlo a la
Panel System.
• En la sección de panel 'Propiedades' 'Conexiones', verificación de que la propiedad 'Conexión' para el interruptor es '$ PORTA.0' es decir,
el conmutador está conectado al puerto A bit 0.

• Haga clic y arrastrar el icono 'Texto' de la barra de herramientas del panel de instrumentos y colocarla al lado del interruptor.

• Haga clic en la propiedad 'Texto' en el panel 'Propiedades' y reemplazar el texto predeterminado con "interrupción del haz de luz".

• Para ajustar el tamaño del texto, haga clic en la pestaña 'Posición' y cambiar los valores de 'Ancho' y 'Altura' en la sección
'tamaño Mundial'. Mover el texto a una posición adecuada al lado del interruptor.

Ahora debe tener un proyecto que se ve algo como esto:

Simulando el programa
• Ahora ejecutar la simulación haciendo clic en el botón Ejecutar
• Aparecerá la ventana 'depurador Simulación' - cerca de él, ya que no es necesario.
• Mueva el cursor sobre el interruptor y dar el clic del ratón más breve que pueda. Lo que sucede

depende de la rapidez con que haga clic, y qué tan rápido el PC funciona!

Queremos sólo el 'B0' LED a la luz, para mostrar un total de 1 ovejas. El programa se ejecuta a gran velocidad, sin embargo, y de manera que
se mantenga el ciclismo a través de la 'Entrada' y los pasos de cálculo ''. Como resultado, antes de tener tiempo para soltar el pulsador, el total
se ha incrementado (incrementado en uno) varias veces. Este problema se analiza en la siguiente sección.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 65

La solución: La adición de un retardo

El problema - el programa se ejecuta demasiado rápido!

Antes de que tengamos tiempo de soltar el interruptor, el programa ha recorrido varias veces, sumando uno al número cada vez.

Tenemos que reducir la velocidad mediante la adición de un retraso.

• Mueva el cursor sobre el icono 'Delay'.


• Arrástrelo hasta el área de trabajo principal y dejarlo caer entre el cálculo y los iconos de salida. El diagrama de flujo

debe ahora se ve así:

• Haga doble clic en el icono 'Delay' para abrir el cuadro de diálogo 'Propiedades'.

• Cambie el valor en el 'valor de retardo o variable:' cuadro de '200' y haga clic en el botón 'OK'. Esto provoca un retardo de 200
milisegundos (0,2 segundos) cuando se activa el icono 'Delay'. En otras palabras, el sistema sólo se sienta allí y no hace nada
durante 0,2 segundos.
• Ahora ejecute de nuevo la simulación. Siempre que no se mantiene pulsado durante demasiado tiempo, usted debe encontrar que los programas

de matriz de LED con un incremento de 1 cada vez que pulsa el interruptor.

• El programa ahora funciona satisfactoriamente, proporcionando la fiebre ovejas a través del haz de luz en menos de 0,2 segundos.

El retraso podría aumentarse para permitir ovejas más lento! Uno de los problemas con este programa es que muestra el número total

de ovejas en formato binario. Eso es interesante, pero no es tan útil.

En la siguiente sección, se entera de que una pantalla LCD puede mostrar total en formato decimal.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 66

Ejemplo 3. La pantalla LCD - Publicación de mensajes

Los programas que utilizan la necesidad pantalla LCD para utilizar el oscilador de cristal. Si es necesario, en 'Flowcode 7', seleccione 'Construir' en el

menú principal, luego 'Opciones del proyecto ...' y, finalmente, en la pestaña 'Configurar'. Seleccione el oscilador de cristal de la lista de opciones

(Build> Opciones del proyecto ...> Configurar).

Las pantallas LCD

'Flowcode 7' viene con un número de componentes que añaden subsistemas utilizados comúnmente para 'Flowcode 7', tales como la
pantalla LCD, pantalla de 7 segmentos, y analógicas dispositivos entradas.

Aquí, nos fijamos en la pantalla LCD, el subsistema de visualización de texto básico en una variedad de
dispositivos electrónicos, desde calculadoras a los teléfonos móviles. Puede mostrar texto o números en
una o más filas de la pantalla.

En la mayoría de los lenguajes de programación, la pantalla LCD es una de las últimas cosas que se aprenden,

ya que es bastante complicado para un dispositivo de programa. Sin embargo, 'Flowcode

7' se ocupa de las complejidades, haciendo que la pantalla LCD sencilla de usar. La pantalla LCD se hace referencia aquí es el utilizado en el tablero

de E-Blocks Combo y en la pantalla de cristal líquido - una de dos filas, dieciséis pantalla de caracteres.

Adición del componente LCD


Antes de poder utilizar la pantalla LCD, es necesario agregar un componente LCD a un 'Flowcode 7' del panel.

Para ello, haga clic en el cuadro de 'productos', seleccione un componente LCD desde el
menú y añadirlo al panel de instrumentos. Una pantalla LCD de mímica aparecerán ahora
en el panel.

En la parte superior del panel de 'Propiedades', sección identifica el 'componente' el componente que acaba de seleccionar. Por defecto, se
añade el LCD al puerto B. Se puede cambiar esto, pero vamos a mantenerlo en el puerto B.

Ahora hemos añadido una pantalla LCD para el programa. Es listo para usar? ¿Cómo lo usamos?

La pantalla LCD requiere cinco conexiones. Se muestra letras y números transmitidos


como datos en serie en este autobús de cinco hilos. Las técnicas utilizadas van más
allá de este tutorial. Afortunadamente, 'Flowcode 7' tiene algunas rutinas incorporadas
que se ocupan de las complejidades.

Arrastre un icono 'Componente Macro', , en el diagrama de flujo y


abrir el cuadro de diálogo macro correspondiente haciendo doble clic en él.

Ahora desplazarse a través de la sección 'LCD' en 'Componentes' y seleccione la


macro llamada 'Inicio'. Esto inicia el LCD, pantalla clearsthe y lo consigue listo para la
acción. Examinamos más macros LCD en el próximo par de secciones, pero por
ahora desplazarse por las macros disponibles y echar un vistazo rápido a cada uno.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 67

escribir mensajes
Para mostrar texto en la pantalla LCD, simplemente escribe en!

• Añadir otra 'Macro Componente' al diagrama de flujo y abrir el cuadro


de diálogo macro.
• Seleccione la macro LCD denominado 'printString'. Esto requiere un solo parámetro

(elemento de datos), 'Texto', - el texto que se desea imprimir.

• Escriba el texto en el cuadro de parámetros entre comillas, por ejemplo


"Hello World"

• Ejecutar el programa y el texto será enviado a la pantalla LCD.

Otras funciones LCD


Hay una serie de otras funciones útiles en la lista de macros del LCD:
'Claro'

Borra la pantalla y se restablece la posición del cursor, (donde las impresiones de pantalla siguiente,) a '0,0', es decir la parte superior izquierda.

'Cursor'

Mueve el cursor a la ubicación especificada. Los dos parámetros, 'X' y 'Y' seleccionar las posiciones horizontal y vertical de la celda,
respectivamente. '0,0' es la celda superior izquierda, '0,1' la primera celda en la segunda línea, '3,2' la cuarta celda de la tercera línea de
....
'PrintNumber'

Obras como 'printString' pero no se imprime un número en lugar de una cadena. Se puede

utilizar con variables, o con los números reales.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 68

Usando PrintNumber - un ejemplo:


• añadir un icono de macro de componentes de un diagrama de flujo;

• seleccione 'Cursor' y añadir 0,1 a los parámetros;


• agregar otro icono 'Componente Macro';
• seleccione 'PrintNumber' con el valor del parámetro como '123';
• añadir un tercer componente macro;

• seleccione 'printString' y añadir "Hello World" (entre comillas) como el parámetro;


• haga clic en 'Ejecutar' para simular el programa.

Debería ver un resultado similar al que se muestra a continuación:

'PrintASCII' y 'Comando'
son características más avanzadas que usted aprenderá más adelante. Por ahora ignore!

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 69

Ejemplo 4. Un cronómetro
• Ampliar su programa arrastrando un icono de lazo debajo Macro de componentes del 'printString'.
• Cambiar el texto de la macro de componentes 'printString' a "centésimas:" (entre comillas).

• Arrastrar un icono 'Cálculo' en el bucle.


• Crear una variable llamada 'conde' como un tipo 'int'.
• Haga doble clic en el icono 'Cálculo'. En los cálculos: "texto tipo caja "Count = count + 1". Esto añade 1 al valor de
la variable contador cada vez que se ejecuta el icono.
• A continuación arrastre otra 'Macro Componente' en el bucle.
• Haga doble clic en el 'Macro Componente' y encontrar 'Cursor' bajo las macros '' LCD.
• Enter “0,1” como parámetros para colocar el cursor en el primer carácter de la segunda línea.
• A continuación, arrastre otra 'Macro Componente' en el espacio de trabajo.

• Seleccione 'PrintNumber' e introduzca 'Count' como parámetro.


• Ahora, un icono de arrastre 'Delay' en el diagrama de flujo y establecer un retraso de 10 ms (que es igual a una centésima de segundo).

• Refinar el programa haciendo clic en cada icono y entrar en los comentarios sobre el icono hace. Puede parecer una gran cantidad de

esfuerzo, pero ahorra tiempo más tarde como su programa será más fácil de seguir.

• Ejecuta el programa. Usted ha hecho ahora un contador que contará (aproximadamente) el tiempo transcurrido en
centésimas de segundo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 70

Ejemplo 5. El uso de números binarios - Una calculadora binario!

En este apartado se crea un sumador binario - un sistema que hace que el microcontrolador sumar dos números.

La manera más simple de entrada de un número binario es utilizar un

conjunto de interruptores conectados al puerto de entrada.

Para introducir dos números, tenemos dos conjuntos de

interruptores y dos puertos de entrada.

Para ver el resultado del cálculo, vamos a utilizar una matriz de


LED, conectado al puerto de salida. Necesitamos un
microcontrolador con tres puertos!

Configuración del diagrama de flujo

• Lanzar 'Flowcode' y empezar un nuevo diagrama de flujo.

• Esta vez que tome nota de este cuadro de diálogo: Necesitamos un

microcontrolador con al menos tres puertos. Tire de la barra de desplazamiento

hacia abajo para encontrar el PIC 16F1937.

• Haga clic en él para seleccionarlo y haga clic en 'Aceptar'.

• Haga clic y arrastrar un icono' 'entre las cajas de bucle begin' y 'Fin'.

• Haga clic y arrastrar un icono 'Entrada' y colocarlo entre los extremos del bucle.

• Haga clic y arrastre un segundo icono 'Entrada' y soltarlo en medio de los extremos del
bucle.

• Hacer clic y arrastrar un icono de salida y colocarlo justo debajo de las cajas de entrada ''.

• Haga clic y arrastrar un icono de cálculo, , y colocarlo en el medio


el segundo icono de entrada y la icono de salida.

• Su diagrama de flujo ahora debería tener este aspecto:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 71

La creación de las variables

• Haga clic en 'Ver' en la barra de menú y asegúrese de que 'Project Explorer' está marcada (Ver>

Explorador de proyectos).

• Haga clic en el botón 'Globals' en la parte superior del panel Explorador de proyectos. Vamos a crear
tres variables, denominado 'INPUT1', 'ENTRADA 2' y 'suma'. Los dos primeros almacenar los números
alimentados desde los interruptores. La 'suma' variable almacena el resultado de la adición de ellos
juntos.

• Pase el ratón sobre 'variables' en el panel de 'Explorador de proyectos' continuación, haga clic en el

esto parece.
• Haga clic en 'Añadir nuevo' y el 'Crear una nueva variable' aparece el cuadro de diálogo. Escribir el nombre
de "ENTRADA 1", y haga clic en el botón 'OK' - deje el tipo de variable como 'Byte'.

• Crear variables, 'INPUT2' y 'suma' de la misma manera.

Configuración de las entradas

• Haga clic en el icono superior 'de entrada' y seleccione 'Propiedades'. Aparece el cuadro de

diálogo: El 'Entrada Propiedades'.

• Haga doble clic en la palabra 'entrada' en el 'Nombre de usuario:' caja para resaltarlo.

• Tipo "de entrada el primer número" para reemplazarlo. Esto aparecerá al lado del icono
'Entrada' en el diagrama de flujo.
(Adición de etiquetas como esto ayuda a los usuarios a entender qué está sucediendo.)

• Haga clic en el junto al cuadro variable para abrir


el 'Variable Manager'.
Esta lista las tres variables que acaba de crear.
• Haga doble clic en 'ENTRADA 1' para utilizar esta variable en el cuadro de

entrada.

• De vuelta en el cuadro de diálogo 'Propiedades de entrada', haga clic en la

flecha hacia abajo al final de la ventana de puerto y seleccione 'PORTB'

reemplazar 'porta'.

• Haga clic en 'Aceptar' para cerrar el cuadro de diálogo.

• Haga doble clic en el segundo icono 'Entrada', (una forma más rápida para

abrir el cuadro 'Propiedades'.)

• Configurar esta entrada a:


• mostrar la etiqueta 'de entrada el segundo número';
• utilizar la variable 'INPUT2';
• utilizar 'PORTC'.

• A continuación, cierre el cuadro de diálogo haciendo clic en el botón 'OK'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 72

Configuración del cálculo


• Haga doble clic en el icono de cálculo para abrir el cuadro de
diálogo Propiedades.
• Cambiar el nombre de visualización: 'a 'Añadir los dos
números juntos'.
• En los cálculos: 'cuadro de inserción: suma = +
INPUT1 INPUT2
(Cualquier tipo esta en forma directa, o arrastre en las variables
de la ventana de la derecha y luego insertar los signos '=' y '+'
en el lugar correcto!)

• A continuación, haga clic en el botón 'OK', para cerrar el cuadro de diálogo.

Configuración de la salida

• Haga doble clic en el icono de 'Salida', para abrir la salida de la caja de diálogo
'Propiedades'.

• Haga clic en el junto a la 'variable:' caja.


• Doble- clic en 'suma' para insertarlo en la caja.
• De vuelta en la salida de la caja de diálogo 'Propiedades':

• cambiar el puerto utilizado para 'PORTD'.

• clic en 'Aceptar' para cerrar el cuadro de diálogo.

• El diagrama de flujo ahora debería tener este aspecto:

Adición de una matriz de LED

• Haga clic en la pestaña 'Salidas' y seleccione 'LED Array' colocarlo en el


centro del panel de sistema al mover el cursor sobre el componente y luego
haciendo clic-anddragging en su posición (o haga clic en él y seleccionando
'Centro de todos los objetos' ).

• Haga clic al lado del 'conde' propiedad bajo la sección de 'simulación' en el


panel de propiedades y cambiar el número de LEDs de siete.

• Haga clic en junto a la propiedad 'Puerto' y seleccione 'PORTD' en el menú


desplegable para conectar los LEDs a los pines en el puerto D.

• Cambiar el color de la matriz de LED de color rojo (0000FF), cambiando el '0 LED' propiedad, mientras que la propiedad 'Mismo Color' se
ajusta en 'Sí'.

La adición de los interruptores

Se utilizan dos conjuntos de interruptores, uno para cada número binario. El puerto de salida tiene sólo ocho bits. El mayor número que
puede dar salida es 1111 1111, (= 255 en decimal). Vamos a limitarnos a introducir números de bit siete significado que el mayor
número que se puede indicar es 111 1111, (= 127 en decimal). Si usamos los números más grandes, nos
desbordaría la capacidad de la salida.
• Haga clic en la pestaña 'Entradas', seleccione 'conmutador de matriz' y se arrastra sobre el panel de sistema por encima de la

matriz de LED.

• Abra el panel 'Propiedades' para el conjunto de conmutadores. Conectarlo al puerto B, utilizando el al lado de
propiedad 'Puerto' para abrir el menú desplegable.
• Añadir un segundo 'conmutador de matriz al Grupo Especial sistema de la misma manera. Colocarlo debajo de la 'matriz de LED' y conectarlo a

'PORTC'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 73

simulación lenta
Como se describió anteriormente, 'Flowcode 7' le permite avanzar a través del un paso / icono del diagrama de flujo a la vez, para ver el
efecto de cada una de las variables y en la salida.
• Hay tres maneras de simular el programa paso a paso:
• Haga clic en 'Ejecutar' en la barra de herramientas principal y en el botón 'Paso a paso' (Ejecutar> Paso a paso).

• Pulse la tecla de función F8 en el teclado.


• Haga clic en el 'Paso a paso' botón en la barra de herramientas principal en la sección de simulación.

Siga uno de estos!


• Suceden varias cosas:
• Aparece un rectángulo rojo alrededor del icono 'begin', demostrando que este es el paso actual;
• Aparece la ventana 'Simulación depurador' - que contiene 'variables' y "llamadas a macros;
• sección se enumeran las 'variables' las tres variables que ha definido para este programa, y ​muestra sus valores actuales -
todos cero en este momento. No haga caso de la sección 'llamadas a macros' por el momento.

• Ahora la creación de dos números en los componentes del interruptor.

• Mueva el cursor sobre la caja del interruptor conectado al puerto B.


• Haga clic en los interruptores B0, B1 y B3, para activarlos.

• Los interruptores ahora el siguiente aspecto:

• Ha configurado el número binario 000 1011 (= once en decimal).


• (Interruptor 'B6' da el bit más significativo y 'B0' el bit menos significativo).
• Configurar el número 000 1111 (quince) en el interruptores conectados al puerto C.
• Ahora 'Paso a paso' al siguiente icono en el programa, por ejemplo, al presionar F8 una vez más.
• Los rectángulo se mueve rojos en al siguiente icono, el icono 'Loop', pero poco más sucede.
• Presione F8 una vez más. Los movimientos rectángulo rojo en el primer icono de entrada.

• Presione F8 de nuevo y las 'variables' caja muestra que la variable 'INPUT1' ahora contiene once el resultado de la instrucción
'Entrada' acaba de llevarse a cabo.
• Presione F8 una y otra sección se muestran las 'variables' que 'INPUT2' contiene ahora quince años.

• Presione F8 de nuevo y el cálculo se lleva a cabo. La 'suma' variable almacena el resultado.


• Presione F8 de nuevo. El valor almacenado en 'suma' es transferido a la LEDarray. Parece que:

La lectura desde el bit más significativo ( 'D7') para el bit menos significativo ( 'D0'), la matriz de LED muestra el número 0001
1010. En decimal, este es el número 26. No sorprende allí entonces!
• Repetir el mismo procedimiento con diferentes números y paso a través del programa para comprobar cuál es la suma de los
números es.

El programa ha terminado, y el trabajo.


Como de costumbre, usted podría ahora vamos a Flowcode 7 'traducirlo a código máquina, y grabarlo en un microcontrolador.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 74

Ejemplo 6. lógica binaria en control!


Los sistemas electrónicos pueden tomar decisiones!

Muy a menudo, estos son de la forma "Si esto y esto es cierto, entonces ..." o "Si esto O esto es cierto, entonces ...". Se basan en combinaciones
específicas de las circunstancias con el fin de tomar alguna acción en particular.

Son ejemplos del uso de lógica binaria. La respuesta a la “Si ...” pregunta es “Sí” / “No”, o “true” / “falso”, es decir una de dos
posibilidades - una situación binario! Esta respuesta podría ser expresado como un 0 lógico o un 1 lógico y electrónicamente por
un voltaje alto o un voltaje bajo.

Hay una clase de componentes electrónicos digitales, llamadas puertas lógicas, que realizan exactamente estas decisiones. Las entradas y
salida son lógica 0 o lógica 1.

Podemos programar 'Flowcode 7' para hacer exactamente las mismas decisiones. He aquí dos ejemplos:

A. Control del horno de microondas:


Por razones de seguridad, un horno de microondas tiene un sensor de puerta para asegurarse de

que el generador de microondas no funcionará si la puerta está abierta. Dicho de otra manera, el

generador funciona si la puerta está cerrada Y uno de los interruptores de control de calentamiento es

presionado.

Podemos construir esta condición en un programa 'Flowcode 7'.

Configuración del diagrama de flujo

• Lanzar 'Flowcode' con un nuevo diagrama de flujo.

• Crear el diagrama de flujo mostrado opuesto. Usa:

• un icono de bucle,

• dos iconos de entrada,

• iconos de salida, tres


• dos iconos de decisión,

• dos iconos de cálculo


• y un icono de demora.

• Crear cuatro variables:


• 'Puerta' - para almacenar el estado del interruptor de la

puerta;

• 'Control' - para almacenar el estado del interruptor on / off

de control;

• 'Salida' - para controlar si el microondas se


enciende o no;
• 'Contar' - que supervise el número de veces que ha ocurrido
el retraso 1s. Darle un valor inicial de diez, de manera que el
horno de microondas funcionará durante nueve segundos.

• Utilizar la configuración por defecto para el icono de bucle ..

• Configurar icono de una entrada para almacenar el estado del

interruptor de la puerta (en el puerto Un bit 0,) en la variable 'puerta'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 75

• Configurar el otro icono de entrada para almacenar el estado del interruptor de control (en el puerto Un bit 1,) en la variable de 'control'.

• El cálculo superior icono comprobaciones para ver si la puerta y el interruptor de control se han presionado.

Configurar que usando la ecuación: salida = de control y puerta.


El '&' significa la operación AND. El resultado de esta operación, ( '0' o '1') se almacena en la 'salida' variable.

• El icono de la decisión cheques superiores al valor almacenado en 'salida'. ( “Si la salida?” Es la abreviatura de “Si la salida = 1?”)

Configurar este icono decisión.


• Cuando el resultado del cálculo es '0', el programa sigue la ruta 'no' desde el icono de decisiones y se ejecuta el icono
izquierdo de salida. Esto envía un '0' lógico para el LED, asegurándose de que (y el generador de microondas) se
apaga. Cuando el resultado del cálculo es '1', el programa sigue la ruta 'Sí'. El 'Activar' icono de salida envía un '1'
lógico al LED de encenderlo.

Configurar estos dos iconos de salida.


• El icono de cálculo más baja reduce el número almacenado en la variable 'contar' por uno. Configurarlo
usando la ecuación: count = count - 1.
• El valor inicial de 'contar' es de diez. Siempre que el número almacenado en 'contar' no ha llegado a cero, el programa sigue la
ruta del 'No'. Finalmente, después de un bucle suficientes veces, el número almacenado sí reduce a cero. Entonces, el
programa sigue la ruta 'Sí' y ejecuta el 'Apagar' icono de salida, que se configura de la misma manera que el icono de otra
'Apagar', para apagar el generador de microondas.

• Añadir un conjunto de conmutadores para el panel del sistema. Configurar que tenga solamente dos interruptores, uno conectado al puerto A, el

bit 0 y el otro al puerto A, el bit 1.

• Añadir un LED conectado al puerto B, el bit 0 para representar el generador de microondas.

• Añadir etiquetas para el panel del sistema para identificar los componentes, como se muestra en el diagrama. Posición usando las
coordenadas 'Mundial en la pestaña 'Posición' de las propiedades de la etiqueta.

• Ahora simular el programa paso a paso, utilizando la tecla de función F8 varias veces.
• Comprobar lo que ocurre para diferentes combinaciones de estados de conmutación e interpretar esto en términos del comportamiento del

horno de microondas. Lo que sucede, por ejemplo, si se abre la puerta mientras el generador de microondas está funcionando?

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 76

B. Control del interior de la luz en un coche:

El interior 'cortesía' (o luz 'cúpula') pueden ser controlados por otra ecuación lógica
booleana.
Por simplicidad, consideremos un coche de dos puertas con el siguiente comportamiento:

Las vueltas luz interior cuando se abre una puerta (A) o el otro (B) y permanece encendido
hasta el interruptor de encendido (C) se enciende. En la jerga de Boole, se dice que la luz
está encendida, si (A o B) y no C es cierto.

Una vez más, podemos construir esta condición en un programa 'Flowcode 7'.

Configuración del diagrama de flujo

• Lanzar 'Flowcode' y empezar un nuevo diagrama de

flujo.

• Crear el diagrama de flujo mostrado opuesto, usando:

• un icono de bucle,

• iconos de entrada, tres

• dos iconos de salida,

• un icono de la decisión,

• y un icono de cálculo.
• Crear cuatro variables:
• 'Door_A' - para almacenar el estado del interruptor de

la puerta A;

• 'Door_B' - para almacenar el estado del interruptor de

la puerta B;

• 'Ig_switch' - para almacenar el estado del interruptor de

encendido;

• 'Salida' - para controlar si la luz del


techo se enciende o no;
• Utilizar la configuración por defecto para el icono de bucle ..

• Configurar icono de una entrada para almacenar el estado del

interruptor de la puerta A (en el puerto Un bit 0,) en el variable

'door_A'.

• Configurar icono de una entrada para almacenar el estado del interruptor de la puerta B (en el puerto Un bit 1,) en la variable 'door_B'.

• Configurar el otro icono de entrada para almacenar el estado del interruptor de encendido (en el puerto Un bit 2,) en la variable 'ig_switch'.

• El cálculo icono comprobaciones para ver si cualquiera de las puertas se ha abierto y el interruptor de encendido no está encendida.

Configurarlo utilizando la ecuación: salida = (door_A || door_B) y ig_switch!. El '||' significa la operación O y '!'
La operación no. El resultado del cálculo se almacena en la variable de 'salida'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 77

• El icono de decisión comprueba el valor almacenado en la 'salida'.

• Configurar este icono decisión.


• Cuando el resultado del cálculo es '0', el programa sigue la ruta 'no' desde el icono de decisiones y el icono de
salida 'Apagar' se ejecuta, lo que garantiza que la luz se apaga.
• Cuando el resultado del cálculo es '1', el programa sigue la ruta 'Sí'. El 'Activar' icono de salida
envía un '1' lógico al LED de encenderlo.
• Configurar estos dos iconos de salida.
• Añadir un conjunto de conmutadores para el panel del sistema. Configurar que tenga tres interruptores, uno conectado al puerto A, el bit 0,

uno a Porta, el bit 1 y el otro al puerto A, el bit 2.

• Añadir un LED conectado al puerto B, el bit 0 para representar la luz interior en el coche.
• Añadir etiquetas para el panel del sistema para identificar los componentes y la posición de ellos como se muestra en el diagrama.

• Ahora simular el programa paso a paso, utilizando la tecla de función F8 varias veces.
• Comprobar lo que ocurre para diferentes combinaciones de puertas abiertas y los estados de conmutación de encendido. Interpretar el
comportamiento en términos del comportamiento de la luz interior. Lo que sucede, por ejemplo, si la puerta se abre y se cierra poco después?
¿Es correcto este comportamiento?

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 78

Junta Ejemplo 7. El SPI - Hacer música!

de audio digital está en todas partes - en CDs, discos Blu-Ray, radio DAB, streaming de música ...

• Tiene una serie de ventajas sobre el audio analógico:


• Se puede almacenar como cualquier otro dato en memoria electrónica.

• Que puede ser distribuido a través de redes informáticas e Internet.


• Puede ser regenerado para eliminar el ruido.

SPI (Serial Peripheral Interface) es un protocolo común que se utiliza para enviar datos entre los
microcontroladores y los periféricos, tales como pantallas LCD, sensores y tarjetas SD. En nuestro caso,
se utiliza para transferir datos entre el microcontrolador y la memoria y del CAD sobre la placa SPI.

El protocolo SPI utiliza una configuración maestro-esclavo con un único maestro (el microcontrolador.) La comunicación es dúplex

completo (bidireccional simultánea). SPI puede implicar las cuatro señales siguientes:

• SCLK: Reloj serie (señal de reloj generada por el maestro).


• MOSI: Salida Master, Esclavo de entrada (salida de datos desde el maestro).

• MISO: entrada principal, la salida del esclavo (salida de datos desde el dispositivo esclavo).

• SS: Slave Select (bajo activo,) (. Salida de maestro con el fin de especificar el dispositivo esclavo objetivo) Estos se transmiten hacia
abajo de reloj separada, de datos y líneas de control.

Almacenados como datos digitales, la música se convierte en analógica forma por el DAC (convertidor digital-analógico) incorporado en el tablero
de SPI. A continuación, se amplifica y se emite desde la salida de auriculares o terminales de tornillo (J10).

Configuración de hardware:

La junta EB006 Multiprogramador y EB083 Combo están conectados como de costumbre, utilizando los puertos A y B. En el tablero EB083,

asegurarse de que:

• el puerto A (pin 0 y 1) selectores de modo se ponen a Analógico.

La junta EB013 SPI está conectado al puerto C. Una conexión de potencia positiva de alimentación se necesita entre el '+ V' terminal de

tornillo en la placa del SPI y la misma en el tablero EB006. En el tablero EB013, asegúrese de que:

• puente J2 está en el lado derecho - Posición 'AMP';


• jumper J4 selecciona 'A';
• puente J5 selecciona 1' .

La olla 'RV1' en la placa SPI es un control de volumen externo cableada, independiente del control de volumen de software creado en el

programa. auriculares de inserción en la toma de los auriculares ''. Conectar el EB006 Multiprogramador a una fuente de alimentación

de 12V. Utilice un cable USB para conectarlo al ordenador.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 79

Configuración del diagrama de flujo

• Lanzar 'Flowcode' con un nuevo diagrama de flujo.

• Seleccione el microcontrolador PIC16F1937 como dispositivo de destino.

• Cree dos variables:


• 'Tono' - para almacenar un valor que representa el tono de la nota generada;

• 'Volumen' - para almacenar un valor que representa la intensidad de la nota generada. Como las imágenes

abajo muestran, 'tono' se crea como una variable 'UInt' con un valor inicial de 128 y 'volumen' como una variable 'Byte' con un

valor inicial de 127.

• En el panel del tablero de instrumentos, añadir:

• el 'SPI Master (EB013)' componente, desde el cuadro 'Comms';

• dos 'del potenciómetro (color)' componentes de la caja 'Entradas'. Coloque ellos como

opuesto se muestra:

El 'pot' superior representa el control de volumen ( 'AN1 POT' en el tablero EB083 Combo). El inferior representa el

control de tono ( 'AN0 LDR' en el tablero EB083 Combo.) Haga clic en cada uno, a su vez, y seleccione 'Propiedades'.

Configurarlos como se muestra en los siguientes diagramas:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 80

• Añadir iconos para crear el diagrama de flujo se muestra a continuación.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 81

Los pasos del programa son:

1. inicializar el SPI:

2. Leer la configuración de control de tono:

3. Lea el ajuste del control de volumen:

4. Limitar el tamaño de 'volumen' a un máximo de 127:. (El cambio del número binario
almacenado en 'volumen' por un lugar a las cantidades adecuadas para dividirlo
por dos el valor más grande que podría tener como variable 'byte' 255. se movió
una lugar correcto, esto es 127.)

5. Establecer un bucle continuo, utilizando la configuración predeterminada.

6. Compruebe el ajuste de control de tono:

7. retardo para un tiempo determinado por 'tono':


(Las alturas de la onda de audio se envían regularmente con un retraso en el medio que
se establece por la variable de 'tono'. Cuanto más grande sea este valor, mayor es el
intervalo de tiempo entre los valores máximo y mínimo de la onda y por lo que el bajar el
tono .)

8. Enviar el valor pico de la onda de audio:

(Esto se establece como '128 + volumen'. 'Volumen' se limita a un máximo


de 127 dando el pico de un máximo de 255.)

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 82

9. Compruebe el ajuste del control de volumen:

10. Demora durante un tiempo determinado por el 'tono' de nuevo.

Límite 11. El nuevo tamaño de 'volumen' a un máximo de 127 de nuevo.

12. Enviar el valor de depresión de onda de audio:

(Esto se establece como '128 - volumen' 'Volumen' se limita a un máximo


de 127 dando la cubeta de un mínimo de 1.)

Los bucles de programa a enviar más valores pico y valle, volver a crear la onda de audio.

• El programa se ha completado.
Guardar y, a continuación, haga clic en el icono 'Compilar a Chip y transferirlo al microcontrolador.

• Cuando se complete la transferencia, presione el botón 'Reset' en el EB006 Multiprogramador. Debe escuchar un tono
de audio que viene a través de los auriculares.

• Gire la 'olla' 'AN1 POT' en el tablero combinado y observe el efecto. Esto controla el volumen del tono a través del software, a
diferencia de la 'olla' 'RV1' en la placa del SPI que los controles de volumen a través del hardware - a causa de la
configuración del circuito.

• Sombra del LDR en el tablero combinado. El tono de la señal de audio debe cambiar.

• En la pantalla 'Flowcode 7', haga clic en 'Data Recorder' en el menú 'Ver'. Se ve lo siguiente:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 83

• En el menú 'debug', haga clic en 'Ghost' y luego en 'Activar'. Usted debe


encontrar que 'Monitor (TIC)' está activado.

monitores 'fantasma' los niveles lógicos en los pines del microcontrolador seleccionadas al tiempo que el programa se está ejecutando y

los muestra en la pantalla 'registrador de datos'.

• Haga clic en el icono 'Ejecutar' para simular el programa. Verá los datos que se transmiten desde el
microcontrolador a la SPI DAC. La figura de la muestra de salida típico.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 84

parte 6

Introducción a los

microcontroladores

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 85

Parte 6 Contenido

¿Qué es un microcontrolador? .................................................. .................................................. ................ 86


Microcontroladores ................................................. .................................................. ................................. 86
El mundo digital ............................................... .................................................. .................................. 87
El Mundo Análogo ............................................... .................................................. ............................. 87
Analógica de datos ................................................ .................................................. ..................................... 88
Información digital ................................................ .................................................. .......................................... 88
Analógico a Digital Conversión .............................................. .................................................. ............. 89
Introducción de datos en un microcontrolador PIC ............................................ ................................................. 90
Transferir los datos ................................................ .................................................. ................................... 90
Los límites actuales ................................................ .................................................. ...................................... 91
Almacenamiento de datos ................................................ .................................................. ......................................... 91
Tipos de memoria ............................................... .................................................. ................................. 92
Memoria de sólo lectura (ROM) ............................................ .................................................. ...................... 92
Memoria de acceso aleatorio (RAM) ............................................ .................................................. ............. 92
Memoria PIC ................................................ .................................................. ......................................... 93
Programación ................................................. .................................................. ...................................... 93
¿Qué es un programa? .................................................. .................................................. ........................... 93
El 'Flowcode 7' Proceso ............................................ .................................................. ........................ 94
Ejecución del programa de ............................................... .................................................. ........................... 94
Los diferentes tipos de PIC .............................................. .................................................. ............................ 95
PIC16F1937 Arquitectura ................................................ .................................................. .................... 95
PUERTO A ................................................ .................................................. ................................................. 96
PUERTO B ................................................ .................................................. ................................................. 96
PORT C ................................................ .................................................. ................................................. 96
PUERTO D ................................................ .................................................. ................................................. 97
PUERTO E ................................................ .................................................. ................................................. 97
Otros subsistemas en el 16F1937 PIC ............................................ .................................................. .... 97
Memoria: ................................................ .................................................. .............................................. 97
ALU: ................................................ .................................................. .................................................. ... 98
Timer 1 (TMR1): ............................................ .................................................. ....................................... 98
Temporizador 0 (TMR0): ............................................ .................................................. ....................................... 98
RBO Interrupción externa: .............................................. .................................................. ......................... 99
PUERTO B Interrupción externa: ............................................. .................................................. ..................... 99
A / D: .............................................. .................................................. .................................................. ...... 99
Los autobuses: ................................................ .................................................. ................................................. 99
Introducción a 'relojes' ............................................. .................................................. ......................... 100
Ajustes del reloj ................................................ .................................................. ..................................... 100
Introducción a E-blocks ............................................. .................................................. ....................... 102
E-blocks Proyectos .............................................. .................................................. ................................. 103
Curso de hardware ................................................ .................................................. ............................... 104
EB006 Multiprogramador ................................................ .................................................. ................... 104
Junta Combo EB083 ............................................... .................................................. ........................... 105

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 86

¿Qué es un microcontrolador?

Como su nombre indica, los microcontroladores son pequeños dispositivos que se utilizan para controlar otros dispositivos electrónicos. Se

encuentran en una amplia gama de productos:

• automotriz - motores, frenos antibloqueo, sistemas de control climático ...;


• doméstico electrónica - televisores, videograbadoras, cámaras digitales, teléfonos móviles, impresoras, hornos microondas, lavavajillas,

lavadoras .... ¿Cuáles son estos dispositivos maravillosos?

Un microcontrolador es un circuito integrado digital, que consiste en:


• unidad Central de procesamiento

• memoria
• puertos de entrada

• puertos de salida

microcontroladores

En su corazón (o es el cerebro?) Hay una unidad central de procesamiento (CPU). Este procesa las señales digitales, hace cálculos y
operaciones lógicas, crea retrasos de tiempo, establece las secuencias de señales, etc.

¿Cómo sabe qué hacer? Se está siguiendo un programa de instrucciones, almacenadas en parte de la memoria, llamada la
'memoria de programa', dentro de la PIC.

De vez en cuando, las necesidades de CPU para almacenar datos, y luego recuperarlo. Se utiliza un área diferente de la memoria, llamada la

'memoria de datos' para hacer esto.

El reloj sincroniza las actividades de la CPU. Se envía una corriente de impulsos de tensión en la CPU que controla cuando los datos se
mueven alrededor del sistema y cuando las instrucciones del programa se llevan a cabo. Cuanto más rápido el reloj, más rápido se ejecuta
el microcontrolador a través del programa. Normalmente, el reloj funcionará a una frecuencia de 20 MHz (veinte millones de pulsos de
tensión cada segundo.) Para hablar con el mundo exterior, el microcontrolador tiene 'puertos' que los datos de entrada o salida en forma de
números binarios. Cada puerto tiene un número de conexiones - a menudo referido como 'bits'. Un puerto de 8 bits maneja un número de 8
bits (o un byte).

Información de los sensores se introduce en el sistema a través del puerto de entrada (s). El microcontrolador procesa estos datos y los utiliza para

controlar los dispositivos que están conectados al puerto de salida (s). Los puertos son propios circuitos electrónicos complejos - no simplemente un

montón de terminales para colgar componentes sucesivamente.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 87

El nombre PIC, (Controlador de Interfaz Periférica), se refiere a un grupo de


microcontroladores, producido por Arizona Microchip.

Cuando se utiliza un microcontrolador PIC, tenemos que especificar cómo queremos que los puertos de

comportarse. Los puertos son bidireccionales, lo que significa que pueden actuar ya sea como puertos de

entrada o puertos de salida. Cuando escribimos un programa para el PIC, empezamos por la configuración

de los puertos, diciéndoles que si han de comportarse como puertos de entrada o puertos de salida.

El puerto de entrada puede recibir datos (información) en una de dos formas, como una señal analógica, o como una señal digital.
Es importante que entendamos claramente la diferencia entre estos.

El mundo digital
Gran parte de nuestra información diaria se describe en formato numérico. Por ejemplo:

• "Son las 2 en punto."

• "La temperatura exterior es de 21 grados C."


• "El automóvil se desplazaba a 48 kilómetros por hora." Es fácil de
entender los datos en este formulario.
Por ejemplo, la tabla muestra cómo la velocidad de un automóvil cambios durante un período de tiempo.

Tiempo en segundos La velocidad en kilómetros por hora

0 0

10 15

20 21

30 25

40 22

50 20

60 dieciséis

Sin embargo, puede que se pregunte lo que sucedió en el tiempo de 35 segundos. Fue el coche en
movimiento rápido o más lento a 25 km / h a ese momento?
El Mundo Análogo
Ahora la información se da en la forma de una analogía! En otras palabras, usamos algo que se
comporta de una manera similar. Por ejemplo:

1. El reloj de arena reloj de arena:


Cuanto mayor sea el tiempo transcurrido, más profunda es la arena en la parte inferior del reloj de arena.

2. El termómetro de mercurio, de vidrio


Cuanto más caliente se pone, las otras las de mercurio se mueve hacia arriba del tubo.

3. El velocímetro del coche


Cuanto mayor sea la velocidad, los más el puntero se mueve alrededor de la esfera. El problema con los datos analógicos es que usted

tiene que hacer un trabajo para extraerlo. Para el velocímetro, y un termómetro, usted tiene que averiguar dónde se encuentra el puntero en la

escala. Por otro lado, es fácil juzgar cómo la temperatura de un cuerpo o la velocidad de un automóvil está cambiando reloj rapidez con que el

mercurio se mueve a lo largo del tubo o la rapidez con que el puntero se mueve alrededor de la esfera.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 88

Los datos analógicos

Muchos sensores electrónicos proporcionan señales en analógico formulario. Por ejemplo, un micrófono

proporciona una 'copia' eléctrico de una onda sonora. Otro - el sensor de temperatura!

Aquí está el diagrama de circuito para un tipo de sensor de temperatura. La tensión de

salida aumenta cuando la temperatura aumenta. Es una señal analógica de voltaje

porque las copias del comportamiento de la temperatura.

Una señal analógica eléctrica puede tener cualquier valor de tensión, limitado

solamente por la fuente de alimentación utilizada.

En este caso, la salida del sensor de temperatura podría, en teoría, ir tan alto como

5V, o tan bajo como 0V. Durante un período de tiempo, la tensión de salida podría

cambiar como se muestra en el diagrama. Esta es una señal analógica.

Información digital

Una señal digital lleva su información en la forma de un número. Los sistemas electrónicos suelen emplear el sistema numérico
binario, que utiliza sólo los números '0' y '1', codificado como voltajes. Podríamos decidir sobre el siguiente código: '0' = 0 V, '1' =
5V, por ejemplo.

Las señales digitales, a continuación, tienen sólo dos posibles valores de tensión, por lo general la tensión

de alimentación, o lo más cercano a él como el sistema puede conseguir, y 0V.

¿Cómo podemos introducir estos números en un sistema electrónico?

Una forma (muy lento) sería el uso de un interruptor (un ejemplo de un sensor digital.) El diagrama de
circuito muestra un sensor de este tipo digital.

• Cuando el interruptor está abierto (no presionado), la salida es 'derribada' a 0V por la


resistencia.
Esta salida podría representar el número binario '0'.
• Con el interruptor cerrado (pulsado), la salida está conectada a la alimentación positiva, 5V en este caso. Esto podría representar
el número binario '1'.

(Nota - si las posiciones del interruptor y la resistencia se invirtieron, al pulsar el interruptor pondría una señal lógica 0 en el pin
etc.)
El diagrama siguiente muestra una señal digital más complejo.

El número binario de nueve bits representado por la señal se da bajo la forma de onda.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 89

Analógico en digital
Gran parte de nuestros datos 'mundo real' es análogo, pero las computadoras (incluyendo microcontroladores) sólo pueden procesar datos
digitales. Afortunadamente los microcontroladores a menudo contienen un subsistema que puede convertir la información de formato analógico a
formato digital. Esto se llama un convertidor analógico a digital comúnmente abreviado como 'ADC' o 'A / D'.

El ADC dentro del chip PIC divide el rango de posibles tensiones analógicas en pasos iguales. El escalón más bajo se da el
número '0', y el escalón más alto se da el número más alto que el convertidor A / D puede manejar.

Este número más alto se determina por la resolución de la ADC, la cual, a su vez, depende del número de 'bits' los circuitos
internos de la ADC puede manejar. La resolución de PIC ADCs es de 8, 10 o 12 bits.

Por ejemplo, si la tensión analógica es mayor de 5 V, y el PIC tiene un ADC de 8 bits:


• el número más alto de 8 bits es 1111 1111 (= 255 en decimal);
• el primer paso es 0000 0000 (= 0 en decimal);
• lo que significa que hay 256 niveles de voltaje;
• por lo pisa de un nivel a otro implica un salto de tensión de 5 V / 256, o alrededor de 20 mV. Cuando esto PIC procesa una
señal analógica, primero se divide por 20 mV, para averiguar la cantidad de pasos incluye la señal. Esto da el equivalente digital
de la señal analógica. El siguiente gráfico ilustra este proceso.

En nuestro ejemplo, las salidas del convertidor '0000 0000' para cualquier señal analógica de hasta 20 mV, salidas '0000 0001' para
señales analógicas entre 20 y 40 mV, y así sucesivamente. La señal analógica se muestra en la gráfica produce una salida de '0000
0011'.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 90

Introducción de datos en un microcontrolador PIC

El microcontrolador PIC es un dispositivo digital, pero los datos se puede introducir tanto en forma analógica como digitales. Los programadores

elegir si pines en el PIC se utilizan como entradas analógicas, entradas digitales o salidas digitales. Esta flexibilidad conduce a etiquetado

complejo. El diagrama muestra el pinout para un chip PIC 16F1937. Cuenta con cinco puertos, conocidos como A,

B, C, D y E. Las clavijas en el puerto A se etiquetan RA0 a RA7;

pines en el puerto B están etiquetados RB0 a RB7 etc. puertos A,

B, C y D tienen ocho pines, pero el puerto E tiene sólo cuatro. Por

ejemplo, hasta ocho sensores digitales se puede conectar al puerto

A de la 16F1937. El pin 2 está marcado como " REAL ACADEMIA

DE BELLAS ARTES 0 / UN 0' , lo que significa que se puede utilizar

como bit 0 del puerto A ( R egistro UN bit 0) o como UN alogue

entrada 0. La función de cada pin de entrada / salida se determina

mediante el establecimiento de los contenidos de los registros

internos, llamados 'datos dirección' registros dentro del dispositivo

PIC. Pasadores RA6 y RA7 también están etiquetados como

'OSC1' y 'OSC2'. Se pueden conectar

a un circuito oscilador externo o usarse para la entrada / salida digital.


Analógicas sensores deben estar unidos a los pasadores etiquetados con una etiqueta 'ANx' (analógica). Estos, que se encuentra en los puertos A,

B y E, puede manejar analógicas señales entre V DD ( 5V) y V SS ( GND). La mayoría de los pines tienen funciones alternativas. Por ejemplo pasador 25

está etiquetado como 'RC6 / TX / CK', lo que significa que puede ser registro C mordió 6, o pin la transmisión (TX) de la interfaz en serie interna o la C

loc K pin de la interfaz de serie interno.

Afortunadamente 'Flowcode 7' se encarga de la configuración interna que la funcionalidad pin dictado por ti.

la salida de datos

El microcontrolador PIC es un dispositivo digital - Hemos dicho que ya varias veces! Se da salida a una señal digital. En la mayoría de los
casos, usamos esta a su vez algo de encendido y apagado - '0' = 'off' y '1' = '0n', por ejemplo.

Supongamos que hemos creado el puerto B como el puerto de salida, (o vamos a Flowcode 7 'hacerlo por nosotros). Hay ocho pines en el puerto B,

por lo que podemos cambiar ocho dispositivos de encendido y apagado. Es importante plan de cómo conectar estos dispositivos, ya que de lo

contrario podrían funcionar de la manera opuesta ronda!

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 91

El diagrama muestra ocho LEDs conectados al puerto B de un


microcontrolador PIC16F84:
• Los cuatro LED rojos están conectados entre el carril positivo de
alimentación y los pines del puerto B para estos LEDs, PIC es 'hundimiento'
actual.

• Los cuatro LEDs verdes están conectados entre los pasadores y el


carril 0V.
Para estos, PIC es 'sourcing' actual.

Cada LED rojo se ilumina cuando su pasador está en una baja tensión, la salida

'0' en otras palabras.

Cada LED verde se enciende cuando su pasador está en un alto voltaje, la salida de un '1'.

(Hay límites en cuanto a la cantidad de corriente pueden controlar los puertos Típicamente, un pin de salida puede gestionar hasta 25 mA Esto es

suficiente para conducir LEDs y zumbadores directamente, pero los dispositivos de mayor potencia necesitarán circuitos adicionales para interfaz con

el PIC.. - tratará más adelante. Sin embargo, la corriente máxima para el conjunto del puerto es de alrededor de 100 mA, por lo que no todos los pines

pueden 25mA de salida al mismo tiempo.)

Los límites actuales

La corriente máxima hundido / de origen por cualquier pin de E / S 25mA

La corriente máxima hundido por todos los puertos 200mA

La corriente máxima de origen por todos los puertos 140mA

corriente máxima de salida VSS espiga (GND) 95mA

La corriente máxima en V DD ( 5V) pin 70mA

Como se ha visto, 'Flowcode 7' tiene un modo de simulación que le permite adjuntar LED para mostrar el estado de las patillas del
microcontrolador cuando se utilizan como salidas. La función dentro de la simulación LED 'Flowcode 7' asume que la corriente es origen
desde el dispositivo PIC - como los LEDs verdes en el diagrama de arriba.

En algún momento, tendrá que utilizar las especificaciones pin PIC con el fin de utilizarlos como entradas digitales, entradas analógicas, o
como salidas digitales. En particular, hay limitaciones en las capacidades de salida del dispositivo. Al exceder estos límites, incluso durante
un corto tiempo, puede causar daños permanentes en el PIC.

Afortunadamente los tableros E-bloque usados ​en este curso todos tienen resistencias limitadoras de corriente que protegen el
dispositivo PIC. Al utilizar las placas de prototipos o parche, sin embargo, no hay tal protección y se debe tener cuidado de no dañar el
dispositivo.

Almacenamiento de datos

subsistemas electrónicos que almacenan los datos se conocen como 'memoria'. Habla a
Datos almacenados
Pueden almacenar datos sólo digitales.
en decimal en binario

Uno de los puntos de datos se almacenan en una ubicación en la memoria. Estos datos
0 000 11101001
podrían ser la combinación correcta para desarmar una alarma antirrobo, o la temperatura
1 001 00100101
objetivo de un bloque de motor de automóvil. Cada posición de memoria tiene una dirección
2 010 10000101
única, un número que se utiliza para identificar la ubicación en particular. Esto significa que
3 011 11001101
podemos elaborar un mapa de la memoria, que muestra lo que los datos se lleva a cabo en

cada lugar. 4 100 01110100

5 101 00011011

La versión decimal de la dirección se incluye para hacer la tabla más fácil de 6 110 11110011
leer. 7 111 10000101

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 92

Los sistemas electrónicos comprenden sólo números binarios. Esta memoria muy pequeña tiene ocho lugares. (Tenga en cuenta que la numeración

comienza normalmente a '0'!) Se necesita un número binario de 3 bits para crear direcciones únicas para cada ubicación. Nos permite almacenar los

elementos de datos que son ocho bits de longitud, (uno 'byte' (1B).

Nuestra memoria ejemplo se podría llamar una memoria de 8 x 1B. Los sistemas de memoria utilizados en los ordenadores son mucho más grandes.

Los datos se almacenan a menudo como números de 32 bits, lo que permite el uso de un número mucho mayor. Hay muchos más lugares, también.

Una memoria típica equipo ahora tiene millones de posiciones de memoria!

Tipos de memoria
Hay varios tipos de memoria electrónica, cada uno con un trabajo un poco diferente que hacer. Podemos dividirlos
en dos grupos principales, ROM y RAM ,:

Memoria de sólo lectura (ROM)

Estos dispositivos son normalmente de sólo lectura (es decir, el contenido se accede, pero no cambiaron 'escritos',) durante la ejecución de un
programa.

• Los contenidos no son volátiles. (Los restos datos almacenados incluso cuando la fuente de alimentación se desconecta.)

• A menudo se utilizan para almacenar los programas básicos, conocidos como 'sistemas operativos', que necesitan los ordenadores.

• El grupo incluye:
• PROM (Programmable Read Only Memory),
• EPROM (programable y borrable memoria de sólo lectura),
• EEPROM (eléctricamente programable y borrable memoria de sólo lectura) Una PROM es un dispositivo de un solo disparo, que llega

en blanco, listo para recibir datos. Los datos se pueden 'quemado' en él, pero sólo una vez. Después de que se comporta como un chip ROM que

puede ser leído muchas veces, pero no alterada.

Con una EPROM, que brilla la luz ultravioleta a través de una ventana en la parte superior del chip borra el contenido. Nuevos datos pueden ser

'quemado' en la memoria. Algunos dispositivos PIC de edad avanzada operan de esta manera. Los dispositivos de EEPROM funcionan de una manera

similar a una EPROM, excepto que los contenidos se borran mediante el envío de una secuencia especial de señales eléctricas a los pines

seleccionados. memoria 'flash' es una forma de EEPROM, ampliamente utilizado como medio de almacenamiento en cámaras digitales, (el lápiz de

memoria) y en el hogar consolas de juegos de video.

Memoria de acceso aleatorio (RAM)

• RAM permite que tanto las operaciones de lectura y escritura durante la ejecución de un programa.

• Los contenidos son volátiles y desaparecen tan pronto como se retira la fuente de alimentación. (La excepción es NVRAM, RAM no volátil,
donde el dispositivo de memoria puede incluir una batería para retener el contenido, o puede incluir un chip EEPROM como parte de la
memoria para almacenar el contenido durante la pérdida de potencia.)

• A menudo se utilizan para el almacenamiento temporal de datos o programas de aplicación.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 93

memoria PIC
los chips PIC tienen tres áreas separadas de la memoria:

• memoria de programa (Flash);

• memoria variable de usuario (RAM);

• EEPROM.

Los nombres dan fuertes indicios en cuanto a la finalidad de las áreas!

Para el PIC16F84 dieciocho pin del gráfico ilustra la


organización de la memoria:

La memoria de programa se utiliza para almacenar el programa!

En la mayoría de los PIC, como el 16F1937, la tecnología utiliza este flash '', lo
que significa que puede ser programado y se aclaró muchas veces. PROM uso
de más edad PIC para la memoria del programa de modo que muchos de ellos
se puede programar una sola vez.

memoria de datos se utiliza para almacenar datos!

Parte de este usos RAM y utiliza parte EEPROM. La EEPROM nos


permite preservar datos importantes, incluso si la fuente de
alimentación del sistema está apagado.

Por ejemplo, supongamos que el PIC es parte de un controlador de temperatura que mantiene una incubadora a una temperatura de ajuste. Podría

tener sentido para almacenar el valor de temperatura deseado en la EEPROM de manera que no tenemos que introducir en el sistema cada vez

que cambiamos la incubadora sucesivamente. El 16F84 ilustrado es un dispositivo relativamente pequeño. En el 16F1937 hay 8192 palabras de

memoria de programa (cada palabra tiene 13-bits), 512 bytes de RAM de usuario y 256 bytes de EEPROM.

Programación
¿Qué es un programa?

Los microcontroladores son dispositivos programables. Hacen exactamente lo que se les dice que hacer por el programa, y ​nada más! Un
programa es una lista de instrucciones, junto con todos los datos necesarios para llevarlas a cabo.

Por desgracia, los microcontroladores no entienden Inglés. Lo único que entienden es números. ¡Hay un
problema! No hablamos de números, y que no entienden Inglés! Hay dos soluciones, y ambos necesitan algún
tipo de Traductor:
• Escribir el programa en Inglés, o algo cerca de ella, y luego tener el resultado traducido en números.

• Podemos pensar en el diseño de los programas en Inglés y luego traducirlo a nosotros mismos en un lenguaje que es similar a los
números, conocidos como 'ensamble'. A partir de ahí, se trata de una rápida y simple paso para convertir en un código numérico que
entiende el microcontrolador. Estos dos extremos se conocen como programación en una lenguaje de alto nivel ( algo parecido a
Inglés) o en una lenguaje de bajo nivel ( ensamblador).

La primera es generalmente más rápido y más fácil para el programador, pero toma más tiempo para ejecutar el programa, debido a la necesidad
de traducirlo para el microcontrolador.

El segundo es mucho más lento para el programador, pero termina en marcha muy rápidamente en el microcontrolador.

Si usted piensa que esto suena muy complicado, tiene usted razón. ¡Es!

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 94

Afortunadamente, 'Flowcode 7' funciona utilizando diagramas de flujo - el nivel más fácil y más alto, de la programación y luego se encarga de
toda traducción necesaria.

El 'Flowcode 7' Proceso


'' Flowcode 7 '' ofrece una manera fácil de programar los chips PIC, como se verá. Una vez que el diagrama de flujo está diseñado en la
pantalla, una pulsación de un botón hace que el software para traducirlo a código numérico! 'Flowcode 7' pasa el programa a través de
una serie de procesos antes de que se envió en el microcontrolador. El diagrama de flujo se procesa:

• primero en código C,

• luego en ensamblador,
• y, finalmente, en números hexadecimales o 'Hex', que 'entiende' el microcontrolador. El código hexadecimal se envía entonces en

el microcontrolador, utilizando un programa de filial denominada 'Mloader'. Al seleccionar Construir> Opciones del proyecto ... Configurar en

el menú 'Flowcode 7', el programa se ejecuta 'Mloader'. Controla un número de opciones y configuraciones estableciendo el valor de los

registros dentro del dispositivo cuando se descarga un programa.

El código hexadecimal es 'quemado' en la memoria de programa del microcontrolador. Dado que la memoria flash se utiliza para formar la
memoria de programa, el programa no se pierde cuando el microcontrolador se retira del programador. Esto le permite utilizarlo en un circuito.
Igualmente, el uso de medios de memoria Flash que se puede reutilizar el microcontrolador y sobrescribir la memoria del programa con un
nuevo programa.

Ejecución del programa


Tan pronto como el microcontrolador se enciende y se suministra con pulsos de reloj, que comenzará a funcionar cualquier programa que se

almacena en la memoria de programa (Flash).

Cuando se pulsa el botón de reinicio en la junta de programación del microcontrolador, el programa se reinicia desde el principio.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 95

Durante la programación del microcontrolador se detiene mientras se carga el programa. Cuando esto se haya completado, se
reinicia y se ejecuta el programa descargado.

Los diferentes tipos de PIC

Hay un gran número de dispositivos PIC disponibles, desde el humilde 16F84 a mayor más complejo de PIC como el 40 pin 16F1937.
Diferentes del PIC tienen diferente número de puertos, o I / O pasadores, entradas analógicas, la memoria más grande, o capacidades
avanzadas de comunicaciones serie tales como RS232 o bus SPI.

La decisión sobre qué dispositivo usar para un proyecto puede ser una tarea en sí misma. Para este curso se utiliza un dispositivo 16F1937, un 40 pin

PIC que tiene muchos subsistemas internos (como un convertidor A / D, y un puerto serie).

PIC16F1937 Arquitectura
Como este curso utiliza el PIC 16F1937, es importante que entienda un poco más
sobre lo que hace y cómo usarlo. Esta sección detalla los pasadores que están
disponibles en el 16F1937 y los conectores que utilizan en la Multiprogramador. (La
sección 'Uso de E-blocks' analiza cómo se hacen estas conexiones). En este punto de
un curso de programación tradicional, que se introduciría en algún detalle a los
diversos bloques de circuitos internos del dispositivo PIC. Lo que se necesita esta
información para escribir código para el PIC en C o código ensamblador. No hay
necesidad - 'Flowcode 7' se encarga de estos detalles!

Sin embargo, sí es necesario para entender las conexiones de entrada y salida


del PIC, la memoria disponible y el papel de los otros subsistemas en el PIC.

puertos - El 16F1937 PIC tiene cinco puertos, etiquetados 'A' a 'E', conectados al resto de los

internals PIC por un sistema de bus de 8 bits.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 96

PUERTO A

• Los ocho pines del puerto A se pueden utilizar como entradas o

salidas:

• RA0-RA7 se puede utilizar como entradas digitales;

• RA0-RA7 se puede utilizar como salidas digitales;

• RA6-RA7 se puede utilizar para un oscilador externo y así


puede no estar disponible como I / O;
• AN0-AN4 se puede utilizar como entradas analógicas (dando

cinco entradas analógicas en el puerto A).

PUERTO B

• Los ocho pines del puerto B se pueden utilizar como entradas o salidas:

• RB0-RB7 se puede utilizar como entradas digitales;

• RB0-RB7 se puede utilizar como salidas digitales;

• un pin de interrupción externa es posible en RB0;


• un COI externa (interrupción en Cambiar) es posible en cualquiera de RB0-RB7;

• AN8-AN13 se puede utilizar como entradas analógicas (dando seis entradas analógicas

en el puerto B).

PUERTO C

• Los ocho pines del puerto C se pueden utilizar como entradas o salidas:

• RC0-RC7 se puede utilizar como entradas digitales;

• RC0-RC7 se puede utilizar como salidas digitales;

• PWM (modulación por ancho de pulso) disponible en el RC1


y RC2;

• El puerto C también contiene una USART (Universal


Synchronous - Asynchronous Receiver Transmitter) y un
MSSP (Master Synchronous Serial Port) para la
comunicación serial.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 97

PUERTO D

• Los ocho pines del puerto D se pueden utilizar como entradas o

salidas:

• RD0-RD7 se puede utilizar como entradas digitales;

• RD0-RD7 se puede utilizar como salidas digitales.

PUERTO E

• Sólo hay cuatro pines en el puerto E:


• RE0-RE3 se puede utilizar como entradas digitales;

• RE0-RE2 se puede utilizar como salidas digitales;

• RE3 sólo puede ser una entrada; (Cuando se utiliza como

el pin MCLR (es decir, de reset) que no puede estar

disponible como una entrada.)

• AN5-AN7 se puede utilizar como entradas analógicas

(dando tres entradas analógicas en el puerto E).

Otros subsistemas en el 16F1937 PIC


Memoria:
• Destello

• La memoria flash se utiliza para almacenar el programa

que escribe.

• Este programa es 'compilado' por la com-


putadora a código binario y luego descargado en la memoria flash del PIC.
• Puede leer y escribir en él y es retenido, incluso después de un corte de energía.
• La memoria flash contenida en el 16F1937 puede almacenar hasta 8192 comandos del programa.
• RAM
• Los datos de entradas, salidas, entradas analógicas, cálculos, etc. se almacena típicamente en 'variables' (valores en el
programa que alter ya que se ejecuta). RAM es donde éstas se almacenan.
• Esta memoria se borra cada vez que la energía se corta o se produce un restablecimiento.

• También contiene registros del sistema '' que controlan e informe del estado del dispositivo.
• La memoria RAM en el 16F1937 puede almacenar hasta 512 bytes de datos.
• EEPROM
• EEPROM es donde los datos pueden ser almacenados de forma permanente

• Esta memoria es del tipo PROM - preservado cada vez que los cortes de energía o un reinicio se produce.

• La EEPROM del 16F1937 puede almacenar hasta 256 bytes de datos.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 98

ALU:
• La ALU (unidad aritmética lógica) está en el centro de procesamiento de datos del PIC.

• Todos los datos pasa a través de esta unidad.

• El programa en la memoria flash le dice a la ALU qué hacer.


• La ALU puede enviar datos a, y obtener los datos de todos los bloques separados y los puertos de la PIC con el de 8 bits de ancho de bus de

datos.

• La ALU necesita cuatro pulsos de reloj oscilador externo para ejecutar una instrucción general.
• Cómo funciona la ALU es muy complicado. Afortunadamente 'Flowcode 7' programadores no tienen que saber cómo funciona.

Timer 1 (TMR1):
• Esta interrupción de temporizador se utiliza para proporcionar el PIC con la información exacta de temporización.

• Es 'registrado' ya sea por el reloj del sistema o por un reloj externo en RC0 pin.
• Cualquiera de reloj se puede dividir por 1, 2, 4 o 8 mediante la configuración de la de divisor de TMR1 en 'Flowcode 7'. La salida
resultante desencadena TMR1 e incrementa el registro TMR1.
• TMR1 es un registro de 16 bits, lo que 'desborda' cuando llega a '65536'.
• En el instante en que se desborda, se genera una interrupción y el registro TMR1 se pone a '0'.
• Este TMR1 interrupción detiene el programa principal inmediatamente y lo hace pasar a la macro TMR1.

• Después de que termine este, el programa principal continúa desde el punto en que se detuvo justo antes de la interrupción. Por ejemplo:

Externo frecuencia del oscilador de reloj (oscilador de cristal) 19 660 800 Hz

El reloj del sistema (cuatro pulsos de reloj por instrucción) 4 915 200 Hz

Conjunto prescaler a '8' (divide por 8) 614 400 Hz

frecuencia de desbordamiento cuando TMR1 = '65536' 9.375 Hz

Resultado: TMR1 interrumpe el programa principal y ejecutar la macro TMR1 9.375 veces por segundo.

Temporizador 0 (TMR0):

• Esta interrupción de temporizador también proporciona el PIC con la información exacta de temporización.

• Es 'registrado' ya sea por el reloj del sistema o por un reloj externo en RA4 pin.
• Este reloj del sistema se ejecuta exactamente cuatro veces más lento que el reloj oscilador externo.

• Cualquiera de reloj se puede dividir por 1, 2, 4 u 8, 16, 32, 64, 128, o 256 mediante la configuración de la de divisor de TMR0 en 'Flowcode
7'. El resultado desencadena Timer0 e incrementar el registro TMR0.
• Este registro TMR0 es un registro de 8 bits, que se desborda cuando alcanza 256.
• En el instante en que se desborda, se genera una interrupción y el registro TMR0 se pone a 0.
• A TMR0 interrupción detiene el programa principal inmediatamente y lo hace pasar a la macro Timer0.
• Después de que termine este, el programa principal continúa desde el punto en que se detuvo justo antes de la interrupción. Por ejemplo:

Externo frecuencia del oscilador de reloj (oscilador de cristal) 19 660 800 Hz

El reloj del sistema (4 impulsos de reloj por instrucción) 4 915 200 Hz

Conjunto prescaler a 256 (divide por 256) 19 200 Hz

Desbordamiento cuando TMR0 = 256 75 Hz

Resultado: Timer0 interrumpe el programa principal y ejecutar la macro Timer0 75 veces por segundo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 99

RBO Interrupción externa:

• Un cambio de nivel lógico en el pin RB0 puede configurarse para generar una interrupción.

• Puede ser configurado en 'Flowcode 7' para reaccionar a un aumento o un flanco descendente en RB0.

• Si se pone a reaccionar a un flanco ascendente, cuando se da:

• que se detenga de inmediato el programa principal;

• la macro relacionados RB0 se ejecuta;


• a continuación, el programa principal continúa desde el punto en que se detuvo justo antes de la interrupción. Esto ocurre

cada vez que se detecta un flanco ascendente en RB0.

PUERTO B Interrupción externa:

• Un cambio de nivel lógico en cualquier combinación de pasadores en el puerto B puede generar una interrupción.

• Esto puede ser configurado para producirse en una subida o un flanco descendente, o ambos.

• Cuando una de estas interrupciones se produce:

• que se detenga de inmediato el programa principal;

• la macro relacionados con el puerto B se ejecuta;

• a continuación, el programa principal continúa desde el punto en que se detuvo justo antes de la interrupción. Esto ocurre

cada vez que se detecta un cambio de nivel en uno de los pasadores seleccionada en el puerto B.

ANUNCIO:

• El PIC 16F1937 tiene catorce pasadores que tienen una función extra A / D.
• Tiene una sola de 10 bits convertidor A / D.
• Esto implica que estas entradas analógicas catorce no se pueden leer, todo al mismo tiempo.
• Un built-in apagón analógico, configurado en 'Flowcode 7', selecciona cuáles se muestrean las entradas.

• Después de la instrucción 'muestra', los puntos de conmutación analógica a la entrada correcta y esto se convierte en un valor
binario de 10 bits.
• En 'Flowcode 7', se puede optar por utilizar sólo los ocho bits más significativos (MSB) de este valor de 10 bits, mediante el uso de la

instrucción del 'GetByte', o para utilizar los bits de diez completos mediante el uso de la instrucción del 'getInt' . Los bits de diez se llenarán

los diez menos los bits significativos (LSB), acerca de la variable seleccionada entero de 16 bits.

• Después de esto, el programa puede seleccionar para leer otra entrada analógica.

Los autobuses:

• Un microcontrolador PIC utiliza la arquitectura Harvard.


• Esto significa que hay autobuses separados para las instrucciones y de datos.
• El bus de datos es de 8 bits de ancho y se conecta cada bloque y el puerto juntos.
• El bus de instrucciones es de 14 bits de ancho y transporta las instrucciones, que son de 14 bits de longitud, desde la memoria del programa de

la ALU.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 100

Introducción a 'relojes'
Cada microcontrolador necesita una señal de reloj para operar. Internamente, la señal de reloj controla la velocidad de operación y sincroniza el

funcionamiento de los distintos bloques de hardware internos. En general, los microcontroladores pueden ser 'registrado' de varias maneras,

usando:
• un oscilador de cristal externo;
• modo de 'RC', donde la frecuencia de reloj depende de una resistencia externa y el condensador;
• un oscilador interno.
existe el modo 'RC' parte histórica y en parte por razones de economía. Se introdujo como una alternativa de bajo costo para un oscilador de
cristal. Está bien para aplicaciones que no están sincronización crítica, pero no está disponible en los E-blocks Multiprogramador empleado en
el presente curso.

El Multiprogramador utiliza un oscilador de cristal externo, con una frecuencia de 19.660800MHz. ¿Por qué tal un número

preciso?

La razón es que esta frecuencia se puede reducir, por una secuencia de contadores binarios, a una velocidad de transmisión estándar para

facilitar la comunicación entre sistemas, usando protocolos tales como RS232. En este caso la frecuencia fundamental de reloj dividida por 2 a

la potencia de 10 es 19200Hz, una comunicación en serie Velocidad de transmisión estándar reconocido internacionalmente.

Matemáticamente:

19660800 medios 10 = 19200

Ajustes del reloj

Cuando 'Flowcode 7' descarga un programa para el microcontrolador, cambia la configuración de reloj interno y circuitos para reflejar el
circuito de reloj externo en el tablero Multiprogramador, según lo especificado por el programador.

Esto se hace seleccionando ' Construir> Opciones del proyecto ... 'En el menú 'Flowcode 7', dando a esta pantalla:

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 101

Si el microcontrolador de destino no es 'PIC16F1937' continuación, haga clic en la pestaña 'Elegir un destino'.

Haga clic en la pestaña 'Configurar'.

Esta pantalla le permite elegir entre una variedad de configuraciones de oscilador.

Seleccione 'Aceptar'.

Los usuarios experimentados pueden desear cambiar algunas de las configuraciones avanzadas en el chip. Todo esto se realiza desde la pantalla

que se muestra arriba.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 102

Introducción a E-blocks
E-blocks son pequeñas placas de circuitos que se pueden encajar entre sí para formar un sistema electrónico. Hay dos tipos
de E-blocks:

• tableros aguas arriba

'Upstream' es un término que indica el cálculo de una tabla que controla el flujo de información en un sistema. Por lo general,
se programan de alguna manera.

Cualquier dispositivo que contiene la 'inteligencia' y puede dictar la dirección del flujo de la información en el bus puede ser pensado como un
dispositivo de 'corriente arriba'.

Los ejemplos incluyen placas de microcontrolador, y placas de dispositivos de lógica programable.

• tableros de aguas abajo

tableros de 'aguas abajo' son controladas por una junta de 'corriente arriba', pero la información puede fluir dentro o fuera de ellos.

Los ejemplos incluyen placas de LED, tableros RS232 etc.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 103

E-blocks Proyectos

'Upstream' y tableros 'aguas abajo' se puede encajar entre sí para formar sistemas
electrónicos completos, como este teléfono móvil totalmente funcional.

E-blocks son compatibles con una amplia gama de sensores y accesorios, lo que le
permite construir una amplia variedad de sistemas.

Éstos son algunos otros ejemplos:


• sistema (ECG) un electrocardiograma para mostrar las formas de onda de la frecuencia cardíaca en un PC.

Consiste en:

• un PIC Multiprogramador,
• una placa de sensor equipado con un sensor de ECG,

• una pantalla LCD,

• un teclado,
• una junta RS232 (para facilitar la comunicación con el
PC).

• Se trata de un fallo electrónico que utiliza la tecnología de telefonía

móvil.

Un tablero pequeño parche contiene un micrófono y un amplificador de

alimentación en un módulo GSM Sony con la tarjeta SIM.

El PIC Multiprogramador detecta una llamada entrante y luego canales


de sonido local a la persona que llama que luego pueden oír lo que
está pasando en la habitación.

El teclado y la pantalla LCD permiten varias configuraciones, con tiempos de

'marcación de salida' en pre-determinados.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 104

curso de hardware
Las dos tablas principales de este curso son los EB006 Multiprogramador y la junta EB083 Combo, se describen a continuación.

EB006 multiprogramador
• La placa tiene cinco puertos, etiquetados 'A' a 'E'.
• Puertos 'B', 'C' y 'D' ofrecen una funcionalidad total de 8 bits.

• Puerto 'A' tiene una funcionalidad de 6 bits, (8 bits si se selecciona el oscilador interno).

• Puerto 'E' tiene una funcionalidad de 3 bits.

• Puede ser alimentado desde una fuente de alimentación externa, la entrega de

7.5V a 9V o con alimentación a USB.


• Como se ha señalado en otra parte, no hay conexión 5V se proporciona en el conector de
tipo D. Esta debe ser proporcionado por una conexión adicional a las juntas de 'aguas
abajo', utilizando los terminales de tornillos de la placa Multiprogramador. La conexión a
tierra es proporcionado a través del pasador 9 del conector de tipo D.

IMPORTANTE - NO conecte el terminal del tornillo de 14V a 5V 'aguas abajo' terminal de tornillo.

• Si se pulsa el interruptor de reinicio, el programa almacenado en el microcontrolador PIC se reiniciará.

• Hay un mapeado 1: 1 entre los pines en el conector de tipo D y aquellos en los puertos, (por ejemplo, Pin1 se conecta a PB0,
Pin 2 a PB1 etc.)
• La junta es programable USB a través de un chip de programación. Este se encarga de la comunicación entre
'Flowcode 7'' y el microcontrolador PIC.
• El microcontrolador PIC ejecuta una instrucción por cada cuatro pulsos de reloj que recibe.
• (Nota - una sola instrucción no es lo mismo que un solo símbolo 'Flowcode 7', que se compila en C y luego en la Asamblea
y, probablemente, se traduce en una serie de instrucciones).
• Este curso utiliza un cristal 19,660,800Hz. Las ventajas de esta frecuencia incluyen:
• estándar Velocidad de transmisión (19200) se puede obtener por dividiéndolo por 1024;

• se puede dividir aún más por 256 para dar 75 Hz.


• Los puentes permiten al usuario seleccionar varias opciones:
• fuente de alimentación externa o la fuente de alimentación USB;

• donde el PIC usa un oscilador interno, todos los ocho bits de puerto A se pueden utilizar para la operación de E / S;

• uso de una herramienta profesional CIE-2 (depurador en circuito) de Microchip.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 105

Junta Combo EB083


Las cosechadoras de mesa juntos en un tablero compacto de la funcionalidad que se

encuentra en una serie de tablas de E-blocks individuales:

• Junta EB004 LED (x2);


• tablero LCD EB005;
• Panel de conmutación EB007 (x2);

• EB008 Quad de 7 segmentos bordo Display.


• Para este supuesto, los conectores de tipo D se unen a conectores hembra
en los puertos A y B de la Multiprogramador.
• La junta proporciona un conjunto de ocho interruptores y ocho LEDs para el puerto A y el

mismo para el puerto B.

• Con enlaces J14 en la posición 'digital', el puerto A se encamina a su


conmutadores de presión (SA0 a SA7), para LEDs (LA0 a LA7) y al quad display de 7 segmentos.
• Con enlaces J14 en la posición 'analógica', el puerto A se conmuta a la sección del sensor analógico de la junta, de modo que RA0
pin está conectado a la de a bordo sensor y el pasador de luz RA1 está conectado al potenciómetro para dar una tensión de salida
variable , (simulando la acción de un subsistema de detección analógica).

• (Con estos enlaces en esta posición, la de a bordo interruptores y LEDs LA0 y LA1 no funcionará.)

• Puerto BI / pasadores O se enrutan a sus interruptores pulsadores (SB0 a SB7), para los LEDs (lb0 a LB7), a los quad displays de 7
segmentos y a la pantalla LCD.

• El quad display de 7 segmentos está activada por el interruptor S3. Está conectado a ambos puertos A y B.

• Puerto B se utiliza para controlar los segmentos LED y el punto decimal).


• Port A, los bits 0 a 3, seleccionar qué pantalla se activa.
• La pantalla LCD es un módulo de 16 x 2 líneas de caracteres, activada por el interruptor S5. Normalmente, un complejo dispositivo de

programar, 'Flowcode 7' se encarga de las complejidades, sin ser visto por el usuario.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 106

parte 7

curso Fundamentos

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 107

Parte 7 Contenido

Acerca de este Curso ............................................... .................................................. .................................. 108


Objetivo: ................................................ .................................................. .................................................. .... 108
Que necesitarás: ............................................. .................................................. ................................ 108
Convenios curso ................................................ .................................................. ......................... 109
Objetivos de aprendizaje ................................................ .................................................. .............................. 110
Mapeo de diploma extendido Nivel 3 BTEC Nacional de Ingeniería - Unidad 6 ..................................... 112

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 108

Acerca de este Objetivo

del curso:

El objetivo de este curso es presentar a los conceptos de desarrollo de sistemas electrónicos que utilizan los microcontroladores.

De este modo, se ofrece una cobertura sustancial de la Unidad 6 del Diploma extendido Nivel 3 BTEC Nacional de Ingeniería. La
cartografía precisa del curso a esta unidad se da en las páginas posteriores. Al término de este curso se han aprendido:

• lo que es un microcontrolador;

• cómo construir circuitos y sistemas basados ​en microcontroladores;


• cómo programar microcontroladores.

Que necesitarás:
Para completar este curso, necesitará el siguiente equipo:
• software 'Flowcode 7'
• E-blocks que incluyen:

• EB006 multiprogramador
• Junta EB083 Combo
• Junta EB013 SPI
• EB014 bordo del teclado

• Junta EB016 Prototipo


• EB038 tablero de relés

• EB090 placa base del sensor


• EBM003 módulo de sensor de termistor
• módulo de sensor de temperatura digital EBM004
• EBM016 módulo de sensor de humedad

• módulo de sensor de distancia ultrasónico EBM019

• módulo de sensor de infrarrojos EBM020

• Panel de enseñanza HPACT actuador

• EB634 cable de IDC

• suministro de energía HP2666

Hora: Se le llevará alrededor de 60 horas para llevar a cabo todas las hojas de trabajo en este campo.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 109

Convenios del curso


Las siguientes abreviaturas se usan en el curso:

Abreviatura Sentido
ADC UN nalogue a re iGITAL C onverter

ALU UN rithmetic L ogic T liendre

ASCII UN Merican S stándar C oda de yo nformación yo nterchange

UPC C entral PAG rocesadorasde T liendre

EEPROM mi lectrically mi rasable PAG rogrammable R ead O ólo METRO Emory

EPROM mi rasable PAG rogrammable R ead O ólo METRO Emory

GND suelo
Maleficio hexadecimal
IDC yo nsulation re isplacement C onnector

I/O yo Nput / O utput

ISP yo norte- S istema PAG rogramación

JPEG J oint PAG icture mi Xpert sol rupo (estándar para las imágenes)

LCD L iquid C rystal re es juego

LED L vuelo mi mitting re iode

LVP L Ay V oltaje PAG rogramación

LDR L vuelo re ependent R esistor

LSB L este S ignificant si eso

MSB METRO ost S ignificant si eso

NVRAM norte en- V olatile R Andom UN l acceso METRO Emory

FOTO PAG eripheral yo nterface C ontroller

PASEO PAG rogrammable R ead O ólo METRO Emory

PSU PAG ower S upply T liendre

RAM R Andom UN l acceso METRO Emory

RV1 R esistor- V ariable 1


SPI S erial PAG rogrammable yo nterface

XTAL cristal
ZIF Z ero yo nsertion F orce

+V tensión de alimentación positiva

Se utilizan las siguientes convenciones:


• productos de matriz se capitalizan sobre la primera palabra. Por
ejemplo: multiprogramador, Placa de pruebas, 'Flowcode 7'.
• instrucciones del menú 'Flowcode 7' se presentan como:
Archivo> Abrir

• Abreviaturas se explican completamente la primera vez que se mencionan:


EPROM (eléctricamente programable memoria de sólo lectura)

• Las comillas simples se utilizan cuando una cadena de un cuadro de diálogo se menciona en el texto:

Cambie el valor en el 'valor de retardo o variable' cuadro de texto.

• símbolos de circuito europeos se utilizan en todo el curso.

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 110

Objetivos de aprendizaje

Después de completar este curso, usted será capaz de:


• para enviar diferentes códigos de 8 bits al puerto B del microcontrolador;

• para cambiar el nivel lógico de una sola patilla de puerto B;


• para configurar un icono de salida;

• utilizar código binario;


• para manipular los niveles de salida lógica;

• utilizar LED de para mostrar una salida;

• para compilar un programa para el PIC.

• añadir un retardo a la ejecución desaceleración de un programa;

• para cambiar el intervalo de retardo;

• para configurar un icono de demora;

• para controlar la velocidad de un microcontrolador;

• utilizar un osciloscopio para eventos de tiempo.

• utilizar puntos de conexión para introducir ramificación incondicional en un programa;


• introducir PWM como un medio de controlar el brillo de los LEDs.
• para crear un bucle infinito;
• para manipular los niveles de salida lógica;

• utilizar LEDs para mostrar una salida;


• para crear y utilizar una variable;
• para configurar un icono de cálculo para realizar cálculos aritméticos y lógicos.
• para crear y manipular las variables;
• para realizar cálculos;
• utilizar LEDs con resistencias limitadoras de corriente;

• crear y utilizar un programa de 'luz corriente', utilizando el método de 'multiplicar-por-dos';


• crear y utilizar un programa 'Luz de marcha', utilizando el método de 'cambio-derecha';

• para crear y rellenar una matriz;


• para crear un bucle condicional;
• a los datos de entrada de interruptores;

• utilizar bucles para crear secuencias de LED;

• para configurar un icono de entrada;

• a los iconos de configuración de decisión y por lo tanto añadir bifurcación condicional a un programa;

• para controlar la frecuencia a la cual LEDs parpadean;

• utilizar LEDs a niveles lógicos de salida de pantalla;

• utilizar la memoria temporal;


• para crear, poblar y manipular las variables de cadena;
• para controlar la visualización de texto y números en una pantalla LCD;

• utilizar un LCD como un dispositivo de salida para el PIC;

• para configurar una macro de componentes para la pantalla LCD;

• para introducir texto y números de un teclado y mostrar mensajes en la pantalla LCD;


• al código ASCII uso para transmitir estos datos;

• utilizar entradas multiplexadas;

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 111

• para configurar una macro de componentes para el teclado;

• para crear registradores de datos, utilizando datos de 8 bits y 10 bits desde el ADC;

• para configurar una entrada analógica;

• para introducir datos a través de interruptores;

• para introducir la información de los sensores de luz y temperatura;

• Para configurar y usar la EEPROM;


• para desplazar los datos de EEPROM;

• para mostrar texto y datos numéricos en la pantalla LCD;

• utilizar el tablero prototipo E-blocks.


• utilizar macros de software para simplificar la estructura de un programa;
• para crear macros de software;
• utilizar el control de bucle cerrado;

• usar PWM para controlar el brillo de los LED.


• Para crear y utilizar las interrupciones 'de un solo pin';

• Para crear y utilizar 'interrupción-en-cambio' interrupciones (COI);


• utilizar la operación en tiempo real de un PIC;

• crear y utilizar interrupciones del temporizador;

• utilizar el pre-escalador para crear intervalos de tiempo precisos;

• para activar el temporizador usando el cristal o un evento externo;

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Correlacionando con diploma extendido Nivel 3 BTEC Nacional de Ingeniería - Unidad 6 página 112

Un sistema típico de hardware Investigar microcontrolador ¿Cubierto?

hardware de control A1

capacidades I / O - número, tipo (analógico / digital), puertos •


especificación de hardware - ancho de bus, la velocidad del procesador •
Memoria - RAM, ROM •
características de hardware - activa, PWM •
- pila •
periféricos necesarios •
costo y accesibilidad •
facilidad de uso •
software y programación en lenguaje •
operativo voltajes y los requisitos de energía •

Los dispositivos de entrada A2

Entrada del usuario:

digitales - interruptores y botones •


analógico - potenciómetro de control •
Temperatura
termistor •
sensores de temperatura •
sensor ambiental - temperatura y humedad •
Ligero

resistor dependiente de la luz (LDR) •


IR - fototransistor, un fotodiodo o un receptor IR •
Movimiento / orientación
interruptor de inclinación •
Presencia

micro interruptor •
ultrasónico •
Requisitos de entrada de interfaz

acondicionamiento de señal •
analógico-a-digital (ADC) de conversión •
placas de sensores modulares •
PWM •
comunicaciones en serie •
Circuito inter-integrado (I2C) •

Los dispositivos de salida A3

optoelectrónico
diodo emisor de luz (LED) - indicador y IR •
display de 7 segmentos •
pantalla de cristal líquido (LCD) •
electromecánico
relé •
motor de corriente continua •
servo •
Audio
zumbador o sirena •
transductor piezoeléctrico altavoz o •
requisitos de salida de la interfaz
los requisitos de potencia y los conductores •
etapa de salida de transistor •
relé •
PWM •
comunicaciones en serie •
interconexión dispositivo I2C •

A4 Selección de dispositivos de hardware y diseño de sistemas

A5 montaje y operación de un sistema microcontrolador

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 113

B técnicas de programación y codificación

Técnicas de programación B1

El uso de un entorno de desarrollo de programación

el funcionamiento del software •


conectar al hardware microcontrolador •
creación y gestión de archivos de programa •
La comprobación de sintaxis / error •
simulación •
compilar, descargar y pruebas en vivo •
monitoreo / depuración •
uso seguro del ordenador y la pantalla •
Codificación de las prácticas:

dispositivo de puesta a punto y el inicio del programa

comentarios introductorios •
set-up de chip •
modos de pin •
bibliotecas •
declaraciones •
autoría de código eficiente / efectivo •
la sintaxis del código •
en línea comentando •
organización del código y la estructura •

construcciones de codificación B2

De entrada y salida

digitales - bit y nivel de puertos de lectura / escritura •


análogo de lectura / escritura, la resolución, la calibración •
tono y sonido generación •
pulso y PWM •
la comunicación, incluyendo la serie y I2C •
flujo y control del programa:

llamando a las bibliotecas •


subrutinas y funciones •
control de secuencia de estructura de iteración

- Si, de lo contrario, el interruptor, la caja, para, hacer, mientras que, hasta el final y

retrasos y tiempos •
interrupciones •
La lógica y aritmética

- variables de tipos de datos (de Boole,



caracteres, bytes, número entero, palabra, flotador, de largo, doble, de cadena)

arrays •
operadores de comparación: =, no =, <,>, <o

=,> o =.

operadores booleanos - AND, OR, NOT •


lógica usando condición de entrada

- digital y analógica

operaciones aritmeticas •

el diseño del programa estructurado B3

pseudocódigo •
diagrama de flujo •
tabla de decisión •

Número sistemas B3

bits, bytes •
paralelo y en serie •
binario a la conversión decimal •

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 114

ciclo de desarrollo Sistema Proyecto

Los procesos de desarrollo C1 Proyecto

Etapas del proceso de desarrollo.

Documentación C2 Proyecto

Una serie de pruebas producido a lo largo del


proceso de desarrollo.

Llave

Símbolo Sentido

• Contenido cubierto por el curso

• Contenido parcialmente cubierta por el curso

• Contenido no cubierto por el curso

Proyecto Contenidos abordados a través del trabajo del proyecto

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


página 115

Control de versiones

Versión Autor Fecha cambios

1.0 JV 28/10/2016 la creación de documentos

Copyright © 2016 Matrix Technology Solutions Limited www.matrixtsl.com


Matrix Technology Solutions Ltd.
33 Patíbulo calle

Halifax

HX1 5BA

t: +44 (0) 1422 252380 e:


sales@matrixtsl.com

www.matrixtsl.com

CP4375

Вам также может понравиться