Академический Документы
Профессиональный Документы
Культура Документы
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).
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
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
concentra primero en el material de referencia y los ejemplos prácticos y luego los intentos de los ejercicios.
'Flowcode 7' trabaja con una gama de microcontroladores, incluyendo PIC, Arduino y ARM. Para simplificar, este curso se centra en los
'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
Arduino Uno usuarios necesitan un Arduino y E-blocks Arduino Uno Shield (EB093), se muestra a continuación, así como la mesa
Combo.
Parte 1
programación de Ejercicios
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
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.
El hardware:
La mayoría de los ejercicios usan el tablero EB006 Multiprogramador y EB083 Combo, que se muestra a continuación. (Se pueden
Las tablas se enumeran los ajustes de hardware y software utilizados para probar la mayoría de los programas.
EB006
configuración de los puentes
versión 9
El puerto C E-bloque
Port D E-bloque de
puertos E E-bloque
Construir> Opciones del proyecto ...> elegir un objetivo Familia - PIC 16F1937
Oscilador SA oscilador
Construir> Opciones del proyecto ...> Configurar
Temporizador de vigilancia bit de habilitación Discapacitado
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;
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.
• iluminación de sólo el LED en el bit 7, mediante el envío de un valor de 8 bits para el puerto;
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;
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;
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:
• reducir progresivamente la demora hasta que es demasiado rápido para los ojos para detectar los diferentes estados de
salidas;
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';
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;
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;
infinito;
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
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
• 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;
• 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'.
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,
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;
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';
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.
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
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';
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;
• 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;
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
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:
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;
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
objetivos:
• a los datos de entrada de interruptores;
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
Programa 2:
• escribir un programa para crear un contador que:
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';
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;
Instrucciones
Programa 1:
• escribir un programa que utiliza interruptores para producir una secuencia inversa en los LEDs:
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:
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;
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
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
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.
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 '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.
• 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!)
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;
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:
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
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.
Programa 6:
• escribir un programa que desplaza las líneas de texto se indican a continuación, una línea a la vez:
• 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
• 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:
• 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:
• 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
Programa 9:
• 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.
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:
• 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”;
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.
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;
Instrucciones
Programa 1:
• escribir un programa para:
Programa 2:
• escribir un programa para:
Programa 3:
• escribir un programa para un simple juego de adivinanzas, donde:
• la pantalla LCD muestra un mensaje, en la fila inferior, que indica si la suposición es demasiado alto o demasiado bajo;
Programa 4:
• escribir un programa para utilizar el teclado, como en un teléfono móvil, al texto de entrada al microcontrolador:
• 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.
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;
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:
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:
• desplazándose hacia delante a través de las muestras mediante un conmutador a '0' La presión, o el desplazamiento hacia atrás
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
• 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;
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;
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);
• 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.
• 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.
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
objetivos:
• Para crear y utilizar las interrupciones 'de un solo pin';
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:
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.
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;
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.
• los dados mantiene 'rodando', siempre y cuando el interruptor '0' se mantiene pulsado;
Programa 3:
• escribir un programa para hacer que un contador de tiempo de reacción que:
• incluye una trampa para evitar el engaño simplemente manteniendo pulsado el interruptor '0' de forma continua.
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;
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
• 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.
Instrucciones
Programa 1:
• escribir un programa para producir un temporizador precisas 'segundos' que:
Programa 2:
• escribir un programa para crear un temporizador de baloncesto que:
• hace que los LEDs se encienden y apagan cuando han transcurrido 30 años, (el tiempo permitido para el equipo con la bola para
(Use una interrupción 'de un solo bit' en el pin 'RB0' para iniciar la sincronización.)
Programa 3:
• reescribir el programa de reacción automático (Ejercicio 12, programa 3) utilizar una interrupción de temporizador.
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.
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.
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.
• 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.
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.
Parte 2
El uso de E-Blocks
Parte 2 Contenido
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
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.
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
para montar las E-blocks en un plano posterior, que tiene agujeros de 4 mm en una
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.
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.
• 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.
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.
M3 con tuercas de seguridad antes de que la cubierta se pone en su lugar. Esto se puede ver en el diagrama contrario:
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
Ten cuidado cuando se hace esto como el uso de un voltaje incorrecto puede dañar el dispositivo PIC en el tablero ultiprogrammer!
• de los puentes que seleccionan entre las conexiones por defecto y el sistema de parches,
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
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'.
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.
Aquí:
• ' AAA' se refiere al tipo de junta;
• ' cama y desayuno 'Se refiere a un artículo relacionado con que la junta;
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.
parte 3
Introducción a
Flowcode 7
Parte 3 Contenido
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.
'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.
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.
• 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.
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.
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.
Estas funciones también están disponibles en el menú estándar de Windows en la parte superior de la pantalla:
• 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
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.
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.
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,
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
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.
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.
• Crear un nuevo diagrama de flujo seleccionando Archivo> Nuevo o haga clic en el 'nuevo' botón en la 'principal
barra de herramientas'.
• 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.
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.
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
• 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
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 ... ).
• Modelo (* .mesh)
• Mapa de bits (* .bmp)
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
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:
• 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
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.
Esta pestaña contiene los ajustes para cambiar el estilo de fuente y el tamaño y
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
pestaña de aplicaciones
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.
Ubicaciones Tab
á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.
parte 4
Flowcode 7 Su
primer programa
Parte 4 Contenido
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.
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:
• 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.
Adición de LEDs
• Haga clic una vez sobre el componente en el panel para seleccionarlo. Su panel 'Propiedades' se abrirá y
Revisar el progreso!
Hasta el momento, se tiene:
¡Felicidades!
Ha finalizado la primera parte del programa - para controlar digital (es decir, encendido / apagado) salidas. Ahora prueba mediante la
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
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.
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
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
lo que 1 1 1 7
1 0 0 1 9
1 0 1 0 0 20
dar salida a los números
31
32
130
255
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.
51
204
195
____
____
____
Trabajando en Hex
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
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
Puede introducir un número hexadecimal en 'Flowcode 7' precediendo con '0x' en cualquiera de los cuadros de diálogo.
Por ejemplo:
parte 5
Flowcode 7
ejemplos resueltos
Parte 5 Índice
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.
¡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.
• 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);
• Hacer clic y arrastrar un icono de entrada, , y soltarlo en medio de las cajas 'begin' y 'Fin'.
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
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'.
• Haga doble clic en el nombre de la variable de usarlo, o, alternativamente, haga clic y arrastre el
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.
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
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.
• 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.
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.
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.
• 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.
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
• 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.
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 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)
(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.)
• Crear el diagrama de flujo mostrado opuesto. Contiene un icono 'Loop' y un icono de 'cálculo' que no se ha usado
antes.
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:
• 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!
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.
• Haga doble clic en el icono 'Loop' para abrir el cuadro de diálogo 'Propiedades'. Esto muestra
las opciones para controlar el bucle.
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.
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.
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.
Configuración de la entrada
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 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.
Añadiendo el interruptor
• 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.
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.
Antes de que tengamos tiempo de soltar el interruptor, el programa ha recorrido varias veces, sumando uno al número cada vez.
• 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
• 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
En la siguiente sección, se entera de que una pantalla LCD puede mostrar total en formato decimal.
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
'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,
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.
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?
escribir mensajes
Para mostrar texto en la pantalla LCD, simplemente escribe en!
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
'PrintASCII' y 'Comando'
son características más avanzadas que usted aprenderá más adelante. Por ahora ignore!
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).
• 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.
En este apartado se crea un sumador binario - un sistema que hace que el microcontrolador sumar dos números.
• 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 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'.
• Haga clic en el icono superior 'de entrada' y seleccione 'Propiedades'. Aparece el cuadro de
• 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.)
entrada.
reemplazar 'porta'.
• Haga doble clic en el segundo icono 'Entrada', (una forma más rápida para
Configuración de la salida
• Haga doble clic en el icono de 'Salida', para abrir la salida de la caja de diálogo
'Propiedades'.
• 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í'.
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'.
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).
• 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.
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.
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:
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.
• un icono de bucle,
puerta;
de control;
• 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.
• El icono de la decisión cheques superiores al valor almacenado en 'salida'. ( “Si la salida?” Es la abreviatura de “Si la salida = 1?”)
• Añadir un conjunto de conmutadores para el panel del sistema. Configurar que tenga solamente dos interruptores, uno conectado al puerto A, el
• 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?
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'.
flujo.
• un icono de bucle,
• 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;
la puerta B;
encendido;
'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'.
• 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?
de audio digital está en todas partes - en CDs, discos Blu-Ray, radio DAB, streaming de música ...
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:
• 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:
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:
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
• '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
• 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'.
1. inicializar el SPI:
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.)
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:
monitores 'fantasma' los niveles lógicos en los pines del microcontrolador seleccionadas al tiempo que el programa se está ejecutando y
• 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.
parte 6
Introducción a los
microcontroladores
Parte 6 Contenido
¿Qué es un microcontrolador?
Como su nombre indica, los microcontroladores son pequeños dispositivos que se utilizan para controlar otros dispositivos electrónicos. Se
• 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
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
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:
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:
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.
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!
Una señal analógica eléctrica puede tener cualquier valor de tensión, limitado
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
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
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.
(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.
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.
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'.
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 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
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
Cada LED rojo se ilumina cuando su pasador está en una baja tensión, la salida
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
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
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
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.
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 ,:
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
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
• 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.)
memoria PIC
los chips PIC tienen tres áreas separadas de la memoria:
• EEPROM.
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.
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!
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.
• 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
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.
Cuando se pulsa el botón de reinicio en la junta de programación del microcontrolador, el programa se reinicia desde el principio.
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.
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!
puertos - El 16F1937 PIC tiene cinco puertos, etiquetados 'A' a 'E', conectados al resto de los
PUERTO A
salidas:
PUERTO B
• Los ocho pines del puerto B se pueden utilizar como entradas o salidas:
• 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:
PUERTO D
salidas:
PUERTO E
que escribe.
• 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.
ALU:
• La ALU (unidad aritmética lógica) está en el centro de procesamiento de datos del PIC.
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:
El reloj del sistema (cuatro pulsos de reloj por instrucción) 4 915 200 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:
Resultado: Timer0 interrumpe el programa principal y ejecutar la macro Timer0 75 veces por segundo.
• 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.
• 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.
• 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:
la ALU.
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:
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:
Seleccione 'Aceptar'.
Los usuarios experimentados pueden desear cambiar algunas de las configuraciones avanzadas en el chip. Todo esto se realiza desde la pantalla
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:
'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'.
tableros de 'aguas abajo' son controladas por una junta de 'corriente arriba', pero la información puede fluir dentro o fuera de ellos.
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.
Consiste en:
• un PIC Multiprogramador,
• una placa de sensor equipado con un sensor de ECG,
• un teclado,
• una junta RS232 (para facilitar la comunicación con el
PC).
móvil.
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).
IMPORTANTE - NO conecte el terminal del tornillo de 14V a 5V 'aguas abajo' terminal de tornillo.
• 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;
• donde el PIC usa un oscilador interno, todos los ocho bits de puerto A se pueden utilizar para la operación de E / S;
• (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.
programar, 'Flowcode 7' se encarga de las complejidades, sin ser visto por el usuario.
parte 7
curso Fundamentos
Parte 7 Contenido
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;
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
Hora: Se le llevará alrededor de 60 horas para llevar a cabo todas las hojas de trabajo en este campo.
Abreviatura Sentido
ADC UN nalogue a re iGITAL C onverter
GND suelo
Maleficio hexadecimal
IDC yo nsulation re isplacement C onnector
JPEG J oint PAG icture mi Xpert sol rupo (estándar para las imágenes)
XTAL cristal
ZIF Z ero yo nsertion F orce
• Las comillas simples se utilizan cuando una cadena de un cuadro de diálogo se menciona en el texto:
Objetivos de aprendizaje
• a los iconos de configuración de decisión y por lo tanto añadir bifurcación condicional a un programa;
• para crear registradores de datos, utilizando datos de 8 bits y 10 bits desde el ADC;
hardware de control A1
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) •
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 •
Técnicas de programación B1
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
retrasos y tiempos •
interrupciones •
La lógica y aritmética
arrays •
operadores de comparación: =, no =, <,>, <o
•
=,> o =.
operaciones aritmeticas •
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 •
Documentación C2 Proyecto
Llave
Símbolo Sentido
Control de versiones
Halifax
HX1 5BA
www.matrixtsl.com
CP4375