Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. PORTADA
Sistemas Embebidos
5to “A”
Resumen Parcial 1
AMBATO - ECUADOR
2020
8
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
2. INTRODUCCIÓN
En el presente documento se lleva a cabo la elaboración del resumen teórico y práctico que se
ha desarrollado en cada uno de los temas planteados dentro de las unidades de estudio, desde lo
que son los sistemas digitales hasta el estudio de diseño en VHDL y sistemas embebidos
mediante el uso de FPGA de National Instruments, todo esta recopilación cuenta con una gran
cantidad de información resumida de los temas antes mencionados, ejercicios propuestos por el
docente y ejercicios propuestos por los alumnos todos estos ejercicios cuentan con su respectiva
resolución, al final del mismo se podrá encontrar unos reactivos que ayudaran alumno a
comprender los temas correspondientes a la materia de Sistemas Embebidos (VLSI).
El estudio de los sistemas digitales abarca varios aspectos los cuales son fundamentales para el
desarrollo de estos; en los cuales se encuentran prioritariamente los sistemas digitales
combinacionales, secuenciales, autómatas finitos. Dentro de un sistema digital se encuentran los
micro dispositivos programables, los cuales se diferencian los microprocesadores y
microcontroladores a su vez se destaca la presencia de los sistemas digitales reconfigurables o
aquellos que utilizan FPGA.
Se define los modelos en los que puede ser contemplado un autómata finito, los cuales son, el
modelo de Mealy y de Moore. Estos toman importancia cuando son utilizados para diseñar
sistemas secuenciales síncronos, de tal manera que se permita aclarar las semejanzas
y diferencias entre ambos modelos. Presentamos la fundamentación teórica con explicaciones
concisas de las máquinas de estado, Tipos de detectores de códigos, señal Síncrona y Asíncrona,
y el proceso de diseño. Para los diseños se considera fundamental definir el tipo de detector de
código relacionado a los requerimientos presentados, si es continuo o segmentado
posteriormente el modelo del autómata Mealy o Moore.
Los modelos de Mealy y Moore se componen por una estructura diseño que establecen los
parámetros o guías que deben cumplir para ser implementados, a esto se lo denomina como
procesos de diseños, es parte esencial para la implementación empezamos diseñando el
diagrama de estados de acuerdo a los parámetros de inicio, la tabla de diseño que tiene su
relación con los datos del diagrama de estados, posteriormente encontramos las ecuaciones o
funciones de estados y procedemos a realizar su diagrama esquemático para posteriormente
realizar la simulación o implementación del circuito. una de las aplicaciones de los autómatas
finitos o maquinas secuenciales pueden ser utilizadas para desarrollar contadores complejos,
detectores de código a si también como generadores y analizadores de secuencia todo esto se
analiza con ejemplos prácticos para facilitar la comprensión de la utilidad de las maquinas
secuenciales.
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
También se detalla el uso de los sensores y los actuadores por lo que en este documento se va a
explicar cada uno de estos y sus principales características, debemos tener en cuenta
que sensorizar es un método por medio del cual recolectamos datos en tiempo real, así como
también podemos decir que los actuadores se componen de un conjunto de sensores, los cuales
poseen dispositivos de entrada y dispositivos de salida, se puede decir también que algunos
sensores necesitan hacer un procesamiento que se llama acondicionamiento de señal y se puede
realizar por medio de software o hardware.
Dentro de lo que son las comunicaciones, haciendo énfasis en los temas ya referidos
anteriormente. Es importante conocer cada uno de estos ya que cada uno presta diferente
funcionalidad, de esta manera son capaces de satisfacer cualquier tipo de circuito digital que se
requiera. Además, se definirá cada uno de los temas, las características, como es le
comunicación y como funciona cada uno de ellos. Así también como se realiza las simulaciones,
en Arduino, proteus y Pic C Compiler con la respectivas Librerías.
Los circuitos Integrados Digitales programables están desarrollados con componentes lógicos y
aplicaciones digitales más complejas, las herramientas de diseños van cambiando a través del
tiempo dejando obsoletas e ineficientes, por lo cual, desarrollan herramientas más útiles,
originándose así los HDL más conocidos como Lenguajes de Descripción de Hardware y dentro
de esto se encuentra los VHDL, el IEEE desarrollan el lenguaje VHDL que viene de VHSIC
HDL, o sea Lenguaje de Descripción de hardware para circuitos integrados de muy alta
velocidad. Este lenguaje de descripción de hardware es una herramienta que permite describir la
estructura y comportamiento de un sistema para lograr una especificación, documentación y
simulación del mismo antes de su realización real.
10
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
que permiten al diseñador definir el problema de una forma abstracta, utilizando a los
ordenadores para materializar la idea empleada.
Explicaremos los ejercicios planteados en clase, en los cuales realizamos los circuitos como un
convertidor, un mod 16 además de estos también realizamos un sumador con características
simples también realizamos un mod 10 y además de esto un detector de código, estos ejercicios
serán explicados paso a paso en el siguiente documento, para comprender de mejor manera los
ejercicios propuestos en clase también realizaremos y diseñaremos ejercicios propuestos con los
cuales se explicara de mejor manera el funcionamiento del programa ISE Desing Suite.
El diseño de una lógica programable en VHDL sigue un flujo de diseño el cual está compuesto
por: la entrada de diseño que corresponde a la descripción del sistema a implementar el cual se
inicializar las entradas y salidas de variables a utilizar y en la arquitectura realizar el modelado
de acuerdo a las condiciones de funcionamiento del sistema digital a implementar, la síntesis
que permite realizar una revisión de sintaxis del código fuente el cual genera un reporte de
advertencias y errores en caso de existir, banco de prueba (Test Benc Module) sirvepara poder
simular el circuito en donde se definen los variables y estímulos (señales de reloj, contadores,
bits, etc. ) de entrada, las salidas serán en función del circuito
11
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
3. ÍNDICE GENERAL
1. PORTADA ................................................................................................................................... 8
2. INTRODUCCIÓN ....................................................................................................................... 9
3. ÍNDICE GENERAL .................................................................................................................. 12
4. GLOSARIO DE TÉRMINOS .................................................................................................... 15
1. Sistemas Digitales ................................................................................................................... 15
2. Autómatas Finito ..................................................................................................................... 15
3. Detectores de Código .............................................................................................................. 16
4. Microcontroladores ................................................................................................................. 16
5. Librerías, Fusibles e Interrupciones. ......................................................................................... 9
6. Comunicaciones ........................................................................................................................ 8
7. Comunicación Inalámbrica Wifi ............................................................................................... 8
8. Proceso de programación HDL y VHDL. ................................................................................. 9
9. Modelos y Metodología de Diseño ........................................................................................... 8
5. DESARROLLO POR TEMAS .................................................................................................... 8
a. Fundamentación Teórica ........................................................................................................... 8
1. Sistemas Digitales ..................................................................................................................... 8
2. Autómatas finitos .................................................................................................................... 12
Máquinas de Mealy ........................................................................................................................ 16
Máquina de Moore ......................................................................................................................... 16
3. Microcontroladores ................................................................................................................. 17
Librerías, Fusibles e Interrupciones ............................................................................................... 29
4. Control DIO, AIO, Sensores y Actuadores ............................................................................. 35
5. Comunicaciones ...................................................................................................................... 39
6. Comunicación Inalámbrica Wifi ............................................................................................. 47
7. Modelos y Metodología de Diseño VHDL ............................................................................. 54
8. Creación de un Proyecto ......................................................................................................... 63
10. Convertidor de código ............................................................................................................. 71
MODELADO ESTRUCTURAL ............................................................................................... 72
Componentes de una descripción estructural .......................................................................... 72
Procesos de instanciación........................................................................................................... 73
Instanciación directa................................................................................................................. 73
Declaración de componentes ......................................................................................................... 74
Atributos – Uso de Event para señal CLK ..................................................................................... 75
Sistemas Embebidos con dispositivos FPGA con National Instruments ....................................... 77
12
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
13
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
14
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
4. GLOSARIO DE TÉRMINOS
1. Sistemas Digitales
2. Autómatas Finito
15
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
3. Detectores de Código
4. Microcontroladores
16
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
9
6. Comunicaciones
HDL: Lenguaje de Descripción de Hardware del software que conecta con la elaboración de
(HDL) Método basado en texto para describir el páginas web en sus diferentes versiones, define
hardware digital que sigue una determinada una estructura básica y un código (denominado
sintaxis para representar objetos de datos y código HTML). [1]
estructuras de control.[1] LAMP SERVER: LAMP server es un
VHDL: Lenguaje de descripción de hardware protocolo que permite crear una interfaz web a
desarrollado por el Departamento de Defensa de través de cuatro herramientas importantes:
Estados Unidos para documentar, simular y servidor de apache, My sql y php todos estos en
sintetizar sistemas digitales complejos. [1] base al sistema operativo Linux.[1]
FPGA: Estos son unos diminutos dispositivos BASE DE DATOS: Una base de datos permite
semiconductores que tienen la capacidad de almacenar gran número de información de una
programarse para realizarse acciones muy forma organizada para su futura consulta,
concretas de forma rápida y eficiente.[1] realización de búsquedas, nuevo ingreso de
ENTIDAD: Una entidad es la abstracción de un datos, etc. [1]
circuito, ya sea desde un complejo sistema IDE: Un entorno de desarrollo integrado (IDE)
electrónico o una simple puerta lógica. [1] es un sistema de software para el diseño de
ARQUITECTURA: Una arquitectura describe aplicaciones que combina herramientas del
el funcionamiento de la entidad a la que hace desarrollador común en una sola interfaz gráfica
referencia el funcionamiento de la entidad a la de usuario (GUI). [1]
que está asociada utilizando las sentencias y
expresiones propias de VHDL. [1]
HTML: Es un estándar que sirve de referencia
9. Modelos y Metodología de Diseño
1. Sistemas Digitales
Un sistema digital es el conjunto de dispositivos para el procesado de señales físicas que
serán convertidas en señales digitales es decir señales con valores discretos. El sistema consta
de tres etapas en todo el procesado de datos [1]:
Entrada (señal física); Proceso (procesamiento de datos); Salida (datos en formato digital)
[Cando. E, Contreras. S, Pérez. C, Soto. D].
Sistemas Combinacionales
En este tipo de sistema digital la salida es dependiente de la combinación de sus entradas.
Se destaca por la ausencia de la señal Reloj, es decir no tienen estados [1].
El modelo matemático representativo de los sistemas combinacionales es [1]:
“Un circuito secuencial es un tipo de circuito lógico. Envía una salida que depende de la
entrada actual, además de la historia de la entrada” [5]; es decir, es cuando el nivel lógico de
la salida depende de los estados. Este tipo de sistemas necesitan de una memoria y una señal
de reloj (CLK) [Cando. E, Contreras. S, Pérez. C, Soto. D].
Modelo matemático
𝒚 = 𝒇(𝑸𝒄𝒍𝒌)
Una característica importante en los sistemas secuenciales es que, estos no poseen entradas
[Cando.E, Contreras.S, Pérez.C, Soto.D].
Síncrono
La señal de reloj afecta a todas las etapas del circuito al mismo tiempo; entender de mejor
manera este sistema se presenta en la siguiente imagen [5]:
Asíncrono
Sus variables de estados no cambian simultáneamente. Y hay que recordar que la señal de
reloj sólo se aplica al 1er biestable, para entender de mejor manera este sistema se presenta en
la siguiente imagen [5]:
Autómatas Finitos
También conocidos como máquinas secuenciales, este tipo de sistemas se caracterizan por el
hecho de que su salida no sólo depende de los estados sino también del valor lógico de las
entradas del sistema. Se les denomina [1]:
Modelo matemático
𝒚 = 𝒇(𝒙, 𝑸𝒄𝒍𝒌)
Es importante conocer que existen 2 tipos de máquinas secuenciales:
Micro Dispositivo
Es un microprocesador puede llevar a cabo operaciones aritméticas y lógicas, desplazar datos
de un lugar a otro y tomar decisiones basándose en ciertas instrucciones [5].
Micro Dispositivo (Programables)
Microprocesador
Es aquel dispositivo cuyo propósito es solventar las exigencias del usuario mediante su
previa programación; este dispositivo está limitado por su arquitectura a su vez es de
carácter abierta la cual le permite jugar con sus componentes; entender de mejor manera el
funcionamiento de un microprocesador se presenta en la siguiente imagen [5]:
Microcontrolador
Es aquel dispositivo que se encarga de recibir información desde los periféricos de entrada
y enviar por los periféricos de salida, a su vez consta de una arquitectura cerrada la cual no
le permite jugar con los componentes entender de mejor manera el funcionamiento de un
microprocesador se presenta en la siguiente imagen [5] .
2. Autómatas finitos
Máquina de Mealy
Definición
Una máquina Mealy es una máquina de estado finito cuyos valores de salida están
determinados tanto por su estado actual como por las entradas actuales [2]
Esquema
El autómata finito de Mealy es un tipo de máquina de estados finitos en el cual se obtiene una
salida en cada transición de la combinación de su estado interno y una entrada definida. [27]
Diagrama de estado
Desarrollando diagramas de manera manual o con el uso del software de simulación Boole
Deusto observando sus transiciones de secuencia en base al tipo de detector de código [1]
Definición
Es una máquina de estado finito cuyos valores de salida están determinados solo por su
estado actual. [2]
Esquema
Toda máquina finita de Moore es una definición alternativa de máquinas secuenciales en los
cuales los valores de salida en un momento dado no dependerán solo de los valores de
entrada, si no también dependerá del estado anterior, en este caso la función de salida solo
depende del estado en el que este se encuentre [26]
Diagrama de estado
Desarrollando diagramas de manera manual o con el uso del software de simulación Boole
Deusto observando sus transiciones de secuencia en base al tipo de detector de código. [27]
Para el diseño de los autómatas finitos se debe considerar los siguientes aspectos:
Aspectos para considerar
➢ Características de operación
Comenzamos con la declaración formal del problema, estableciendo exactamente lo
que nos solicita el enunciado
➢ Modelo de la máquina
Esto implica el tipo de modelo que se diseñara ya sea Mealy o Moore
Proceso de Diseño
Mealy
La salida va a depender tanto de la entrada como del estado
Moore
La salida depende solo del estado
➢ Contadores complejos
➢ Generadores y analizadores de secuencia
➢ Detectores de código
Detectores de código
El detector de código nos sirve para comparar una secuencia con el código que se ha
dispuesto para que se active una salida en dependencia de cómo se haga el diseño
Comportamiento:
Continuo
También denominado como detector de secuencia con superposición, es un detector de
secuencia que permite la superposición, los bits finales de una secuencia pueden ser el
comienzo de otra secuencia, para ello se toma en consideración todos los datos de la
secuencia presentada para ser analizada de manera continua es decir tomando bit a bit tras
cada salida formando un código para analizar, es decir en caso de tener un código de 2 bits se
debe analizar de la secuencia 2 bits tomando el bit final como inicio de la siguiente
agrupación a analizar siempre que se forme la combinación correcta [1]
Ejemplo. – Código: 10
Secuencia: 010111011011
Segmentado
Denominado también como detector de secuencia sin superposición, en el cual el último bit
de una secuencia no se convierte en el primer bit de la secuencia siguiente aquí se restablece
al estado de inicio cuando se ha detectado la secuencia, para generar una salida se analiza los
datos de la secuencia de manera que se los agrupa en función del número de bits del código
así solamente el ultimo bit de cada grupo genera la salida sea cero o uno en relación al
código, por lo cual los bits antecesores al final tendrán el valor de cero y solamente el bit final
determinara la salida teniendo por ejemplo un código de 10 para lo cual la secuencia será
dividida en grupos de 2 bits así el primer bit será cero y el segundo bit será el que genere el
valor de la salida en dependencia al anterior para formar la combinación correcta. [1]
Ejemplo. –
Código: 10
Secuencia: 010111011011
Ilustración 19 Detector Segmentado
Antes de exponer una técnica de diseño de contadores específica, vamos a comenzar con una
definición general de circuito secuencial o máquina de estados: un circuito secuencial está
formado por una etapa de lógica combinacional y una sección de memoria (flip-flops), como
se muestra en la ilustración 1. En un circuito secuencial sincronizado, hay una entrada de
reloj en la etapa de memoria, tal como se indica. [1]
Máquinas de Mealy
En una máquina de Mealy:
• El estado siguiente depende de la entrada y del estado actual.
• La salida depende de la entrada y del estado actual. [28]
Máquina de Moore
En una máquina de Moore:
• El estado siguiente depende de la entrada y del estado actual.
• La salida depende de exclusivamente del estado actual.
Toda máquina de Moore es un caso particular de una máquina de Mealy. [28]
Ilustración 22: Máquina de Moore [28]
Pasos dados en el diseño de este contador. En general, estos pasos se pueden aplicar a
cualquier circuito secuencial.
1. Especificar la secuencia del contador y dibujar un diagrama de estados. [29]
2. Obtener la tabla del estado siguiente a partir del diagrama de estados.
3. Desarrollar una tabla de transiciones que muestre las entradas del flip-flop requeridas
para cada transición. La tabla de transiciones es siempre la misma para cada tipo de
flip-flop. [29]
4. Transferir los estados J y K de la tabla de transiciones al mapa de Karnaugh. Utilizar
un mapa de Karnaugh para cada entrada de cada flip-flop. [29]
5. Formar los términos productos a partir de los mapas para generar una expresión
lógica, para cada entrada de los flip-flops. [29]
6. Implementar la expresión con lógica combinacional y conectarla a los flip-flops para
crear el contador. [29]
3. Microcontroladores
Definición y estructura de Arduino IDE Y PIC C COMPILER
Arduino
Según Arduino.cc Indica que: Arduino es una plataforma electrónica de código abierto
basada en hardware y software fáciles de usar. Las placas Arduino pueden leer entradas y
convertirlo en una salida, activando un motor, encendiendo un LED, publicando algo en
línea, etc. [30]
Según Proserquisa Indica que: Arduino es un micro controlador de código abierto, una
sencilla y económica placa con entradas y salidas, analógicas y digitales, en un entorno de
desarrollo en el lenguaje de programación Processing basado en Java con una fácil curva de
aprendizaje. [31]
Según Pic C Compiler indica que: PIC C Compiler es un inteligente y muy optimizado
compilador C que contienen operadores estándar del lenguaje C y funciones incorporados en
bibliotecas que son específicas a los registros de PIC, proporcionando a los desarrolladores
una herramienta poderosa para el acceso al hardware las funciones del dispositivo desde el
nivel de lenguaje C. [34]
ARDUINO IDE
Plataforma de desarrollo de proyectos de Microelectrónica.
Arduino ofrece Hardware ofrece Placa, Módulos y Shields.
En software permite programar los parámetros de hardware. [35]
PIC C COMPILER
ARDUINO IDE
Ilustración 24 Microcontroladores
Ilustración 25 Diferencias entre ARDUINO y Pic c compiler
INTERFAZ DE HARDWARE
Productos Arduino
Explore la gama completa de productos oficiales de Arduino, que incluyen placas,
módulos (un factor de forma más pequeño de las placas clásicas), shields (elementos que se
pueden conectar a una placa para darle características adicionales) y kits. [36]
Placas
Arduino es un proyecto y no un modelo concreto de placa, lo que quiere decir que
compartiendo su diseño básico se puede encontrar con diferentes tipos de placas. En la
actualidad existen varias formas, tamaños y colores para las necesidades del proyecto en el
que se esté trabajando, las hay sencillas o con características mejoradas, Arduino orientados
al Internet de las Cosas o la impresión 3D y, por supuesto, dependiendo de estas
características por lo tanto el costo variara. A continuación, se mostrará en las ilustraciones
5,6,7,8 los diferentes tipos de Arduinos básicos, internet de las cosas, para educación y
retirado que existen a la venta en la página oficial de Arduino. [36]
Ilustración 27 Placas de Arduino Basicos [36]
INTERFAZ DE SOFTWARE
PIC C COMPILER
Mientras se compila el programa que se está utilizando se guarda como archivo. .hex
Dentro de la interfaz de software del Pic c compiler no tiene case sensitive por el contrario
del Arduino IDE que si es sensible al reconocimiento de mayúsculas o minúsculas .
El compilador CCS incorpora un fichero(driver) para manejar fácilmente una pantalla LCD.
El archivo es LCD.c y debe llamarse con un #include:#include LCD.c [37]
INTERFAZ DE HARDWARE
El grabador de PIC, quien se encarga de enviar el programa hacia la memoria interna del PIC,
es decir realiza la transferencia del programa de la PC hacia el PIC, esta herramienta tiene su
complemento que es la parte física, es decir un circuito físico sin el cual no sirve de nada. El
grabador es una tarjeta electrónica, que posee entre otros elementos un zócalo para insertar en
PIC, un puerto de comunicaciones, que puede ser serial, USB, en algunos casos paralelo. [38]
Existen diferentes modelos de grabadores, desde el punto de vista del puerto pueden ser
serial o paralelo, desde el punto de vista de la alimentación eléctrica, pueden ser con
alimentación o sin alimentación, pueden ser universales o no universales, los grabadores
actuales son universales, usan el puerto USB y no requieren alimentación externa adicional,
es decir toman energía del mismo puerto USB de la PC, en la siguiente figura se observa un
grabador de PIC universal, que utiliza como parte de su circuito a otro PIC que normalmente
es el 18F2550. [38]
Ilustración 40 Grabador de PIC universal sin Alimentación interna que Logra la Comunicación Serial [38]
INTERFAZ DE SOFTWARE
ARDUINO
Ya instaladas las librerías se procede a seleccionar a placa de Arduino que se desee utilizar.
PIC C OMPILER
Librerías
Las librerías son archivos compilados que ayudan a los programas para que obtengan más
funciones. Estas funciones controlan el hardware y agrega funciones de procesamiento al
software.
Ilustración 47:Fusibles
Interrupciones
Es una función asociada a un evento o programa. Este se ejecuta cuando el evento se genera.
Pic C Compiler
Communications
Se observa la ventana con el código donde se va creando directamente los métodos o
directivas de configuración.
Ilustración 51:Comunicación-Código
Igualmente se tiene la página de opciones de comunicación en donde podemos ir
configurando de acuerdo con lo que deseemos:
Ilustración 52:Comunicación-Opciones
Ilustración 53:SPI-LCD
Times
En la ventana Times podemos observar las siguientes opciones, donde se puede configurar el
tiempo.
Ilustración 54:Times
Analog
Venta de opciones:
Ilustración 55:Analog-Opciones
Ventana de código:
Ilustración 56:Analog-Código
Si nos dirigimos a la ventana de drivers podemos elegir con que elemento deseamos
trabajar, como ejemplo una pantalla LCD o un teclado matricial.
Ilustración 57:Drivers
Header Files (Librerías de Software)
Esta opción nos permite elegir librerías para software, la cual nos habilita más funciones:
Por ejemplo, librerías float (datos flotantes), math (funciones matemáticas), stdio (realizar
capturas de texto o impresiones de texto en pantallas de manera más fácil).
LCD Options
En la ventana de LCD se elige el modelo a gusto del programador.
Interrupciones
La ventana de opciones de interrupciones nos permite escoger el tipo que deseemos.
Ilustración 60:Interrupciones-Opciones
Nos lanza el siguiente código, que esta insertado en el archivo .c antes del main, se declara la
librería y el método, también nos aparece el permiso para usar interrupciones ENABLE:
Una señal digital es una señal que existe en uno de dos estados: alta o baja, abierta o cerrada,
encendida o apagada. Un dispositivo de entrada y salida digital (DIO) es un hardware que
envía o recibe estas señales digitales. Los dispositivos DIO generalmente se construyen
alrededor de relés simples como los relés de láminas. Estos relés normalmente están abiertos,
pero se cierran cuando se les envía energía. Cuando el relé se cierra, envía una señal que
comunica un mensaje o activa otro dispositivo. Los dispositivos DIO pueden ser solo de
entrada, proporcionando entrada de sensores; solo salida, envío de señales para activar un
dispositivo; o bidireccional, proporcionando señales de entrada y salida [1].
Entrada digital: una entrada digital detecta si un voltaje está por encima o por debajo de un
umbral específico. Si el voltaje es mayor que algún valor, la computadora detectará la entrada
digital como alta y establecida en 1. Si el voltaje es menor que algún valor, la computadora
detectará la entrada digital como baja y limpia en 0 [4].
Salida digital: una salida digital le permite controlar un voltaje con una computadora. Si la
computadora indica que la salida sea alta, la salida producirá un voltaje (generalmente
alrededor de 5 o 3.3 voltios). Si la computadora indica que la salida sea baja, está conectada a
tierra y no produce voltaje [4].
Control AIO
AIO (Analog Input - Output)
Un dispositivo AIO es un hardware que envía o recibe señales de entrada y salida análoga,
básicamente es el complemento del control DIO ya que estos trabajan conjuntamente.
Entradas analógicas: una señal eléctrica analógica es aquella en la que los valores de la
tensión o voltaje varían constantemente y pueden tomar cualquier valor. En el caso de la
corriente alterna, la señal analógica incrementa su valor con signo eléctrico positivo (+)
durante medio ciclo y disminuye a continuación con signo eléctrico negativo (–) en el medio
ciclo siguiente [5].
Salida análoga: en realidad los microcontroladores no pueden generar salidas análogas, pero
pueden simularla por medio de una técnica conocida como PWM: Modulación por Ancho de
Pulso (en inglés Pulse-Width Modulation) [6].
Esta técnica consiste en hacer fluctuar rápidamente el estado de un pin digital, cambiando su
nivel de LOW a HIGH, o sea de 0v a 5v a alta velocidad y controlando el tiempo que
permanece encendido o apagado. Este tiempo es conocido como ciclo de trabajo o “duty
cycle”. Por ejemplo, un ciclo de trabajo de 100% corresponde con una salida constante de 5v,
mientras que un ciclo de trabajo de 50% corresponde con una salida de 2.5v [6].
La modulación por ancho de pulso permite, por ejemplo, cambiar la luminosidad de un LED
de manera gradual o controlar la velocidad de un motor de corriente continua. Arduino cuenta
con la función analogWrite () que permite generar modulación por ancho de pulso en los
pines digitales 9, 10 y 11 en las placas que usan el Atmega8 y en los pines 3, 5 ,6, 9, 10 y 11
en las nuevas placas que usan Atmega168/328 [6].
Sensores y actuadores
Sensor
Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas
variables de instrumentación, y transformarlas en variables eléctricas. Las variables de
instrumentación pueden ser, por ejemplo: temperatura, intensidad lumínica, distancia,
aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH,
etc. Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una
capacidad eléctrica (como en un sensor de humedad o un sensor capacitivo), una tensión
eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc [2].
Los sensores se pueden clasificar en función de los datos de salida en:
− Digitales
− Analógicos
Y dentro de los sensores digitales, estos nos pueden dar una señal digital simple con dos
estados como una salida de contacto libre de tensión o una salida en bus digital [2].
Actuadores
Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica
en la activación de un proceso con la finalidad de generar un efecto sobre elemento externo.
Este recibe la orden de un regulador, controlador o en nuestro caso un Arduino y en función a
ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula
[2].
Existen varios tipos de actuadores como son:
− Electrónicos
− Hidráulicos
− Neumáticos
− Eléctricos
− Motores
− Bombas
Periféricos
Periférico es la denominación genérica para designar al aparato o dispositivo auxiliar e
independiente conectado a la unidad central de procesamiento o en este caso a Arduino. Se
consideran periféricos a las unidades o dispositivos de hardware a través de los cuales
Arduino se comunica con el exterior, y también a los sistemas que almacenan o archivan la
información, sirviendo de memoria auxiliar de la memoria principal [2].
Ejemplos de periféricos:
− Pantallas LCD
− Teclados
− Memorias externas
− Cámaras
− Micrófonos
− Impresoras
− Pantalla táctil
Procesamiento de Sensores
➢ Acondicionamiento de señal
➢ Hardware o Software
Comunicaciones
– Canal: es el medio a través del cual se transmite el mensaje. Ejemplos: puede ser un medio
artificial, como las cartas o un cd, o uno natural, como el aire [3].
Medios de Comunicación
− Medio Guiado
− Medio Inalámbrico
Por ejemplo, en los hogares nos podemos conectar a otros equipos mediante un módem, que
transforma los unos y ceros que usa el ordenador en sonidos para enviarlos por la línea de
teléfono. En los casos más modernos la conexión a Internet se realiza mediante el sistema de
banda ancha (ADSL o RDSI), mediante el cual se transmite por la misma línea sonidos y
datos a frecuencias distintas, es decir, como si se enviasen en diferente color [7].
Ejemplos de comunicaciones Cableada
− Comunicación ETH
− Comunicación Serial
− Comunicación I2C
− Comunicación SPI
Medio Inalámbrico
Una onda consiste en una perturbación que se propaga a través del espacio. Por ejemplo, una
membrana que vibra transmite su movimiento de vaivén al aire, y éste transmite esa vibración
mediante contracciones y expansiones en las moléculas. Esto constituye el sonido, y este tipo
de ondas se denominan ondas mecánicas, pues necesitan un medio material (aire, agua, metal,
...) para poder propagarse [7].
− Comunicación RF
− Comunicación WIFI
− Comunicación Bluetooth
− Comunicación Zigbee
5. Comunicaciones
Cada dato se transmite bit a bit, un bit a la vez, por lo tanto, se hace mucho más lenta, pero
tiene la ventaja de necesitar menos líneas y las distancias a las cuales se puede transferir la
información son mayores
Se requiere adicionar una línea que contenga pulsos de reloj que indiquen que el dato que
viaja en la otra línea de datos es válido; la duración del bit está determinada por la duración
del pulso de sincronismo. [43]
En esta comunicación los pulsos de reloj no son necesarios y se utilizan otros mecanismos
para realizar la transferencia de datos. [43]
El pic 16F887 solo tiene un puerto UART físico, es por eso que solo tiene un solo RX y un
solo TX para realizar la comunicación serial. Si necesitamos adicionar más puertos de
comunicación serial con pic, podremos hacerlo con ayuda del PIC C Compiler creando
UARTS VIRTUALES
Comunicación I2C
Este tipo de comunicación puede ser de gran ayuda cuando se van a utilizar varios
microcontroladores para almacenar un registro de datos hacia una sola memoria o cuando se
va a mostrar información en una sola pantalla. [44]
Para poder reconocer cada uno de los dispositivos conectados a los DOS hilos del bus I2C, a
cada dispositivo se le asigna una dirección. Así en este tipo de comunicaciones el MAESTRO
es el que tiene la iniciativa en la transferencia y este es quien decide con quien se quiere
conectar para enviar y recibir datos y también decide cuando finalizar la comunicación. Los
DOS hilos del BUS interfaz de comunicación I2C PIC son líneas de colector abierto donde
una de las líneas lleva la señal de reloj y es conocida como (SCL), y la otra línea lleva los
datos y es conocida como (SDA). [44]
La conexión I2C entre un maestro y varios esclavos se muestra a continuación:
Para evitar la contención del bus, los dispositivos pueden forzar la línea a nivel bajo, pero
nunca a nivel alto. Se evita así que un dispositivo trate de forzar el bus a nivel alto mientras
que otro trata de ponerlo a nivel bajo
Para usar el puerto SPI en Arduino el IDE Standard proporciona la librería "SPI.h" que
contiene las funciones necesarias para controlar el hardware integrado de SPI.Asimismo, el
entorno de programación de Arduino define las constantes SCK, MOSI, MISO, y SSpara los
pines de SPI. Usar estos "alias" en nuestro código hace que sea más fácil de intercambiar
programas entre modelos placas.
Las funciones básicas para hacer funcionar el bus SPI son las siguientes:
1 SPI.begin(); // Inicia el bus SPI
2 SPI.transfer(c); // Envía un byte
3 SPI.attachInterrupt(); // Activar la interrupción para recibir datos
También se dispone de otras funciones para configurar las opciones del bus SPI.
Vemos que el MASTER colocará en bajo el pin SS del Slave con el que se quiere comunicar.
Seguidamente, el master genera una señal de reloj para sincronizar el envío y recepción de
datos.
Funciones de CCS para SPI
setup_spi (modo), setup_spi2 (modo): configura el SPI de hardware en el modo especificado.
El modo configura si es maestro o esclavo, la velocidad del reloj y la configuración cambios
de reloj
spi_data_is_in (), spi_data_is_in2 () – Devuelve TRUE si el búfer de recepción SPI tiene un
byte de datos.
spi_write (valor), spi_write2 (valor): transmite el valor a través de la interfaz SPI. Esto hará
que los datos se vacíen en el pin SDO spi_read (valor), spi_read2 (valor): realiza una
transacción SPI, donde el valor se registra en el pin SDO y se devuelven los datos
sincronizados en el pin SDI.
Radiofrecuencia RF
Para este tipo de comunicación solo basta con conectar el módulo RF al Pin RX o TX del
Arduino dependiendo si es transmisor y receptor. Para este ejemplo usaremos un Arduino el
cual transmitirá seriamente información a través del RF transmisor, el módulo receptor está
conectado a un conversor USB serial (Puedes usar otro Arduino en lugar del conversor) y
visualizaremos los datos des de la pc. [47]
Una de las librería más comunes y eficientes es la VirtualWire desarrollado por Mike
McCauley, con esta librería vamos a trabajar los próximos ejemplos del tutorial
Necesitamos descargar la librera VirtualWire e importarla a nuestro IDE Arduino.
A continuación, explicamos las funciones principales de la librería:
• void vw_setup(uint16_t speed)
Inicializar el software VirtualWire, como parámetro hay que indicarle la velocidad de
operación, que representa los bits por segundo para la transmisión RF
• void vw_set_tx_pin(uint8_t pin)
Estable el pin IO digital por donde se va a transmitir los datos
• void vw_set_rx_pin(uint8_t pin)
Estable el pin digital IO por donde se va a recibir datos.
• void vw_rx_start()
Empieza a escuchar los datos provenientes por el pin_rx, es necesario llamar a esta
función para poder recibir los datos
Comunicación por RF entre microcontroladores PIC
un módulo de Radio Frecuencia (RF) modelo nRF24L01 de modo que permita establecer una
comunicación RF efectiva y fiable entre microcontroladores PIC18F. Concretamente, se
destina este proyecto al desarrollo de asignaturas sobre el uso y programación de
microcontroladores.
Bluetooth
Bluetooth es una especificación industrial para Redes Inalámbricas de Área
Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos
mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales
objetivos que se pretenden conseguir con esta norma son:
• Facilitar las comunicaciones entre equipos móviles.
• Eliminar los cables y conectores entre estos.
• Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización
de datos entre equipos personales. [48]
Antes de que el HC-05 funcione como un programador, debemos configurar el módulo para
que se comporte como lo esperamos. Debemos asegurarnos que el módulo tenga los
siguientes parámetros ajustados: En el caso de Arduino UNO con Optiboot: UART
configurada a 115200 baudios, 8 bits, 1 bit de parada, sin paridad
En el caso de Arduino Duemilanove / Decimilia: UART configurada a 56700 baudios, 8 bits,
1 bit de parada, sin paridad La Programación inalámbrica de Arduino por Bluetooth es una
buena alternativa cuando no tenemos a la mano la tarjeta para conectarla al puerto USB de la
computadora. Podemos convertir cualquier arduino en una placa inalámbrica, capaz de ser
programada a distancia mediante bluetooth. Incluso podemos utilizar solamente el
ATMEGA328 con el módulo bluetooth dentro de algún desarrollo. [49]
Los módulos de bluetooth HC-05 y HC-06 son módulos muy populares para aplicaciones
con microcontroladores. Se trata de dispositivos relativamente económicos y que
habitualmente se venden en un formato que permite insertarlos en un protoboard y cablearlo
directamente a cualquier microcontrolador, incluso sin realizar soldaduras. Para establecer
una conexión bluetooth es necesario utilizar los comandos HCI. [50]
Los comandos HCI permiten controlar las conexiones entre capas de enlace y otros
dispositivos bluetooth.
ZIGBEE
Es un conjunto de protocolos de alto nivel de comunicación, se utiliza para la radiodifusión
digital de datos. Esta basa en una tecnología basada en el estándar de la IEEE, el IEEE
802.15.4 , utiliza la banda ISM . [51]
Características
• Su bajo consumo.
• Su topología de red en malla.
• Su fácil integración (se pueden fabricar nodos con muy poca electrónica) [51]
Protocolos de ZigBee
Unos protocolos ayudan al nodo para empezar a transmitir y que luego vuelve aquedar en
reposo para ahorrar energía. El estándar seguido por los dispositivos ZigBee es el WPAN con
una transmisión basada en la norma IEEE 802.15.4-2003. [51]
Zigbee Soporta tres tipos de topologías de red:
Estrella: presenta larga vida útil como consecuencia del bajo consumo que requiere.
Malla: en la cual existen múltiples rutas para alcanzar un destino, obteniéndose alta
confiabilidad.
Árbol: es una topología del tipo Mesh-Star que encierra los beneficios de ambas. [10]
XBee
XBee es el nombre comercial del Digi de una familia de módulos de comunicación por radio
y están basados en el estándar zigbee [10]
Los módulos XBee funcionan a 3.3V y los pines no son tolerantes a 5V.
Desde Arduino podemos alimentar un módulo XBee, pero la comunicación serie en Arduino
es a 5V y en el módulo XBee es a 3.3V. [51]
Ilustración 18:XBEE conexión en Arduino [10]
Proteus
Es una comunicación inalámbrica mediante ondas más utilizada hoy en día. WIFI, también
llamada WLAN (wireless lan, red inalámbrica) o estándar IEEE 802.11. WIFI no es una
abreviatura de Wireless Fidelity, simplemente es un nombre comercial.
El WiFi es un mecanismo que permite, de forma inalámbrica, el acceso a Internet de distintos
dispositivos al conectarse a una red determinada. Esta tecnología, al tiempo que ofrece la
entrada a la gran red de redes, vincula diferentes equipos entre sí sin la necesidad de cables
[4].
Dicha conexión inalámbrica es posible gracias al uso de radiofrecuencias e infrarrojos,
empleados para la transmisión de información. Este hecho se traduce, irremediablemente, en
una limitación, ya que el usuario deberá encontrarse dentro de un alcance específico de
cobertura para poder disfrutar de la señal. Generalmente, ese radio varía entre los 5 y los 150
metros de distancia con respecto al aparato emisor de dicha señal [4].
Pese a ser ésta su definición técnica, WiFi hace referencia, realmente, a una marca comercial
impulsada por la WiFi Alliance, cuya finalidad fue crear un mecanismo de conexión
inalámbrica que fuera compatible para diversos dispositivos. De esta forma, nació el estándar
802.11, el más empleado para vincular equipos a distancia sin cables [4].
ALCANCE DE LAS REDES WI-FI
• El alcance de las redes Wi-Fi es limitado.
• Un punto de acceso usando 802.11b puede llegar hasta los 100 metros (exterior).
• Usando 802.11n se puede llegar hasta los 200 metros.
• El alcance puede extenderse hasta algunos kilómetros, usando antenas direccionales.
• Las redes que usan la banda de 5 GHz (802.11ac) poseen un menor alcance, aunque
menos interferencia [6].
Los puntos de acceso: son dispositivos que generan un set de servicio, que podría definirse
como una red wifi a la que se pueden conectar otros dispositivos. Los puntos de acceso
permiten, en resumen, conectar dispositivos de forma inalámbrica a una red existente. Pueden
agregarse más puntos de acceso a una red para generar redes de cobertura más amplia, o
conectar antenas más grandes que amplifiquen la señal [2].
Los repetidores inalámbricos: son equipos que se utilizan para extender la cobertura de una
red inalámbrica, éstos se conectan a una red existente que tiene señal más débil y crean una
señal limpia a la que se pueden conectar los equipos dentro de su alcance. Algunos de ellos
funcionan también como punto de acceso [2].
Con Wi-Fi podemos crear una conexión entre dos computadoras o entre una computadora y
un dispositivo portable, sin mediar un punto de acceso inalámbrico. Incluso de esa forma
podemos compartir una conexión de internet, funcionando uno de los equipos como un
router, AP o HotSpot. Este tipo de red virtual es llamada "red ad hoc" [3].
WIFI EN ARDUINO
A Arduino es posible añadirle conectividad Wifi de forma muy sencilla y ampliar las
posibilidades de este microcontrolador con comunicación inalámbrica Wifi.
Hay varias formas de añadir hardware Wifi a Arduino, ya sea con un shield, una breakout
board específica, con microcontroladores que tenga wifi integrado o con placas Arduinos que
tenga chip wifi en la misma placa. Veamos varios casos de estos tipos, como conectarlos y
usarlos, así como las librerías a usar en cada caso.
Buena parte del visto en Ethernet con Arduino, es válido para wifi, puesto que el protocolo
tcp/ip usado es el mismo y solo cambia el medio de comunicación. Trasladar un proyecto de
ethernet a wifi es sencillo, solo cambiando la librería para usar el hardware y adaptar los
comandos en función de los métodos que tengan las librerías.
El ESP8266 es un chip Wi-Fi de bajo coste con pila TCP/IP completa y capacidad de MCU
(Micro Controller Unit) producida por el fabricante chino Espressif Systems, con sede en
Shanghai.
El chip primero llegó a la atención de los fabricantes occidentales en agosto de 2014 con el
módulo ESP-01 [7].
Este pequeño módulo permite a los microcontroladores conectarse a una red Wi-Fi y realizar
conexiones TCP/IP sencillas utilizando comandos de tipo Hayes. Sin embargo, en ese
momento casi no había documentación en inglés sobre el chip y los comandos que aceptaba.
El precio muy bajo y el hecho de que había muy pocos componentes externos en el módulo
que sugiere que podría ser muy barato en el volumen, atrajo a muchos hackers para explorar
el módulo, el chip y el software en él [7].
El ESP8285 es un ESP8266 con 1 MB de flash incorporado, lo que permite dispositivos de un
solo chip capaces de conectarse a Wi-Fi. Muchos encapsulados del ESP8266 viene con 1 MB
de flash [7].
Ilustración 3 Módulo ESP2866 [7]
Características
Mongoose Firmware: Un firmware de código abierto con servicio gratuito en la nube [1].
El módulo WIFI ESP8266, que es algo muy parecido a los módulos Bluetooth y que al igual
que ellos incluyen toda la electrónica necesaria para la comunicación Radio Frecuencia en la
banda WFI, así como la pila TCP/IP y que se comunica con nosotros a través de un puerto
serie. De hecho, exactamente igual que los modos HC-06 y HC-05 se gobierna mediante
comandos AT y todo por un precio similar al de los Bluetooth [1].
Dentro de la gran cantidad de usos para este módulo caben destacar los siguientes:
• Electrodomésticos conectados.
• Automatización del hogar.
• Automatización de la industria.
• Cámaras IP.
• Redes de sensores.
• Wereables.
• IoT (Internet of Things o Internet de las Cosas)
IIoT (Industrial Internet of Things o Internet de las Cosas para el sector Industrial) [1]
SBC
Es una computadora de placa única se distingue de un kit de desarrollo tradicional o una placa
de evaluación porque constituye una plataforma completa de sistemas de computación en un
único paquete; es decir, ya tiene integrado todo el hardware y software necesario para
funcionar. [9]
Características
LAMP SERVER
LAMP es un acónimo de «Linux, Apache, MySQL y PHP», es decir, las cuatro tecnologías
que conforman esta plataforma que corre desde el lado del servidor. Gracias a LAMP puedes
comenzar a crear sitios web, aplicaciones, realizar testing de páginas dinámicas y estáticas,
entre muchas otras cosas más. En inglés se lo conoce como LAMP stack, es decir, una
apilación de servicios y tecnologías que nos permiten una gracias a la otra, conformar la
plataforma que necesitamos. Veamos ahora qué es cada cosa y cómo funciona el servidor
LAMP. [10]
Linux: es el sistema operativo base de la plataforma, y puede ser cualquier tipo de sistema
Gnu/Linux, donde podrán ejecutarse el resto de los componentes.
Apache: se refiere al servidor Apache, que es permite alojar y despachar las páginas web
dinámicas y estáticas que son ejecutadas desde el lenguaje PHP.
MySQL: es el servidor de base de datos más popular del mundo, el cual permite alojar datos
y despacharlos desde un motor de datos centralizado.
Desde sus inicios ha tenido una gran adopción debido a que es gratuito, funciona en cualquier
tipo de Linux, es fácil de instalar y ofrece estabilidad para montar cualquier tipo de
aplicaciones web en tiempo récord. En Windows se encuentran reemplazos de forma nativa
con el servidor WAMP, en tanto en la plataforma de Apple se le conoce comom MAMP. Una
alternativa moderna que surgió tras el nacimiento del servidor Nginx fue el stack LEMP, que
utiliza Nginx (pronunciado «enginex»), MariaDB y PHP o incluso Python/Ruby como
lenguajes de programación más modernos. Aplicaciones modernas que son 100%
compatibles con LAMP son: Wikimedia, WordPress, Joomla, PrestaShop, OpenCart,
Magento, Moodle, y casi cualquier app creada en PHP. [10]
MOSQUITTO
MÁQUINAS VIRTUALES
Es un contenedor de software perfectamente aislado que puede ejecutar sus propios sistemas
operativos y aplicaciones como si fuera un ordenador físico. Una máquina virtual se comporta
exactamente igual que lo hace un ordenador físico y contiene sus propios CPU, RAM, disco
duro y tarjetas de interfaz de red virtuales. Desde el punto de vista informático, una máquina
virtual es un software que crea un entorno virtual entre el sistema informático que la alberga y
el usuario final, permitiendo que se ejecute un software determinado. [12]
• VMware
• QEMU
• Parallels
• Virtual Box
• SandBoxies
7. Modelos y Metodología de Diseño VHDL
HDL
Definiciones de HDL
Definición 1
Según Díaz Fernández Blanca un HDL es un lenguaje de programación especializado que se
utiliza para definir la estructura, diseño y operación de circuitos electrónicos y electrónicos
digitales. Así, estos lenguajes hacen posible una descripción formal de un circuito
electrónico, y posibilitan su análisis automático y su simulación. [52]
Definición 2
Según Carvajal Andre el lenguaje de descripción de hardware (HDL) es un lenguaje
informático especializado que se utiliza para programar circuitos lógicos electrónicos y
digitales. La estructura, operación y diseño de los circuitos son programables usando HDL.
HDL incluye una descripción textual que consiste en operadores, expresiones, declaraciones,
entradas y salidas. [53]
Definición 3
Según Isacar Vela son lenguajes que describen el hardware de los sistemas digitales en forma
textual. Se parecen a los lenguajes de programación, pero están orientados específicamente a
la descripción de las estructuras y el comportamiento del hardware. [54]
➢ 1960
Aparecieron los primeros lenguajes de descripción de hardware Lenguaje de descripción de
hardware. [55]
➢ 1971
El primero en el texto Computer Structures de C. Gordon Bell y Allen Newell.
Este texto introdujo el concepto de nivel de transferencia de registro, utilizado por primera
vez en el lenguaje ISP para describir el comportamiento del PDP-8 de Digital Equipment
Corporation (DEC). [55]
➢ 1979
La Universidad de Kaiserslautern produjo un lenguaje llamado KARL ("KAiserslautern
Register Transfer Language"), que incluía características de lenguaje de cálculo de diseño que
soportaban la planificación de piso de chips VLSI y el diseño de hardware estructurado. [55]
➢ 1980
Y A Block diagram Language (ABL) fue implementado a principios de la década de 1980 por
el Centro Studi e Laboratori Telecomunicazioni (CSELT) en Torino, Italia, produciendo el
editor de diseño gráfico ABLED VLSI. [55]
Mediados de 1980
Un consorcio internacional financiado por la Comisión de la Unión Europea implementó un
marco de diseño VLSI en torno a KARL y ABL. [55]
➢ 1983
El trabajo en Data General en 1980 utilizó estos mismos dispositivos para diseñar el Data
General Eclipse MV / 8000, y comenzó a crecer la necesidad comercial de un lenguaje que
pudiera mapearlos bien y Data I / O introdujo ABEL para satisfacer esa necesidad. [55]
➢ 1985
Cuando el diseño cambió a VLSI, Gateway Design Automation presentó el primer HDL
moderno, Verilog. [55]
➢ 1987
Una solicitud del Departamento de Defensa de EE. UU. Condujo al desarrollo de VHDL
(VHSIC Hardware Description Language). VHDL se basó en el lenguaje de programación
Ada, así como en la experiencia adquirida con el desarrollo anterior de ISPS. En unos pocos
años, VHDL y Verilog emergieron como los HDL dominantes en la industria electrónica,
mientras que los HDL más antiguos y menos capaces desaparecieron gradualmente del uso.
[55]
A lo largo de los años, se ha invertido mucho esfuerzo en mejorar las HDL. La última versión
de Verilog, conocida formalmente como IEEE 1800-2005 SystemVerilog. [55]
Definición 1
El significado de las siglas VHDL es Very-High-Speed Integrated circuits Hardware
Description Language o bien lenguaje de descripción de hardware de circuitos integrados de
alta velocidad [57]
Definición 2
VHDL significa V HSIC (circuitos integrados de muy alta velocidad) Hardware Description
Language. A mediados de la década de 1980, el Departamento de Defensa de EE. UU. Y el
IEEE patrocinaron el desarrollo de este lenguaje de descripción de hardware con el objetivo
de desarrollar circuitos integrados de muy alta velocidad. [58]
Definición 3
VHDL es un lenguaje de especificación definido por el IEEE utilizado para describir circuitos
digitales y para la automatización de diseño electrónico. VHDL es acrónimo proveniente de
la combinación de dos acrónimos: VHSIC y HDL. [59]
Características de VHDL
➢ Sirve como herramienta de especificación de proyectos. [60]
➢ Permite generar proyectos con estructura del tipo jerárquica. [60]
➢ Posibilita modelizar el concepto de tiempo. [60]
➢ Permite describir módulos con acciones que serán evaluadas luego en forma secuencial.
➢ Permite la parametrización de componentes y portabilidad de los diseños para
independizarse de la tecnología. [60]
➢ Permite implementación de test-bench para simulación de diseños. [60]
➢ Documentación del diseño. En un principio, VHDL se estandarizo para la descripción
del hardware, pero no para su diseño. [60]
➢ Posee un diseño de alto nivel. [60]
➢ Descripción de entrada para las herramientas de diseño físico. [60]
¿Qué es una estructura en VHDL?
VHDL fue diseñado con base a los principios de la programación estructurada. Cada interfaz
define un módulo de hardware mientras deja invisible sus detalles internos. [61]
La entidad referenciada como ENTITY en VHDL es la declaración de las entradas y salidas
de un módulo mientras que la arquitectura referenciada como ARCHITECTURE en VHDL
es la descripción detallada de la estructura interna del módulo o de su comportamiento. [61]
➢ Entradas simples
➢ Salidas simples
➢ Salidas retroalimentadas
➢ Terminales bidireccionales
Cada declaración se encontrará en la caja negra, donde estarán sus respectivas terminales de
la entidad. [62]
El bloque se conoce en VHDL como entidad y se declara en primer lugar una entidad indica
las señales que entran al circuito y las que salen, es decir, declara la relación del circuito con
el mundo exterior [22].
A cada entidad le corresponde al menos una descripción (comportamental, estructural)
aunque puede tener múltiples que se especifica en su arquitectura.
VHDL usa el siguiente ciclo de simulación para modelar los estímulos y respuesta natural del
Hardware digital.
Ilustración 69. Simulación para modelar estímulos
Definición 1
Según David G. Maxinez: “La descripción estructural basa su comportamiento en modelos
lógicos establecidos. (compuertas, sumadores, contadores, etc.) El usuario puede diseñar estas
estructuras y guardarlas para usarlas posteriormente o tomarlas de los paquetes contenidos en
las librerías del software”. [22]
Definición 2
Según Marcos Sánchez Élez: “La descripción estructural es utilizada para la creación de la
arquitectura de la entidad, entidades descritas y compiladas previamente, de esta manera en
VHDL podemos aprovechar diseños ya realizados o realizar diseños sabiendo que se
utilizaran en otros más complicados”. [23]
Definición 3
Según Fernando Pardo y José A. Boluda: “La descripción estructural está basada dentro de un
bloque de arquitectura donde la descripción es un poco más larga y menos clara ya que el
cuerpo de la arquitectura está compuesto por un netlist, es decir se ponen los componentes e
interconexiones, para los cuales se utilizarán entidades que ya están definidas en la
biblioteca”. [24]
Definición Grupal
La descripción estructural básicamente es crear la arquitectura en base a modelos lógicos ya
establecidos en el cual el usuario puede diseñar estructuras y guardarlas para después
volverlas a utilizar en diferentes trabajos o también se puede realizar en base a las librerías de
software que se estaría utilizando. [22] [23] [24]
Ejemplo:
Comparador de 2 bits
En este ejemplo cada compuerta está dentro de un paquete gatespkg, del cual se toman para
estructurar el diseño. Esta arquitectura estándar se denomina componentes. Al
interconectarlos por señales internas (x0 y x1) permiten proponer una solución. En VHDL
esta conectividad se denomina netlist (listado de componentes). [22]
Paso para programar de forma estructural
Descomponer el problema en pequeños módulos. Dividir el problema hace de la descripción
estructura una forma sencilla de programar.
➢ En la siguiente imagen se puede demostrar cada una de las siguientes estructuras que se
usaron para su programación:
➢ Entre las líneas de la 3 a la 6 se definen entradas y salidas (a, b, c)
➢ En la línea 7 los componentes XOR y AND no se declaran pues se encuentran en el
paquete gatespkg, dentro de la librería de trabajo work.
➢ En la línea 8 se declara la arquitectura estructural.
➢ En la línea 9 las salidas de U_0 y U_1 (X_0, X_1). Declaradas dentro de la arquitectura y
no la entidad, pues no son un pin. Solo conectan de forma interna.
➢ Entre las líneas de la 11 a la 13 se encuentra el algoritmo propuesto, lo que permite que,
Cada compuerta se maneja como un bloque lógico independiente, del diseño original. Se
le asigna una variable temporal (U_0, U_1, U_2).
➢ Finalmente, la compuerta AND recibe X_0 y X_1, ejecuta la operación y asigna el
resultado a la salida c. [22]
METODOLOGIA DEL DISEÑO VHDL
Las metodologías de diseño comúnmente están basadas en las estrategias de las jerarquías de
TOP DOWN y BOTTOM-UP. Por medio del enfoque de arriba a abajo se pone atención
inicialmente en los aspectos globales de todo el sistema conforme el diseño progresa. El
sistema se descompone en subsistemas poniéndosele mayor consideración a los detalles
específicos. [25]
Esta metodología consiste en reunir diferentes sistemas que conformaran un todo. Los
elementos individuales son especificados en gran detalle, los componentes se van uniendo
unos con otros hasta conformar un sistema final, que se logra al llegar al nivel superior”. Esta
estrategia asemeja al modelo “semilla”, en el cual se parte de algo pequeño que va creciendo
hasta llegar un sistema terminado y complejo. [28]
8. Creación de un Proyecto
Creación de un Proyecto
Para crear un nuevo proyecto:
:
Entorno de Programación
Partes del programa ISE DESING SUITE
En concreto la ventana de procesos incorpora todas las opciones necesarias para realizar
todos los pasos de implementación de sistemas de lógica programable, incluyendo la edición
y verificación.
Entorno de Modelado
MODELADO RTL. - Esquema se genera después de la fase de síntesis de HDL del proceso
de síntesis. Muestra una representación del diseño pre-optimizado en términos de símbolos
genéricos como: sumadores, multiplicadores, contadores, compuertas AND y OR, que son
independientes del dispositivo Xilinx seleccionado [65].
Test Bench
Para simular un diseño es necesario generar estímulos para todas las entradas el que será
proporcionado por el banco de pruebas. Un banco de pruebas es un código HDL que permite
proporcionar un conjunto de estímulos documentados y repetibles además de que es portátil
en diferentes simuladores. Un banco de pruebas puede ser tan simple como un archivo con
reloj y datos de entrada o un archivo más complicado que incluye verificación de errores,
entrada y salida de archivos y pruebas condicionales. Para su utilización se debe crear un
módulo adicional denominado Test Bech además del módulo VHDL cotidiano, el cual sirve
para la asignación de un conjunto de datos [66].
VHDL
Modelo estructural
Port Map
La cláusula PORT MAP declara las conexiones. Si PORT fuera una declaración local, PORT
MAP sería una forma de declaración global. En realidad, cada instanciación de un
componente puede ser vista como una llamada a su proceso y, por tanto, a una sentencia
concurrente como sucedía en el modelado comportamental. Si la instancia es también una
descripción estructural, llamará a los procesos correspondientes de un nivel jerárquico
inferior y así sucesivamente hasta encontrar algún modelo comportamental puro. [4]
La lista de conexiones del PORT MAP debe realizarse en el orden en el que las señales se
declararon en la entidad si se hace implícitamente. Si se hace explícitamente no es necesario.
[4]
Ilustración 91 Circuito de ejemplo para PORT MAP. [4]
¿Qué es un código?
Es un conjunto de reglas, o una serie de símbolos que por separado no representan nada, pero
al combinarlos pueden generar un lenguaje comprensible solo para aquellos quienes lo
entiendan. [1]
Se puede acotar que las reglas son las que hacen que cambie la representación de la
información, mas no la función.
Código Grays
El código binario Gray, es un sistema de numeración binario en el que dos números
consecutivos difieren solamente en uno de sus dígitos, fue diseñado originalmente para
prevenir señales ilegales de los switches electromecánicos, y actualmente es usado para
facilitar la corrección de errores en los sistemas de comunicaciones, tales como algunos
sistemas de televisión por cable y la televisión digital terrestre. [23]
MODELADO ESTRUCTURAL
Componentes de una descripción estructural
Procesos de instanciación
Antes de que un componente pueda ser usado, éste debe ser instanciado. La instanciación
consiste en seleccionar una especificación compilada de la librería y ligarla a la arquitectura
donde será usada.
Cada instancia de un componente contiene dos partes: [23]
✓ Para diseños grandes sería conveniente que todos los módulos se pudiesen hacer por
separado y que se pudiera hacer referencia a otros componentes cuyo comportamiento no
ha sido aún especificado. [1]
✓ Para una especificación estructural sería suficiente con tener una declaración de la interfaz
del componente (como requisito del sistema) [1]
✓ La declaración de la interfaz del componente es llamada declaración del componente
(component declaration) y es ubicada en la parte declarativa del cuerpo de la arquitectura
(o en un paquete) [1]
Específica como las E/S del componente declarado (usando la declaración de componente
explicada previamente), son conectadas en el diseño en que se utiliza el componente.
Declaración de componentes
Sintaxis:
1. component nombre_del_componente is
2. generic ( lista de parámetros );
3. ports ( lista de puertos );
4. end component nombre_del_componente;
1. -- declaracion de component
2. component register
3. generic(bus);
4. port (
5. clk: in std_logic;
6. rst: in std_logic;
7. d_b: in std_logic_vector(bus-1 downto 0);
8. reg: out std_logic_vector(bus-1 downto 0)
9. );
10. end component;
Los puertos en una declaración de componente generalmente deben coincidir con los puertos
en la declaración de entidad uno por uno. La declaración del componente define los nombres,
el orden, el modo y los tipos de puertos que se utilizarán cuando el componente se instale en
el cuerpo de la arquitectura. Instalar un componente implica hacer una copia local de la
entidad de diseño correspondiente: un componente se declara una vez dentro de cualquier
arquitectura, pero se puede crear una instancia varias veces. [67]
SINTAXIS:
DESCRIPCIÓN:
Un mapa de puertos asigna señales en una arquitectura a puertos en una instancia dentro de
esa arquitectura. Los mapas de puertos también pueden aparecer en un bloque o en una
configuración.
Las conexiones se pueden enumerar mediante asociación posicional o mediante asociación
con nombre. Dentro de una instancia, los nombres de los puertos son puertos en el
componente o entidad que se está instanciando, las expresiones son señales visibles en la
arquitectura que contiene la instancia. Dentro de una configuración, los nombres de puerto
son puertos en la entidad, las expresiones son puertos en el componente. Los elementos de un
puerto de matriz se pueden conectar individualmente cuando se usa una asociación con
nombre.
Los puertos se pueden dejar desconectados usando la palabra clave open. [67]
ATRIBUTOS
Los elementos como señales y variables pueden tener atributos, éstos se indican a
continuación del nombre, separados con una comilla simple " ' " y pueden incluir información
adicional de algunos objetos desarrollados en VHDL, que servirán a las herramientas de
diseño para obtener información a la hora de realizar una síntesis. [5]
Existen muchos atributos, como LEFT, RIGHT, LOW, HIGH, RANGE, LENGTH... Pero el
atributo más usado es EVENT, que indica si una señal ha cambiado de valor. Por ejemplo la
siguiente sentencia captura un flanco de subida de una señal (clk). [5]
....
if clk'event and clk = '1' then
....
Definición de atributos
Un atributo definido por el diseñador siempre devolverá un valor constante. En primer lugar
se debe declarar el atributo, mediante la palabra reservada ATTRIBUTE, indicando el tipo de
elemento que se devuelve, seguidos el valor que se retornará. [67]
La sintaxís para definir atributos sería la siguiente.
Atributos
Los atributos son las características individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables [68].
Las variables de instancia también denominados miembros dato, son declaradas en la clase,
pero sus valores son fijados y cambiados en el objeto [68].
Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a
todas sus instancias. Un ejemplo de esto tenemos el número de ruedas de un automóvil es el
mismo cuatro, para todos los automóviles [68].
Ilustración 90: Atributos
Principales atributos
S’EVENT
Retorna verdadero si ocurrió un evento en S durante el corriente delta, de lo contrario
devuelve falso
S’ESTABLE
Retorno verdadero si no hay evento S
S’ACTIVE
Retorno verdadero si S=1
S’LAST_EVENT
Retorna el tiempo transcurrido desde la transición previa de la señal S
S’LAST_VALUE
Retorna el valor previo de S antes del ultimo evento
S’LAST_ACTIVE
Retorna el tiempo transcurrido desde la transacción previa de la señal
Atributo Event
El atributo event (evento, donde ‘indica que se trata de un atributo”) se utiliza para describir
un hecho u ocurrencia de una señal particular. Considerando una señal de reloj (CLK), la
sentencia CLK’event es cierta sólo cuando ocurre un cambio de valor (paso de ‘0’ a ‘1’ o de
‘1’ a ‘0’). Combinándola con una sentencia de comprobación de igualdad del nuevo valor es
posible definir la activación por el tipo de flanco que se desee [69]:
Definición
National Instruments (NI) es una empresa que transforma la manera en cómo los ingenieros e
investigadores diseñan, generan prototipos e implementan sistemas para aplicaciones
embebidas, de medidas y de automatización. El objetivo de esta empresa es que sus clientes
desarrollen continuamente tecnologías innovadoras que impacten a millones de personas ya
sea desde la programación de sistemas de juegos de la próxima generación hasta la creación
de nuevos dispositivos médicos [70].
Ilustración 93: National Instruments-Logo (Antes y Después)
Historia
National Instruments (NI) es una empresa fundada en 1976 por James Truchard, Bill Nowlin
y Jeff Kodosky en Austin, Texas. Esta empresa comenzó su historia en el garaje de James
Truchard trabajando en productos relacionados con GPIB. En la década de los 80 juntos
crearon su principal producto al cual llamaron LabVIEW [71].
Desde entonces la empresa se dedica al desarrollo y venta de productos de software, hardware
y servicios. Sus mercados tradicionales son los campos de adquisición de datos, control de
instrumentos e instrumentación virtual. En los últimos años también ha extendido su negocio
a sistemas de comunicaciones y sistemas embebidos, en buena parte apoyándose en las
arquitecturas PXI y CompactRIO [71].
LabVIEW
Definición
LabVIEW es un software de ingeniería de sistemas para aplicaciones que requieren pruebas,
medidas y control con acceso rápido a hardware e información de datos [72].
Función
LabVIEW ofrece un enfoque de programación gráfica que le ayuda a visualizar cada aspecto
de su aplicación, incluyendo configuración del hardware, datos de medidas y depuración.
Esta visualización simplifica la integración del hardware de medidas de cualquier proveedor,
representa una lógica compleja en el diagrama, desarrolla algoritmos de análisis de datos y
diseña interfaces de usuario de ingeniería personalizadas [73].
Características
Presenta facilidades para el manejo de:
• Interfaces de comunicaciones:
➢ Puerto serie
➢ Puerto paralelo
➢ GPIB
➢ PXI
➢ VXI
➢ TCP/IP, UDP, DataSocket
➢ Irda
➢ Bluetooth
➢ USB
➢ OPC...
DE_FPGA_Board
Equipos DE (Digital Electronic) FPGA board NI
NI ELVIS II
En el modo NI ELVIS, la placa FPGA de NI Digital Electronics se puede utilizar como una
placa de creación de prototipos en una estación de trabajo NI ELVIS II Series. Instale y
configure la placa FPGA de NI Digital Electronics y NI ELVIS II Donde las instrucciones de
instalación de la Serie NI ELVIS II :
2. Conecte un
extremo del cable 4. Encienda la
1. Inserte la Tarjeta
USB de la FPGA 3. Encienda la placa FPGA de NI
FPGA de NI
al conector USB de estación de trabajo Digital Electronics
Digital Electronics
FPGA Board, y al NI ELVIS II moviendo la
como una tarjeta
otro extremo al Series. cambie a la
de prototipos
conector USB de la posición ON.
PC host.
Ilustración 97 NI ELVIS II
SbRio
Un dispositivo NI Single-Board RIO (sbRIO) consiste en un procesador en tiempo real
conectado a un FPGA reconfigurable , con 110 líneas de E / S digitales (DIO) y tres ranuras
de expansión para módulos de la Serie C. Los dispositivos NI sbRIO-961x, NI sbRIO-963x y
NI sbRIO-964x tienen líneas de E / S adicionales provistas por módulos de la Serie C
integrados.
La FPGA reconfigurable por el usuario controla las líneas de E / S digitales y analógicas en el
dispositivo sbRIO. Puede configurar el dispositivo sbRIO y usar el Módulo LabVIEW FPGA
y NI-RIO para crear y descargar un VI personalizado a la FPGA para definir el tiempo y la
funcionalidad del dispositivo sbRIO. Si solo tiene LabVIEW y NI-RIO pero no el Módulo
FPGA, no puede crear nuevos VIs FPGA, pero puede crear VIs que se ejecuten en Windows
o un objetivo LabVIEW Real-Time (RT) para controlar VIs FPGA existentes.
Utilice este libro como referencia para obtener información sobre las funciones de E / S de
FPGA , los recursos de E / S, las opciones de arbitraje, los métodos y las propiedades que
admite cada dispositivo sbRIO. [74]
Estructura. -
SB_RIO
Definición. -
Los controladores Single-Board RIO incluyen placas computadoras y System-on-Module
(SOM) robustos y pequeños que ofrecen la flexibilidad de una solución personalizada para
cumplir con los requerimientos de su proyecto, con la productividad de un producto
comercial. Cada controlador se vende con un paquete completo de middleware que incluye
Linux Real-Time, controladores de E/S y soporte para múltiples entornos de programación,
incluyendo LabVIEW [76].
Estructura
Elementos de una tarjeta SB rio 9627
Este módulo LabVIEW Embedded Module for Blackfin Processors es compatible con todos los
emuladores JTAG de Analog Devices y se dispone de los siguientes modelos [78]:
Luego se definen las máscaras de red para ello se configura las direcciones IP, creándose así la
conexión de red entre la computadora y el sistema remoto [77].
Ilustración 103: Configuración mascara de red y dirección IP
En Max se deben seguir los siguientes pasos para la configuración en Matlab [77]:
• Verificar su reconocimiento bajo la sección Remote Systems [77].
• Verificar el software instalado [77].
• En caso de ser necesario, reinstalar el software añadiendo las herramientas que se
utilizaran [77].
Ahora bien, configuramos el dispositivo dentro de labview para ellos me voy a la selección
del entorno, realizo la configuración del proyecto y al final ya aparece myRIO [77].
Dentro del choose enviroment ya se nos va a crear un proyecto para labview FPGA aquí
creamos el entorno para trabajar [77].
Características
Graphical System Design
LabVIEW FPGA ofrece un enfoque de programación gráfica que simplifica la tarea de
conectar a E/S y comunicar datos, mejorando enormemente la productividad del diseño y
reduciendo el tiempo al mercado [77]
2. Autómatas Finitos
Modelo Comportamental
• Un Modelo comportamental puede suministrar un pequeño parecido a la implementación
del sistema.
• El lenguaje VHDL permite escribir funciones complejas sin recurrir a su implantación física
con lo que se revela como una herramienta de gran rendimiento ya que proporciona una
potencia de diseño muy atractiva a un coste muy bajo.
Modelo Estructural
• La descripción estructural básicamente es crear la arquitectura en base a modelos lógicos ya
establecidos en el cual el usuario puede diseñar estructuras y guardarlas para después
volverlas a utilizar en diferentes trabajos.
• La descripción estructural es utilizada para la creación de la arquitectura de la entidad,
entidades descritas y compiladas previamente, de esta manera en VHDL podemos
aprovechar diseños ya realizados o realizar diseños sabiendo que se utilizaran en otros más
complicados
Ilustración 115 Organizadores Gráficos de Resumen [Jiménez G.- Rivera C.- Chuquitarco W.]
11. Convertidor de código
No confundir el valor de un
objeto con un atributo de
un objeto.
Un objeto tiene un único valor y
Caracteristicas puede tener varios atributos
VHDL tiene atributos predefinidos y
Es una también permite la definición de
característica que nuevos atributos
denota funciones
o rangos Atributos sobre rangos de
asociados a un vectores
elemento de un Atributos sobre tipos de
Atributos modelo VHDL. Principales datos
atributos Atributos sobre señales
Atributo Event
Atributos
definidos Declaracion
por el Especificacion
usuario
Ilustración 140 Atributos Elaborado por: Balladares, Bayas, Fiallos, Palan.
Modelado VHDL de
Descripción VHDL
El atributo EVENT la activación por
de lógica secuencial
flanco.
Usando macros
VHDL'93 rising
edge(señal)y falling
Se describe la Se considera una edge (señal)
señal de reloj, Se puede usar la
activación por sentencia WAIT
flanco de reloj. genera cambios de
"0" a "1" o UNTIL
viceversa.
Ilustración 141 Modelado de Sistemas Secuenciales Elaborado por: Balladares, Bayas, Fiallos, Palan
CRICUITOS
Registros de
SECUENCIALES Contadores
Desplazamiento
VHDL
Simplificacion de Diagrama de
Flip Flops
Circuitos Logicos Estados
Ilustración 142 Ejemplos de Sistemas Secuenciales en VHDL Elaborado por: Balladares, Bayas, Fiallos, Palan
Ilustración 1434 Sistemas FPGA Elaborado por: Muquinche, Ramos, Soto, Salazar
Ilustración 1445 Sistemas FPGA NI Elaborado por: Muquinche, Ramos, Soto, Salazar
5. EJERCICIOS RESUELTOS
Primer Parcial
1. Sistemas Digitales
Sin realización de ejercicios en la primera semana.
2. Autómatas Finitos
Ejercicios de clase 1
• Tema
Contador de ciclos
• Objetivos
- General
➢ Realizar un contador de que contabilice los ciclos ascendente y descendente de un
maquina secuencial.
- Específicos
➢ Realizar un contador de que contabilice los ciclos ascendente y descendente de un
maquina secuencial diseñado en Mealy.
➢ Realizar un contador de que contabilice los ciclos ascendente y descendente de un
maquina secuencial diseñado en Moore
• Materiales y Equipos
➢ Computadora
➢ Apuntes de clases
➢ Software Proteus
➢ Software BooleDeusto
• Desarrollo
➢ Diseño en Boole
➢ Simulación en Proteus
➢ Simulación en Proteus
• Resultados
Ejercicios de clase 2
• Tema
Detector de código 01
• Objetivos
- General
➢ Diseñar un detector de código continuo y segmentado
- Específicos
➢ Diseñar un detector de código continuo y segmentado usando una máquina
secuencial tipo Mealy.
➢ Diseñar un detector de código continuo y segmentado usando una máquina
secuencial tipo Moore.
➢ Simular el detector de código.
• Materiales y Equipos
➢ Computadora
➢ Apuntes de clases
➢ Software Proteus
➢ Software BooleDeusto
• Desarrollo
Diseño basado en Mealy
➢ Diseño en Boole
Detector Continuo
Detector Segmentado
➢ Simulación en Proteus
Detector Continuo
Diseño basado en Moore
➢ Diseño en Boole
Detector Continuo
Detector Segmentado
➢ Simulación Proteus
Detector Segmentado
• Resultados
El diseño del detector realizado en Boole tanto el continuo como el segmentado no presentan
fallos, al ingresar la secuencia detecta los códigos de manera correcta en la simulación del
detector continúo realizado en Proteus se adiciono un led a la salida del circuito para saber
cuándo ha sido ingresado una secuencia correcta, para ingresar la secuencia se usó un
estimulador lógico.
3. Detectores de Código
Ejercicio 1
Tema
Detector de código 01 Mealy continuo con Flip-Flop J-K.
Objetivos
➢ General
Realizar un Detector de código 01 con el modelo de autómata finito Mealy continuo con Flip-
Flop J-K.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un Detector de código 01 Mealy continuo con Flip-Flop J-K, realizar el diseño,
diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
Simulación
Ilustración26: Simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementación.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 2
Tema
Detector de código 01 Moore Continuo con Flip-Flop J-K.
Objetivos
➢ General
Realizar un Detector de código 01 con el modelo de autómata finito Moore Continuo con
Flip-Flop J-K.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Moore Continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un Detector de código 01 Moore Continuo con Flip-Flop J-K, realizar el diseño,
diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Simulacion
Ilustración32: Simulación
Resultados
➢ Cada uno de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada uno de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 3
Tema
Detector de código 01 Moore Continuo con Flip-Flop D.
Objetivos
➢ General
Realizar un Detector de código 01 con el modelo de autómata finito Moore Continuo con
Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Moore Continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un Detector de código 01 Moore Continuo con Flip-Flop D, realizar el diseño,
diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
Simulacion
Ilustración38: Simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 4
Tema
Detector de código 01 Moore Segmentado con Flip-Flop D.
Objetivos
➢ General
Realizar un Detector de código 01 con el modelo de autómata finito Moore Segmentado con
Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Moore Segmentado en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un Detector de código 01 Moore Segmentado con Flip-Flop D, realizar el diseño,
diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
Ilustración42: Tabla de Diseño
Simulacion
Ilustración44: simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 5
Tema
Contador de códigos de 4 bits (1010) Mealy Continuo con Flip-Flop D.
Objetivos
➢ General
Realizar un Contador de códigos de 4 bits (1010) con el modelo de autómata finito Mealy
continuo con Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un contador de códigos de 4 bits (1010) con el modelo de Mealy continuo, realizar el
diseño, diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
DA=X DB=B
S1=B’*A*X S2=B+A’+X’
Simulacion
Ilustración50: simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente en que
se podría realizar un diagrama de estados sea usando la máquina de Mealy y Moore para su
implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después aplicar en
un diagrama de estados en un software llamado Boole Deusto el cual permitió la
comprobación con lo que permitirá clarificar cada uno de las transiciones y salidas que se dio
en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la simulación de
secuencia y tabla de diseño, a su vez se puede implementar mediante flip-flops que son más
utilizados y representados en los mapas K.
Ejercicio 6
Tema
Contador de códigos de 4 bits (1010) Mealy Segmentado con Flip-Flop D.
Objetivos
➢ General
Realizar un Contador de códigos de 4 bits (1010) con el modelo de autómata finito Mealy
Segmentado con Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy Segmentado en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
Descripción
Diseñar un contador de códigos de 4 bits (1010) con el modelo de Mealy Segmentado,
realizar el diseño, diagrama y tablas respectivas utilizando el software Boole Duesto e
implementarlo en Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
Ilustración54: Tabla de Diseño
Simulacion
Ilustración56: Simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 7
Tema
Contador de códigos de 4 bits (1010) Moore continuo con Flip-Flop D.
Objetivos
➢ General
Realizar un Contador de códigos de 4 bits (1010) con el modelo de autómata finito Moore
continuo con Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Moore continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
4. Simular el contador de códigos de 4 bits en el software Proteus.
Descripción
Diseñar un contador de códigos de 4 bits (1010) con el modelo de Moore continuo con Flip-
Flop D, realizar el diseño, diagrama y tablas respectivas utilizando el software Boole Duesto
e implementarlo en Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Sec. 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1
Qn 0 1 2 3 1 2 3 4 0 1 2 3 4 3 4 0 1 1 2 3 4 0 1 2
Qn+1 1 2 3 1 2 3 4 0 1 2 3 4 3 4 0 1 1 2 3 4 0 1 2 3
Y1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1
Y2 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0
Ilustración59: Tabla de Simulación y Secuencia
Tabla de Diseño
Simulación
Ilustración62: Simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
Ejercicio 8
Tema
Contador de códigos de 4 bits (1010) Moore continuo con Flip-Flop J-K.
Objetivos
➢ General
Realizar un Contador de códigos de 4 bits (1010) con el modelo de autómata finito Moore
continuo.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Moore continuo en el software Boole
Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y salidas.
4. Simular el contador de códigos de 4 bits en el software Proteus.
Descripción
Diseñar un contador de códigos de 4 bits (1010) con el modelo de Moore continuo, realizar el
diseño, diagrama y tablas respectivas utilizando el software Boole Duesto e implementarlo en
Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Duesto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Ilustración68: Simulación
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la forma diferente
en que se podría realizar un diagrama de estados sea usando la máquina de Mealy y
Moore para su implementacion.
➢ Cada una de los diagramas aplicados fueron implementado en hojas para después
aplicar en un diagrama de estados en un software llamado Boole Deusto el cual
permitió la comprobación con lo que permitirá clarificar cada uno de las transiciones
y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar mediante
flip-flops que son más utilizados y representados en los mapas K.
4. Microcontroladores
Ejercicio Resuelto
Tema
Aplicación de microcontroladores en PIC y ARDUINO que controle un motor dc.
Objetivos
General
Realizar una aplicación d microcontroladores en PIC y ARDUINO que controle un
motor dc.
Específicos
• Investigar sobre la estructura del ARDUINO y PIC C COMPILER.
• Establecer el código para el control de un motor dc en Proteus.
• Verificar el funcionamiento de la simulación con los dos software y Proteus.
Descripción
Desarrollar el control básico de un motor dc desde Arduino y Pic C Compiler en
simulación con Proteus que permita controlar el giro horario y antihorario del motor,
así como también el control del motor mediante un puente H.
Diagramas y Esquemas
• DESARROLLO
➢ Para el microcontrolador ATMega (Arduino)
Código de Programación
Primero declaramos las variables que utilizaremos para el problema, de igual manera
renombraremos los pines que utilizaremos de la placa, en el Void setup() configuraremos los
pines dependiendo de cómo vayan a trabajar ya sean entradas (Input) o salidas (Output), En el
Void Loop() Realizamos la programación principal del problema, en este caso se controlará el
giro mediante un pulsador el cual dependerá de estado en el q lea el microcontrolador si el
estado está en alto entonces el pin del motor pasara a alto también, de igual manera para
apagar el motor, siguiendo esta lógica con el pulsador el cual si se encuentra en estado alto
permitirá que la salida del giro horario se ponga en alto y la de salida antihorario pase a bajo,
lo que permitirá el giro en un sentido y así controlar el movimiento del motor.
Simulación en Proteus
Giro Horario
Giro Antihorario
Código de Programación
Primero declaramos las variables que utilizaremos para el problema, de igual manera
renombraremos los pines que utilizaremos de la placa y por su puesto los fusibles a utilizar.
Una vez adecuado correctamente lo necesario para iniciar con lo que viene siendo para la
programación puesto a esto iniciamos con la lógica que será mediando un Switch para lo que
viene siendo el encendido y apagado y de igual forma otro en donde se procede a realizar los
giros. Junto con esto un led indicara si el giro es horario o anti horario.
Giro Antihorario
Resultados
▪ Computador
▪ Software arduino
▪ Software pic c compiler
▪ Software proteus
Diagramas y Esquemas
PROGRAMACIÓN EN ARDUINO
PROGRAMACIÓN PIC
#include if((k!=0)&&(k!='3')&&(k!='0')&&(k!='4')&&
"C:\Users\dell\Desktop\danny\Quinto (k!='5')&&(k!='6')&&(k!='7')&&(k!='8')&&(
Semestre\Sistemas k!='9')&&(k!='*')&&(k!='#')){ //Para anular l
Embebidos\Giro_motor_lcd\Pic\giro_motor_l if (k=='1'){
cd.h" output_high(PIN_A0);
#fuses XT,WDT, PUT, NOPROTECT output_low(PIN_A1);
#use delay (clock=4000000) output_high(PIN_A2);
//se declara para hacer entrada o output_low(PIN_A3);
salida printf(lcd_putc,"\fENCENDIDO \n
#use standard_io(a) Giro: H " );
#define use_portd_lcd true //Declaro puertos delay_ms(1000000);
d para lcd }
#define use_portb_kbd true //Declaro else{
puertos b para kbd output_low(PIN_A0);
output_high(PIN_A1);
#include <LCD.C> //Incluimos librerias output_low(PIN_A2);
#include <KBD.C> output_high(PIN_A3);
#include <stdio.h> printf(lcd_putc,"\fENCENDIDO \n
void main() Giro: A " );
{ delay_ms(1000);
char k; // Declaro caracter para la lectura del }}}}
teclado
lcd_init(); //Inicio
kbd_init();
port_b_pullups(TRUE); //Activo puertos
con resistencias para el teclado
lcd_putc("\f SISTEMA APAGADO \n ");
while (TRUE){
k=kbd_getc(); // Declaro la variable para
la lectura de teclado
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Resultados
1. En primer lugar hacemos las conexiones según la programación y cargamos el archivo .hex, a
continuación comenzamos la simulación y observamos que se encuentra apagado.
3
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
3. Al presionar la tecla 2 gira el motor en sentido horario siempre y cuando este encendido el
sistema.
4
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
1. Primero realizamos las conexiones según la programación y cargamos el archivo .hex en el pic y
lo simulamos.
5
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
6
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
7
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
7. Comunicaciones
Ejercicio 1
Tema
Entradas y Salidas Análogas
Objetivos
General
Analizar las señales PWM que controlan un motor en base a la lectura de un sensor de
temperatura.
Específicos
• Determinar la lectura de temperatura empleando un sensor LM35
• Definir un control incremental continuo de motor DC en base a la variación de la
temperatura
• Evaluar los rangos de temperatura en pantalla LCD de DC de PWM
• Demostrar el Modelado para Microcontrolador PIC y para la Tarjeta Arduino en Proteus.
Descripción
Mediante los conocimientos requeridos se desea diseñar un sistema digital que permita el control de
un motor DC mediante señales PWM en base a la lectura de un sensor de temperatura que contenga
los siguientes parámetros
Lectura de temperatura empleando un sensor LM35
Visualización en pantalla LCD de Vin, ADC y Temperatura
Control incremental continuo de motor DC en base a la variación de la temperatura de
acuerdo a los siguientes rangos: LimInf: 30ºC - 0% de DC de PWM - LimSum: 80ºC - 100%
de DC de PWM
Visualización en pantalla LCD de DC de PWM
Listado de Materiales y Equipos
• Placa arduino
• Microcontrolador PIC
• LCD 16x4
• Sensor LM35
Diagramas y Esquemas
ARDUINO:
#include <LiquidCrystal.h>; temp=(5.0 * temp * 100.0)/1024.0;
LiquidCrystal lcd(9, 8, 7, 13, 12, 11, if(temp>=30 && temp<=80){ //El
10); motor únicamente va a estar encendido
int m1=6; entre 0 y 20 ºC
float lm35=A0; pwm=map(temp,30,80,0,255);
float temp=0; analogWrite(m1,pwm);
int pwm; }else { analogWrite(m1,LOW);}
float lect=0; //MUESTRA DE TEMPERATURA
void setup() { EN LCD
pinMode(m1, OUTPUT); lcd.setCursor(0,0);
pinMode(lm35, INPUT); lcd.print("T:");
lcd.begin(16,2); lcd.print(temp);
Serial.begin(9600); lcd.print(" ADC:");
} void loop() { lcd.print(lect);
//VELOCIDAD DE ACUERDO A LA lcd.setCursor(0,1);
TERMPERATURA lcd.print("V=");
temp=analogRead(lm35); lcd.print(temp/100);
lect=analogRead(lm35);
8
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
Velocidad menor a 30:
Velocidad mayor a 30
Pwm
17
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
PIC C COMPILER
18
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
Temperatura menor a 30 grados, el duty cycle es de 0%
19
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ejercicio 2
Tema
Comunicación Inalámbrica
Objetivos
• General
➢ Desarrollar una comunicación inalámbrica mediante módulos bluetooth para el
control de señales PWM.
• Específicos
➢ Realizar el enlace mediante bluetooth de dos microcontroladores tanto para PIC y
Atmega
➢ Simular en Proteus para poder verificar los resultados obtenidos
Descripción
Diseñar el sistema digital que permita el control de un motor DC mediante señales PWM en
base a la lectura de un sensor de temperatura empleando 2 Microcontroladores conectados
inalámbricamente mediante Bluetooth:
Las condiciones de diseño son:
• Microcontrolador 1: Lectura de temperatura empleando un sensor LM35
• Visualización en pantalla LCD de Vin, ADC y Temperatura
• Microcontrolador 2: Control incremental continuo de motor DC en base a la variación de la
temperatura de acuerdo a los siguientes rangos: LimInf: 30ºC - 0% de DC de PWM -
LimSum: 80ºC - 100% de DC de PWM
• Visualización en pantalla LCD de DC de PWM
La simulación debe contener
• Modelado para Microcontrolador PIC (Proteus)
• Modelado para Tarjeta Arduino (Proteus)
Listado de Materiales y Equipos
• Software de simulación Proteus
• Software de programación PIC C COMPILER
• Arduino IDE
• LM35
• PIC 16F887
• Placa Arduino
• Driver l293
20
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Receptor:
#include <LiquidCrystal.h>;
LiquidCrystal lcd(9, 8, 7, 13, 12, 11, 10);
int m1=6; //salida del motor dc
int pwm; //para el duty cicle
int temp;
int val=0;
void setup() {
pinMode(m1, OUTPUT);
lcd.begin(16,2);
Serial.begin(9600);
lcd.setCursor(0,0); //columna fila
21
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
Envío de datos por bluetooth
PIC C COMPILER
21
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
22
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
RESULTADOS
Para temperaturas menores a 30 el duty cycle es de 0%
23
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
24
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Arduino Receptor
25
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
26
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
27
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
28
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
29
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
30
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
31
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
PIC C COMPILER
Del mismo modo que en Arduino con cada especificación y condición se colocan
los elementos y se genera un control en este caso utilizando PIC 16F887, conectando
los sensores y actuadores en dos nodos de trabajo 3y observando los resultados en los
LCD como se va a observar a continuación en las ilustraciones de simulación.
32
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
EMISOR
RECEPTOR
33
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Para la opción 1
Temperatura (lm35) - Motor DC
o Cuando la temperatura es menor a 50 grados/ dutty=0%.
34
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
35
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Para la opción 2
Distancia (ultrasónico)- Servo Motor
o Distancias entre 0 - 10cm/ángulo 0°.
36
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ilustración 174Distancias entre 0 - 10cm/ángulo 0°. Elaborado por: Balladares, Gutiérrez, Pallo.
Ilustración 175Distancias entre 10 - 20cm/ángulo 30°. Elaborado por: Balladares, Gutiérrez, Pallo.
37
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ilustración 176Distancias entre 20 - 30cm/ángulo 60°. Elaborado por: Balladares, Gutiérrez, Pallo.
38
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ilustración 177Distancias entre 30 - 40cm/ángulo 90°. Elaborado por: Balladares, Gutiérrez, Pallo.
Ilustración 178Distancias entre 40 - 50cm/ángulo 120°. Elaborado por: Balladares, Gutiérrez, Pallo.
39
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ilustración 179 Distancias entre 50 - 60cm/ángulo 150°. Elaborado por: Balladares, Gutiérrez, Pallo.
Ilustración 180Distancias entre 60 - 70cm/ángulo 180°. Elaborado por: Balladares, Gutiérrez, Pallo.
CODIGO ARDUINO
EMISOR RECEPTOR
40
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
41
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
int ma = 0; lcd.clear();
int ang = 0; }
void setup() { void loop() {
// put your setup code here, to run once: if (Serial.available()) // ABRE EL
Serial.begin(9600); BUCLE DE RECEPCION DE DATOS
lcd.begin(16, 2); {
lcd.setCursor(0, 0); String str =
lcd.print("VLSI"); //Prendido de Serial.readStringUntil('\n'); //
pantalla Almacena en una variable string la
lcd.setCursor(0, 1); lectura del dato
lcd.print(" PROYECTO "); for (int i = 0; i < dataLength ; i++)
delay (1000); // Creamos un ciclo For para incrementar
lcd.clear(); ka dadena de datos
} {
void loop() { int index = str.indexOf(separator);
// put your main code here, to run // Leemos los datos de la variable String e
repeatedly: identificamos el separador definido
data[i] = str.substring(0,
principal(); index).toFloat(); // Posicionamos y
} transformamos a flotantes los datos
void principal() { receptados
inicio: str = str.substring(index + 1);
lcd.setCursor(0, 0); // Desplazamiento de cada dato en el
lcd.print("1=>TEMP-M_DC ciclo for
");//S1=DISTANCIA, }
S2=TEMPERATURA, }
S3=LUMINISIDAD // Separamos los datos del Array de
lcd.setCursor(0, 1); Numeros acorde a los datos enviados
lcd.print("2=>DIST-SERVO "); float dist = data[0];
//S4=GAS, S5=SONIDO float ang = data[1];
Serial.print(0); float temp1 = data[2];
Serial.print(','); float dutty = data[3];
Serial.print(0); float menu = data[5];
Serial.print(',');
Serial.print(0); //Acorde a los datos receptados se ingresa
Serial.print(','); a los metodos
Serial.print(0); if (menu != 0) {
Serial.print(','); // Generamos el metodo menu y
Serial.print(0); declaramos a los actuadores en 0
Serial.print(','); lcd.setCursor(0, 0);
Serial.println(5); lcd.print("1=>TEMP-MTR_DC ");
lcd.setCursor(0, 1);
while (1) { lcd.print("2=>DIST-SERVO ");
key = tecla.getKey(); servoMotor.write(0);
if (key != 0) { analogWrite(pwm, 0);
42
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
if (key == '1') { }
lcd.clear(); // Receptamos los datos de distancia para
temperatura(); ingresar a este metodo
if (dist != 0) {
} //Creamos los condicionales para el
if (key == '2') { control del servomotor
lcd.clear(); if (dist < 10) {
distancia(); // Normalizamos las variables para
} imprimir en el LCD
if (key == 'A') { float tiempo = (2 * dist) / 343; //
lcd.clear(); Formula para determinar el tiempo
goto inicio; int ang1 = 0; // Asiganacion
} del angulo bajo el rango de trabajo
} servoMotor.write(0);
} lcd.setCursor(0, 0);
} lcd.print("Servo ");
//<<<<<<<<<Metodos lcd.print("D=");
Sensores>>>>>>>>// lcd.print(dist);
//DISTANCIA lcd.print("cm ");
lcd.setCursor(0, 1);
void distancia() { lcd.print("Ang=");
while (1) { lcd.print(ang1);
if (Serial.available()) { lcd.print("T=");
str = Serial.readStringUntil('\n'); lcd.print(tiempo);
for (int i = 0; i < dataLength ; i++) { lcd.print("s ");
int index = str.indexOf(separator); }
datoR[i] = str.substring(0, if (dist >= 10 && dist <= 60) {
index).toFloat(); float tiempo = (2 * dist) / 343;
str = str.substring(index + 1); int ang1 = ang;
} servoMotor.write(ang1);
} lcd.setCursor(0, 0);
float distance = lcd.print("Servo ");
distanceSensor.measureDistanceCm(); lcd.print("D=");
if (distance < 10) { lcd.print(dist);
ang = 0; lcd.print("cm ");
lcd.setCursor(0, 0); lcd.setCursor(0, 1);
lcd.print("Servo "); lcd.print("Ang=");
lcd.print("Ang= "); lcd.print(ang1);
lcd.print(0); lcd.print("T=");
lcd.print(" "); lcd.print(tiempo);
lcd.setCursor(0, 1); lcd.print("s ");
lcd.print("D= "); }
lcd.print(distance); if (dist > 60) {
lcd.print(" cm "); float tiempo = (2 * dist) / 343;
} int ang1 = ang;
43
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
44
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
}
//S2 TEMPERATURA lcd.setCursor(0, 0);
void temperatura() { lcd.print("M_DC");
while (1) { lcd.setCursor(4, 0);
if (Serial.available()) { lcd.print(" T= ");
str = Serial.readStringUntil('\n'); lcd.print(temp1);
for (int i = 0; i < dataLength ; i++) { lcd.print(" oC");
int index = str.indexOf(separator); lcd.setCursor(0, 1);
datoR[i] = str.substring(0, lcd.print("V=");
index).toFloat(); lcd.print(ma1);
str = str.substring(index + 1); lcd.print("V ");
} lcd.print("Dt= ");
} lcd.print(dutty1);
float dato = analogRead(A0); lcd.print("% ");
float volt = (5.0 * dato) / 1023 ; }
float temp1 = volt * 100; }
//float volt2 = map(temp1, 50.0, 100.0,
0, 5);
if (temp1 < 50) {
dutty = 0;
}
if (temp1 >= 50 || temp1 < 100) {
dutty1 =constrain(temp1,50,100);
dutty = map(dutty1, 50, 100, 0, 100);
}
if (temp1 >= 100) {
dutty = 100;
}
lcd.setCursor(0, 0);
lcd.print("M_DC");
lcd.print(" T= ");
lcd.print(temp1);
lcd.print(" oC");
lcd.setCursor(0, 1);
//lcd.print("V=");
//lcd.print(volt2);
//lcd.print("V ");
lcd.print("Dt= ");
lcd.print(dutty);
lcd.print("% ");
Serial.print(0);
Serial.print(',');
Serial.print(0);
Serial.print(',');
Serial.print(temp1);
45
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Serial.print(',');
Serial.print(dutty);
Serial.print(',');
Serial.print(0);
Serial.print(',');
Serial.println(0);
delay(200);
//salir
key = tecla.getKey();
if (key == 'A') {
lcd.clear();
principal();
}
}
}
CODIGO EN PIC C COMPILER
EMISOR RECEPTOR
#include <16f887.h> #include <16f887.h>
#device adc=10 #device adc=10
#FUSES #FUSES
INTRC,NOWDT,NOPUT,MCLR,NOPR INTRC,NOWDT,NOPUT,MCLR,NOPR
OTECT,NOCPD,NOBROWNOUT,NOI OTECT,NOCPD,NOBROWNOUT,NOIE
ESO,NOFCMEN,NOLVP SO,NOFCMEN,NOLVP
#use delay(clock=8M) #use delay(clock=8M)
#use RS232 (BAUD=9600, BITS=8, #use RS232 (BAUD=9600, BITS=8,
PARITY=N, XMIT=PIN_C6, PARITY=N, XMIT=PIN_C6,
RCV=PIN_C7) RCV=PIN_C7)
#define LCD_DB4 PIN_D4 #define LCD_DB4 PIN_D4
#define LCD_DB5 PIN_D5 #define LCD_DB5 PIN_D5
#define LCD_DB6 PIN_D6 #define LCD_DB6 PIN_D6
#define LCD_DB7 PIN_D7 #define LCD_DB7 PIN_D7
#define LCD_RS PIN_D2 #define LCD_RS PIN_D2
#define LCD_E PIN_D3 #define LCD_E PIN_D3
#include <teclado.c> #include <lcd1.c>
#include <lcd1.c> #include <stdlib.h>
#include <stdlib.h> #use standard_io(e)
int dc; #use standard_io(a)
int pwm,pwm1; #use fast_io(b)
float distancia, tiempo;
int dc;
char tring[5]; int pwm,pwm1;
int i=0; char cadena[6]; //Guardará el
string recibido
#define trig pin_A1 int i=0,o=0; //Número de caracteres del
#define echo pin_A2 string
#USE standard_io(a) float
46
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
h;/********************************
INT valor1; **********************************
************/
#INT_RDA
RDA_isr() /************************FUNCIÓN
{ PRINCIPAL***********************
valor1=getc(); **********/
} //Interrupción por recepción
de datos
void main() #int_RDA
{ RDA_isr()
INT x; {
CHAR k; leer:
enable_interrupts(INT_RDA); cadena[i]=getc();//Recepción del string
enable_interrupts(GLOBAL);
lcd_init(); if(cadena[i]=='B')//todos los caracteres
kbd_init(); recibidos
printf(lcd_putc,"1=>Temp M.DC"); {o=1;i=0;goto leer;
lcd_gotoxy(1,2); set_pwm2_duty(0);}
printf(lcd_putc,"2=dis-servo"); if(cadena[i]=='A')//todos los caracteres
recibidos
setup_adc(ADC_CLOCK_INTERNAL); {o=2;i=0;goto leer;
set_pwm1_duty(0);}
setup_timer_1(T1_INTERNAL|T1_DIV_ if(cadena[i]=='C')//todos los caracteres
BY_1); recibidos
{o=3;i=0;goto leer;
FLOAT sensor=0; set_pwm1_duty(0);
WHILE(1) set_pwm2_duty(0);}
{
k=kbd_getc(); if(o==1)
{
IF(k!=0) ++i;
{ if(i==6)//todos los caracteres recibidos
x=k; {
if (k=='2') //recibe el siguiente caracter
{ putc('A');} h=atof(cadena);//paso del string a su
if (k=='1') valor float
{ putc('B');} lcd_gotoxy(1,1);
if (k=='A') printf(lcd_putc,"temp= %f ",h);
{ putc('C');}
} pwm=(5.1)*h-255;
pwm1=pwm;
IF(x=='1') dc=(pwm*100.00)/255.00;
{ if(h<50)
set_adc_channel(0);//lectura Vout {
del LM35 en PIN A0 set_pwm1_duty(0);
delay_us(1); lcd_gotoxy(1,2);
printf(lcd_putc," DC 0 ");
47
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
sensor=read_adc();//sensor=variable que }
contendra Vout del LM35 if(h>=50&&h<=100)
sensor=(sensor*4.88)/10; {
set_pwm1_duty(pwm1);
lcd_gotoxy(1,1);printf(LCD_PUTC,"TE lcd_gotoxy(1,2);
MP%f C ",sensor); printf(lcd_putc," DC %i ",dc);
}
sprintf(tring,"%01.2f",sensor); if(h>100)
{
pwm=(5.1)*sensor-255; set_pwm1_duty(255);
pwm1=pwm; lcd_gotoxy(1,2);
dc=(pwm*100.00)/255.00; printf(lcd_putc," DC 100 ");
if(sensor<50) }
{ i=0;
lcd_gotoxy(1,2); }
printf(lcd_putc," DC 0 "); }
} if(o==2)
if(sensor>=50&&sensor<=100) {
{ ++i;
if(i==6)//todos los caracteres recibidos
lcd_gotoxy(1,2); {
printf(lcd_putc," DC %i //recibe el siguiente caracter
",dc); h=atof(cadena);//paso del string a su
} valor float
if(sensor>100) lcd_gotoxy(1,1);
{ printf(lcd_putc,"dist= %f ",h);
lcd_gotoxy(1,2); lcd_gotoxy(1,2);
printf(lcd_putc," DC 100 "); if(h<30)
} {
// puts(tring); set_pwm2_duty(0);
for (i=0;i<=5;i++) lcd_gotoxy(1,2);
{ printf(lcd_putc,"ang: 0 ");
putc(tring[i]); }
} if(h>=10&&h<20)
} {
IF(x=='2') set_pwm2_duty(42);
{ lcd_gotoxy(1,2);
output_high(trig); printf(lcd_putc,"ang: 30 ");
delay_us(10); }
output_low(trig); if(h>=20&&h<30)
{
WHILE(!input(echo)) set_pwm2_duty(85);
{} lcd_gotoxy(1,2);
set_timer1(0); printf(lcd_putc,"ang: 60 ");
}
WHILE(input(echo)) if(h>=30&&h<40)
{} {
tiempo=get_timer1(); set_pwm2_duty(127);
48
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
distancia=(tiempo/2)/(29.15); lcd_gotoxy(1,2);
lcd_gotoxy(1,1); printf(lcd_putc,"ang: 90 ");
printf(lcd_putc,"Dis=%f cm }
",distancia); if(h>=40&&h<50)
sprintf(tring,"%01.2f",distancia); {
//puts(tring); if(h<30) set_pwm2_duty(170);
{ lcd_gotoxy(1,2);
lcd_gotoxy(1,2); printf(lcd_putc,"ang: 120 ");
printf(lcd_putc,"ang: 0 "); }
} if(h>=50&&h<60)
if(distancia>=10&&distancia<20) {
{ set_pwm2_duty(212);
lcd_gotoxy(1,2); lcd_gotoxy(1,2);
printf(lcd_putc,"ang: 30 "); printf(lcd_putc,"ang: 150 ");
} }
if(distancia>=20&&distancia<30)
{ if(h>60)
lcd_gotoxy(1,2); {
printf(lcd_putc,"ang: 60 "); set_pwm2_duty(255);
} lcd_gotoxy(1,2);
if(distancia>=30&&distancia<40) printf(lcd_putc,"ang: 180 ");
{ }
lcd_gotoxy(1,2); i=0;
printf(lcd_putc,"ang: 90 "); }
} }
if(distancia>=40&&distancia<50) if(o==3)
{ {
lcd_gotoxy(1,2); set_pwm1_duty(0);
printf(lcd_putc,"ang: 120 "); set_pwm2_duty(0);
} printf(lcd_putc,"1=>Temp M.DC ");
if(distancia>=50&&distancia<60) lcd_gotoxy(1,2);
{ printf(lcd_putc,"2=dis-servo ");
lcd_gotoxy(1,2); }
printf(lcd_putc,"ang: 150 "); }
} void main()
{
if(distancia>=60) setup_ccp1(CCP_PWM);
{ setup_ccp2(ccp_pwm);
lcd_gotoxy(1,2); setup_timer_2(T2_DIV_BY_4,249,1);
printf(lcd_putc,"ang: 180 "); enable_interrupts(int_RDA);
} enable_interrupts(GLOBAL);
for (i=0;i<=5;i++) lcd_init();
{ set_pwm1_duty(0);
putc(tring[i]); set_pwm2_duty(0);
printf(lcd_putc,"1=>Temp M.DC ");
} lcd_gotoxy(1,2);
} printf(lcd_putc,"2=dis-servo ");
IF(x=='A') while(1)
49
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
{ {
lcd_gotoxy(1,1); }}
printf(lcd_putc,"1=>Temp M.DC
");
lcd_gotoxy(1,2);
printf(lcd_putc,"2=dis-servo ");
} } }
9. EJERCICIOS PROPUESTOS
1. Sistemas Digitales
Sin realización de ejercicios en la primera semana.
2. Autómatas Finitos
Ejercicio Propuesto 1
• Tema
Detector de código segmentado
• Objetivos
- General
➢ Diseñar un detector segmentado de código (11) con indicador led
- Específicos
➢ Diseñar un detector de código segmentado usando una máquina
secuencial tipo Moore
➢ Simular el detector de código.
• Materiales y Equipos
➢ Computadora
➢ Apuntes de clases
➢ Software Proteus
➢ Software BooleDeusto
• Desarrollo
50
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Simulación Proteus
• Resultados
El diseño del detector realizado en Boole no presenta fallos, al ingresar la secuencia
detecta los códigos de manera correcta en la simulación del detector segmentado
realizado en Proteus se adiciono un led a la salida del circuito para saber cuándo ha
sido ingresado una secuencia correcta, para ingresar la secuencia se usó un
estimulador lógico, para tener control sobre el cambio de ciclo la señal CLK
también se la hace con un estímulo lógico.
Ejercicio Propuesto 2
• Tema
Detector de código 1001
51
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Objetivos
- General
➢ Diseñar un detector de código continuo y segmentado.
- Específicos
➢ Diseñar un detector de código continuo y segmentado usando una
máquina secuencial tipo Mealy.
➢ Diseñar un detector de código continuo y segmentado usando una
máquina secuencial tipo Moore.
➢ Simular en Proteus el detector de código de las diferentes máquinas
secuenciales.
• Materiales y Equipos
➢ Computadora
➢ Apuntes de clases
➢ Software Proteus
➢ Software BooleDeusto
• Desarrollo
➢ Diseño en Boole
Detector Continuo
Detector Segmentado
52
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Simulación en Proteus
Detector Continuo
Detector Segmentado
53
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Detector segmentado
➢ Simulación en Proteus
Detector Continuo
54
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Detector Segmentado
• Resultados
Los diseños del detector de 4 bits realizados sen Boole detectan la secuencia
sin fallo alguno tanto en la máquina tipo Mealy (continuo y segmentado) y
Moore (continuo y segmentado) el cual tiene una salida para indicar la
detección de cada código.
Ejercicio Propuesto 3
• Tema
Detector de código 00
• Objetivos
- General
➢ Diseñar un detector de código (00)
- Específicos
➢ Diseñar un detector de código segmentado usando una máquina
secuencial tipo Mealy y Moore.
➢ Simular el detector de código en Proteus.
• Materiales y Equipos
➢ Computadora
➢ Apuntes de clases
➢ Software Proteus
➢ Software BooleDeusto
• Desarrollo
55
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Simulación en Proteus
Detector Segmentado
56
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Simulación en Proteus
Detector Segmentado
• Resultados
El diseño del detector realizado en Boole no presenta fallos, al ingresar la
secuencia detecta los códigos de manera correcta sin presentar errores. Para
tener control sobre el cambio de ciclo la señal CLK dentro de la simulación
de Proteus se la hace con un estímulo lógico
Ejercicio Propuesto 4
• Tema
Detector de código 11
• Objetivos
- General
➢ Diseñar un detector de código (11)
- Específicos
➢ Diseñar un detector de código continuo usando una máquina
secuencial tipo Mealy
57
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Simulación en Proteus
Detector Continuo
• Resultados
El diseño del detector continuo realizado en Boole de maquina tipo Mealy
funciona correctamente. En la simulación realizada en Proteus se puede
observar que al ingresar la secuencia este detecta los códigos sin fallo
alguno.
3. Detectores de Código
Tema
58
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
59
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Tabla de Diseño
Simulación
60
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Tema
Contador de códigos de 3 bits (101) Mealy Continuo con Flip-Flop D.
Objetivos
➢ General
Realizar un Contador de códigos de 3 bits (101) con el modelo de autómata
finito Mealy continuo con Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy continuo en el
software Boole Deusto.
61
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Tabla de Diseño
62
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
63
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
➢ Cada uno de los autómatas finitos que se analizaron deben orientar de
forma diferente en que se podría realizar un diagrama de estados sea
usando la máquina de Mealy y Moore para su implementación.
➢ El diseño de de los diagramas aplicados fueron implementado en hojas
para después aplicar en un diagrama de estados en un software llamado
Boole Deusto el cual permitió la comprobación con lo que permitirá
clarificar cada uno de las transiciones y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de
la simulación de secuencia y tabla de diseño, a su vez se puede
implementar mediante flip-flops que son más utilizados y representados
en los mapas K.
Tema
Contador de códigos de 3 bits (101) Mealy Segmentado con Flip-Flop J-K.
Objetivos
➢ General
Realizar un Contador de códigos de 3 bits (101) con el modelo de autómata
finito Mealy segmentado con Flip-Flop J-K.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy segmentado en el
software Boole Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de
secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y
salidas.
Descripción
Diseñar un contador de códigos de 3 bits (101) con el modelo de Mealy
segmentado, realizar el diseño, diagrama y tablas respectivas utilizando el
software Boole Deusto e implementarlo en Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Deusto
➢ Software de simulación Proteus
➢ Apuntes de clases
64
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
Tabla de Diseño
65
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
66
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
67
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Tema
Contador de códigos de 3 bits (101) Mealy Segmentado con Flip-Flop D.
Objetivos
➢ General
Realizar un Contador de códigos de 3 bits (101) con el modelo de autómata
finito Mealy segmentado con Flip-Flop D.
➢ Específicos
1. Establecer el diagrama de estados para el modelo Mealy segmentado en el
software Boole Deusto.
2. Ejecutar la tabla transición de estados y salidas, y la tabla de simulación de
secuencia.
3. Llevar a cabo la tabla de diseño para obtener las funciones de estados y
salidas.
Descripción
Diseñar un contador de códigos de 3 bits (101) con el modelo de Mealy
segmentado, realizar el diseño, diagrama y tablas respectivas utilizando el
software Boole Deusto e implementarlo en Proteus.
Listado de Materiales y Equipos
➢ Software de simulación Boole Deusto
➢ Software de simulación Proteus
➢ Apuntes de clases
➢ Lápiz
➢ Papel
➢ Borrador
Diagrama de estados
68
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Tabla de Diseño
69
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
70
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
➢ Cada una de los autómatas finitos que se analizaron dan a conocer la
forma diferente en que se podría realizar un diagrama de estados sea
usando la máquina de Mealy y Moore para su implementación.
➢ Cada una de los diagramas aplicados fueron implementada en hojas para
después aplicar en un diagrama de estados en un software llamado Boole
Deusto el cual permitió la comprobación con lo que permitirá clarificar
cada uno de las transiciones y salidas que se dio en el diagrama.
➢ La transición que toma cada uno de los estados permitió la realización de la
simulación de secuencia y tabla de diseño, a su vez se puede implementar
mediante flip-flops que son más utilizados y representados en los mapas K.
4. Microcontroladores
Tema
Desarrollo del control de una secuencia de leds con Arduino, Pic C
Compiler mediante su simulación en Proteus.
Objetivos
General
Desarrollar el control de una secuencia de leds mediante Arduino y Pic.
Específicos
• Investigar sobre la estructura del ARDUINO y PIC C COMPILER.
• Establecer el código para el control de una secuencia de leds en
Proteus.
• Verificar el funcionamiento de la simulación con los dos software y
Proteus.
71
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Descripción
Realizar una secuencia de leds mediante la manipulación de
microcontroladores y la simulación con Proteus.
Diagramas y Esquemas
EJERCICIO 1
72
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
73
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
74
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
75
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
delay (500);
digitalWrite(led6,LOW); //muestra del
led
delay (500);
digitalWrite(led7,LOW); //muestra del
led
delay (500);
}
EJERCICIO 2
Descripción: Control de giro de un motor con 3 diferentes velocidades
Control de menú principal Control giro Control velocidad
ON: * A: derecha 7: velocidad 1
OFF : # D: izquierda 8: velocidad 2
9: velocidad 3
76
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
77
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
78
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
8
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
{ if(teclado == 'D') {
lcd_gotoxy(1,1); output_low(pin_a1);
lcd_putc(" Sistema ON "); output_high(pin_a2); goto
lcd_gotoxy(1,2); giroIzquierda;}
lcd_putc("G=Izqu "); else if(teclado == '#') {goto
output_c(8); off;}
delay_ms(tiempo); else if(teclado == '1')
output_c(4); {output_a(11); velocidad1();}
delay_ms(tiempo); else if(teclado == '2')
output_c(2); {output_a(19); velocidad2();}
delay_ms(tiempo); else if(teclado == '3')
output_c(1); {output_a(35); velocidad3();}
delay_ms(tiempo); }
} } }
}
off:
output_a(0);
output_c(0);
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
apagado();
}
}
}
• TEMA
Control Básico de Motor a pasos
• OBJETIVOS
- Objetivo General
Desarrollar un programa que permita controlar el giro de un motor a pasos.
- Objetivos Específicos
Realizar la programación para un microcontrolador ATMega
Simular y verificar el funcionamiento del sistema usando el software Proteus.
• MATERIALES Y EQUIPOS
- Software Arduino IDE
- Software Proteus
- Computadora
- Apuntes de clases
• DESCRIPCION
Realizar un programa que permita controlar el giro horario y antihorario de un motor
a pasos, mediante el uso de interruptor que cambien el sentido, y además un
potenciómetro que regule la velocidad del mismo.
• DESARROLLO
Código de Programación
1. #include <Stepper.h>
2. #define STEPS 4
3. Stepper stepper(STEPS, 8, 9, 10, 11);
4.
5. const int boton = 4;
6. const int pot = A0;
7.
8. void setup()
9. {
10.
11. pinMode(boton, INPUT_PULLUP);
12. }
10
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
13.
14. int dir_ = 1, speed_ = 0;
15.
16. void loop()
17. {
18. if ( digitalRead(boton) == 0 )
19. if ( debounce() )
20. {
21. dir_ *= -1;
22. while ( debounce() ) ;
23. }
24. int val = analogRead(pot);
25.
26. if ( speed_ != map(val, 0, 1023, 5, 100) )
27. {
28. speed_ = map(val, 0, 1023, 5, 100);
29.
30. stepper.setSpeed(speed_);
31. }
32.
33. stepper.step(dir_);
34.
35. }
36.
37. bool debounce()
38. {
39. byte count = 0;
40. for(byte i = 0; i < 5; i++) {
41. if (digitalRead(boton ) == 0)
42. count++;
43. delay(10);
44. }
45. if(count > 2) return 1;
46. else return 0;
47. }
Simulación en Proteus
11
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• TEMA
Control de velocidad de un motor mediante un sensor de temperatura LM35.
• OBJETIVOS
- General:
Conocer el funcionamiento de las señales PWM mediante la aplicación del
control de velocidad de un motor DC con un sensor de temperatura.
- Específicos:
Aplicar el uso de señales PWM.
Controlar los parámetros para determinar correctamente el ancho de pulso de
la frecuencia del C.I.
• MATERIALES Y EQUIPOS
- Software PIC C Compiler
- Software Proteus
- Computadora
- Apuntes de clases
• DESCRIPCION
La presente practica plantea el uso de señales PWM para control de un motor
DC mediante un sensor de temperatura para lo cual se usará PIC.
En el caso del PIC podemos usar frecuencias diferentes al poder acoplarle un
oscilador externo por lo que se debe calcular su valor de pre-escalamiento, en
este caso se ha trabajado con 4MHz.
• DESARROLLO
Código de Programación
48. #include <16f887.h>
49. #device adc=10
50. #fuses intrc,hs
51. #use delay (clock=4M)
52. #include <lcd.c>
53. float t,m;
54. int16 s;
55. void main(){
56. setup_adc_ports(all_analog);
57. setup_adc(adc_clock_internal);
58. lcd_init();
59. set_tris_c(0b000);
60. setup_timer_2(t2_div_by_16,62,1);
61. setup_ccp1(ccp_pwm);
62. while(TRUE){
63. set_adc_channel(0);
64. delay_ms (1);
65. s=read_adc();
66. m=s*0.83;
67. t=(s*0.4883);
68. lcd_gotoxy(1,1);
69. printf(lcd_putc,"Temp= %6.3f",t);
70. lcd_gotoxy(1,2);
71. printf(lcd_putc,"PWM= %6.0f",m);
72. set_pwm1_duty(s);
73. delay_ms(1000);
74. }
12
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación en Proteus
Ejercicio propuesto 1
• Tema:
• Objetivos:
▪ General
• Construir un control de acceso seguro mediante un teclado matricial y
visualización en LCD mediante el uso de arduino y pics.
▪ Específicos
• Definir parámetros para la programación tanto en la interfaz arduino
como en la de pic c compiler.
Realizar un ejercicio que defina el control de acceso seguro para esto usaremos un
teclado el cual nos ayudara en primera instancia a preguntar que ponga la clave y si
13
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
▪ Computador
▪ Software arduino
▪ Software pic c compiler
▪ Software proteus
• Diagramas y Esquemas
PROGRAMACIÓN EN ARDUINO
if(!key){lcd.setCursor(0,0),lcd.print("Digite delay(2);
Password");}//portada de inicio en el LCD }
lcd_gotoxy(1,2); if((K!=0)&&(K=='#')){
printf(lcd_putc, "CLAVE
CORRECTA"); X--;
output_A(0x01); D[X]='0';
Y=0; lcd_gotoxy(X,2);
} printf(lcd_putc," ");
while(K!='*'); } }
X=1;
D="00000"; if(X==0){
i=0;
printf(lcd_putc,"\f"); X=1;
delay_ms(50); }
} if(Y==3)
{
else { do {
lcd_gotoxy(1,2);
printf(lcd_putc, "CLAVE printf(lcd_putc, "\f SISTEMA
INCORRECTA"); BLOQUEADO");
delay_ms(600); delay_ms(10);
X=1; }
Y++;
D="00000"; while(true);
i=0; }}
printf(lcd_putc, "\f");
} while(true);
}
• Resultados
Cómo podemos observar nos pide la contraseña la digitamos y si no es la correcta nos dará
contraseña incorrecta y si es se abrirá el circuito.
ARDUINO
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
PIC
Ejercicio propuesto 2
• Tema:
• Objetivos:
▪ General
▪ Específicos
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Descripción
▪ Computador
▪ Software arduino
▪ Software pic c compiler
▪ Software proteus
• Diagramas y Esquemas
PROGRAMACIÓN EN ARDUINO
10
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ilustración 24.- Programación en pic [Fiallos D., Rivera C., Lascano A., Tinta C.]
PROGRAMACIÓN PIC
#INCLUDE <16F887.H>
#fuses XT
#use delay(clock=4M)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8,stream=PORT1)
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#DEFINE USE_PORTB_KBD
#INCLUDE <LCD.C>
#INCLUDE <KBD4x4_1.C> //Incluir en while (DIR<17) // El maximo de
el encabezado el driver para digitos en el lcd es 16
#use standard_io(b) // Como un puerto {
estandar de entrada y salida if(k!='\0'){ // Guarda los
#byte PORTB= 6 //Direcciones de caracteres que se capturan del teclado...El '\0'
memoria de los puertos es un karacter que se guarda en la variable k
#BYTE PORTD= 8 LCD_GOTOXY(DIR,2); // Direcion
INT DIR; en el caso que haya ingresado un caracter
lcd_putc(k); // Imprimo lo que
// FUNCION TECLA //Captura los datos hay en el caracter k
del teclado k='\0'; //Indica que el caracter
char tecla(void) // Funcion encargada de esta vacio
esperar a que se presione una tecla DIR++; //Incrementa en uno a
{ la derecha del LCD
char c; //Define una variable caracter }
c k=tecla(); //Lee el valor del
do{ //espera hasta que se presione teclado y espera hasta que alguna tecla se
una tecla pulse
c=kbd_getc(); // c Queda preguntando por if(DIR>16)
el teclado LCD_PUTC("\f");
} }
while(c=='\0'); //mientras sea difeente a la }
vable nula
return(c); //Retona la tecla digitada
}
VOID MAIN()
{
CHAR K; // Variable donde
vamos acumular los valores del teclado
port_b_pullups (0xFF); //Utiliza las
resistencias PULL UP internas del puerto B
SET_TRIS_B(0); //salidas
LCD_INIT(); //Inicializar del
lcd
KBD_INIT(); //Inicializar del
teclado Matricial
LCD_PUTC("\f"); //Borro la
pantalla LCD
WHILE(1)
{
DIR=1; //Inicializamos la
direccion en la pocicion 1
LCD_GOTOXY(1,1); // Ubicacomo
el mesaje Teclas ingresadas
LCD_PUTC("Teclas Ingresadas:");
LCD_GOTOXY(1,2); //Ubica el
cursor del LCD en la siguiente linea
9
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Resultados
ARDUINO
7. Comunicaciones
Ejercicio Propuesto 1
Tema Control de intensidad
Objetivos
• General
➢ Controlar la intensidad de un LED utilizando señales de un potenciómetro
• Específicos
➢ Utilizar arduino para controlar la intensidad de un LED
➢ Demostrar el porcentaje de trabajo del potenciómetro
Descripción
Diseñar un sistema que controle la intensidad de un led mediante un potenciómetro
22
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Debe contar con un LCD que muestre el valor que está tomando el potenciómetro
• Debe mostrar el porcentaje que se está mostrando (0-100%)
Listado de Materiales y Equipos
• Software de simulación Proteus
• Arduino IDE
• Pantallas LCD 16x2
• Placa Arduino
• Led
• Potenciómetro
Diagramas y Esquemas
PIC C COMPILER ser valores 1,4,16, timer2, poscaler
setup_ccp1(ccp_pwm); //
#INCLUDE <16f887.H> configuramos el pwm
#device adc=10 //trabajar a 10 bits en LCD_INIT(); //Inicializar el driver
la conversion analogo digital del lcd
#USE DELAY(CLOCK=4000000) WHILE(1) { //Lectura ADC
#FUSES//XT,NOPROTECT,NOWDT set_adc_channel(0//Selecciono el
,NOBROWNOUT,NOPUT,NOLVP canal 0 (RA0)
#INCLUDE <LCD.C>
float duty=0;//Variable almacena ciclo duty=read_adc();tem=(duty*500)/102
de trabajo los bits de 0-255 4;
float tem;//Almacena la temperatura //Conversion de bits a temperatura
int Timer2, Poscaler; // configuracion 0.4882
del timer 2 volt1=tem/100;
float volt1; lcd_gotoxy(1,1);
#define s1 pin_A3 //salida uno del printf(lcd_putc, "VPOT=
driver %1.1f",duty); //Muestra el valor
#define s2 pin_A4 // salida 2 del numerico de la conversion
driver lcd_gotoxy(1,2);
#use standard_io(A) printf(lcd_putc, "V= %f",volt1);
///Para mapear los datos if(tem>30){
double map(double value, float x_min, int32 duty0=map( tem, 30, 80, 0,
float x_max, float y_min, float 100);
y_max); int32 final=map( duty0, 0, 100, 0,
VOID MAIN(){ 1023);
setup_adc_ports(sAN0);//Pongo int d=final/10;
RA0 como analogo output_low(s2);
setup_adc(adc_clock_internal); output_high(s1);
//Selecciono reloj interno para set_pwm1_duty(final);}}}
conversion analogo digital double map(double value, float x_min,
set_tris_a(0b00000001); float x_max, float y_min, float y_max)
//Pongo el RA0 como entrada {return (y_min + (((y_max -
Timer2=249; // es un timer de 8 y_min)/(x_max - x_min)) * (value -
bits. El timer 2 tine un prescaler y un x_min)));
poscaler }
Poscaler=1; //en la configuracion
del timer 2 el poscaler debe tener un ARDUINO
valor de 1
setup_timer_2(t2_div_by_4,Timer2,Po #include <LiquidCrystal.h>;
scaler); //t2_div_by_4=prescaler puede LiquidCrystal lcd(9, 8, 7, 13, 12, 11,
23
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
10);
int LED=3;
float POT=A0;
float t=0;
int bri;
void setup() {
pinMode(LED, OUTPUT);
pinMode(POT, INPUT);
lcd.begin(16,2);
Serial.begin(9600);}
void loop() {
//VELOCIDAD DE ACUERDO A LA
TERMPERATURA
bri=analogRead(POT);
t=((bri*10/1023)*10);
analogWrite(LED,bri);
//MUESTRA DE TEMPERATURA
EN LCD
lcd.setCursor(0,0);
lcd.print("Valor:");
lcd.setCursor(6,0);
lcd.print(bri );
lcd.setCursor(0,1);
lcd.print("%Pot:");
lcd.print(t);
delay(100);
lcd.clear();}
Resultados
5
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ejercicio Propuesto 2
Tema
Comunicación Inalámbrica
Objetivos
• General
➢ Desarrollar una comunicación inalámbrica que nos permita enviar datos mediante
la comunicación Bluetooth
• Específicos
➢ Realizar la programación para ambos microcontroladores tanto para PIC Y Atmega
➢ Realizar la simulación de ambos microcontroladores para la visualización de
resultados
Descripción
Diseñar un sistema de comunicación inalámbrico para un teclado matricial en el cual se
envíen los caracteres del teclado a otro microcontrolador mediante bluetooth, además debe
contar con las siguientes características:
• Debe contar ambos microcontroladores pantallas LCD para que se pueda visualizar el dato
enviado y el dato recibido
• El teclado matricial debe ir conectado en el microcontrolador que actúa de Master
• Simulación tanto para microcontrolador PIC y arduino
Listado de Materiales y Equipos
• Software de simulación Proteus
• Software de programación Pic C Compiler
• Arduino IDE
• Teclado matricial 4x4
• Pantallas LCD 16x2
• Microcontrolador PIC 16F887
• Placa Arduino
Diagramas y Esquemas
28
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
RECEPTOR
#include <LiquidCrystal.h>;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int c;
void setup()
{ lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print("Tecla Presionada");
Serial.begin(9600);}
void loop() {
if(Serial.available()){
c=Serial.read();
if (c =='1') {lcd.setCursor(8,1);
lcd.print('1');
delay(100);}
if (c =='2'){lcd.setCursor(8,1);
lcd.print('2');
delay(100);}
if (c =='3') {lcd.setCursor(8,1);
lcd.print('3');
delay(100);}
if (c =='4') {lcd.setCursor(8,1);
lcd.print('4');
delay(100);}
if (c =='5') {lcd.setCursor(8,1);
lcd.print('5');
delay(100);}
5
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
while(c=='\0');
PIC C COMPILER return(c);}
EMISOR char teclado() {
unsigned int16 timeout;
#INCLUDE <16F887.H> timeout=0;
#FUSES//XT,NOPROTECT,NOWDT,NOBR tec=kbd_getc(); // Valor del teclado
OWNOUT,NOPUT,NOLVP while(tec=='\0' && (++timeout<
#use delay(clock=4M) (200*100))){
#define LCD_ENABLE_PIN PIN_D0 delay_us(5);
#define LCD_RS_PIN PIN_D1 tec=kbd_getc(); // Valor del teclado}
#define LCD_RW_PIN PIN_D2 return(tec);}
#define LCD_DATA4 PIN_D4 void menu(){
#define LCD_DATA5 PIN_D5 tec=teclado();//lectura teclado
#define LCD_DATA6 PIN_D6 if(tec!=0){
#define LCD_DATA7 PIN_D7 if(tec=='0'){//regresar
#use rs232(baud=9600,xmit=pin_c6, } espera ();
rcv=pin_c7, parity=N, bits=8, if(c=='1'){putc('1');
stream=PORT1) lcd_gotoxy(1,2);
#DEFINE USE_PORTB_KBD lcd_putc('1');}
#INCLUDE <LCD.C> if(c=='2'){putc('2');
#INCLUDE <KBD4x4.C> //Incluir en el lcd_gotoxy(1,2);
encabezado lcd_putc('2');}
#use standard_io(b) if(c=='3'){putc('3');
#byte PORTB= 6 //Direcciones de lcd_gotoxy(1,2);
memoria lcd_putc('3');}
#BYTE PORTD= 8 if(c=='3'){putc('3');
#byte portc=7 lcd_gotoxy(1,2);
#byte portb=6 lcd_putc('1');}
#byte portd=8 if(c=='4'){putc('4');
#byte porta=5 lcd_gotoxy(1,2);
char tec='\0'; lcd_putc('4');}
char c; if(c=='5'){putc('5');
//lectura del teclado lcd_gotoxy(1,2);
char espera (){ lcd_putc('5');}
do {c=kbd_getc(); //Captura valor del if(c=='6'){putc('6');
teclado} lcd_gotoxy(1,2);
30
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
31
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100);}}
if(recibido=='0'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100);}}
if(recibido=='#'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100); }}
if(recibido=='A'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100); }}
if(recibido=='B'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100); } }
if(recibido=='C'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100); }}
if(recibido=='D'){if(recibido!='\0'){
LCD_GOTOXY(1,2);
lcd_putc(recibido);
recibido='\0';
delay_ms(100); }}}
//FUNCION PRINCIPAL
void main(){ set_tris_c(0b10000011);
lcd_init();//iniciar LCD
enable_interrupts(INT_RDA);//Interrupcion
por serial
enable_interrupts(GLOBAL);//Interrupciones
como globales
while(true){
recibir();
}
}
32
Ilustración 42: Tecla enviada
Emisor
#include <LiquidCrystal.h>
#include <Keypad.h> //Defenimos las librerias a utilizar en este caso la del teclado, la del lcd, y
la del servo
#include <NewPing.h>
#define TRIGGER_PIN 13
#define ECHO_PIN 12 // Pines del sensor de distancia y distancia maxima
#define MAX_DISTANCE 200
char keys[rowsCount][columsCount] = {
{ '7','8','9', 'A' },
{ '4','5','6', 'B' }, /Distribucion del teclado
{ '1','2','3', 'C' },
{ '#','0','*', 'D' }
};
const byte rowPins[rowsCount] = { 22, 23, 24, 25 }; ///Pines de las filas y columnas del telcado
const byte columnPins[columsCount] = { 26, 27, 28, 29 };
int temp;
float temp2;
float volt;
int adc;
int pinLM35 = 6; /VARIABLES QUE SE EMPLEAN
char aux;
int dist;
float dist2;
char key;
void setup() {
lcd.begin(16,2); // Tamñao del LCD
lcd.print("1 Control Temp");
lcd.setCursor(0,1); //Comando para cambio de Fila en LCD
lcd.print("0 Control Dist");
Serial.begin(9600); //Velocidad de la Comunicacion Serial
}
void loop() {
if(key=='1'){
aux= '1';
while(aux == '1') {
opcion_A();
if(key=keypad.getKey()){ //Ejecuta la opcion A hasta presionar otra tecla
aux ='0';
}
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
}
if(key=='0'){
aux='0';
while( aux == '0'){
opcion_B();
if(key = keypad.getKey()){ //Ejecuta la opcion B hasta presionar otra tecla
aux = '1';
}
}
}
lcd.setCursor(0,0);
lcd.print("Control Tempe");
adc=analogRead(pinLM35);
lcd.setCursor(0,1);
lcd.print("CD:");
lcd.print(adc);
temp=(5.0 * adc * 100.0)/1024.0;
temp2=(5.0 * adc * 100.0)/1024.0;
lcd.print("T:");
lcd.print(temp);
volt=temp2/100;
lcd.print("V:");
lcd.print(volt);
Serial.print("1");
Serial.print("-"); //Envia por BT "1-"temperatura""
Serial.print(temp);
Serial.println();
lcd.setCursor(0,0);
lcd.print("Control Tempe");
delay(1000);
lcd.clear();
}
lcd.print("Dist:");
int uS = sonar.ping_median();
dist = uS / US_ROUNDTRIP_CM;
dist2 = uS / US_ROUNDTRIP_CM;
lcd.print(dist2);
Serial.print("0");
Serial.print("-"); //Envia por BT "1-"temperatura""
Serial.print(dist);
Serial.println();
delay(1000);
lcd.clear();
}
Receptor
#include <LiquidCrystal.h> //Librerias del LCD
#define DEBUG(a) Serial.println(a); //Clase para obtener un valor String desde el puerto Serie
#include <Servo.h> //Libreria del Servo
int a;
int b; // variables Auxiliares
int c;
void setup(){
void loop() {
lcd.setCursor(0 , 0);
String str = Serial.readStringUntil('\n'); //Transforma el dato del puerto serie en string
DEBUG(str);
int parte1 = getValue(str,'-',0).toInt(); // Devuelve un entero separado por "-"
if ( 30 < parte2 <= 80) { //Incremento continuo 0 a 100 del DC si la TEMP esta entre 30 y
80
a= parte2-30;
b=(a*100)/50; // porcentaje //Aplicamos reglas de tres
c=(b*255)/100; // pulsasiones (0-255)
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, c);
lcd.setCursor(0, 1);
lcd.print("DC:");
lcd.print(b);
lcd.print("%");
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
}
if( parte2 > 80){ //si la TEMP es mayor a 80 coloca el DC en 0
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, speed1);
lcd.setCursor(0, 1);
lcd.print("DC:");
lcd.print("0");
lcd.print("%");
}
}
if(parte1 == 0){ //SI la primera parte del dato es 0, se ejecuta lo siguiente con el servo
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW); //Desabilita el motor DC
analogWrite(pinENA, speed1);
// lcd.clear();
lcd.setCursor(0,0);
lcd.print("ServoMotor DISTA");
// lcd.setCursor(0,1);
//lcd.print("MOV DEL SERVO");
if( parte2 <= 25){ //Si la distancia es menor a 25, coloca el servo a 45 grados
servoMotor.write(45);
lcd.setCursor(0,1);
lcd.print("SERVO 045°");
else if( parte2 <= 50){ //Si la distancia es menor a 50, coloca el servo a 90 grados
servoMotor.write(90);
lcd.setCursor(0,1);
lcd.print("SERVO 090°");
else if(parte2 <= 75){ //Si la distancia es menor a 75, coloca el servo a 135 grados
servoMotor.write(135);
lcd.setCursor(0,1);
lcd.print("SERVO 135°");
}
else if(parte2 <= 100){ //Si la distancia es menor a 100, coloca el servo a 180 grados
servoMotor.write(180);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
lcd.setCursor(0,1);
lcd.print("SERVO 180°");
else if( parte2 >= 101){ //Si la distancia es mayor a 101, coloca el servo a 60 grados
servoMotor.write(60);
lcd.setCursor(0,1);
lcd.print("SERVO 060°");
}
delay(500);
}
Ejercicio Propuesto 2
Diseñar un sistema de control mediante Bluetooth, el cuál conste de dos nodos, uno
que se encargue de la toma de datos, y otro que contenga los actuadores. El primero
debe tener dos sensores de distancia, del cual se obtendrá el promedio y se
establecerá un control discreto o continuo para un motor DC. En los dos LCD se debe
mostrar la misma información.
Emisor
1. #include <LiquidCrystal.h>
2. #include <Keypad.h>
3.
4. const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
5. LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
6.
7. const byte rowsCount = 4;
8. const byte columsCount = 4;
9.
10. char keys[rowsCount][columsCount] = {
11. { '7','8','9', 'A' },
12. { '4','5','6', 'B' },
13. { '1','2','3', 'C' },
14. { '#','0','*', 'D' }
15. };
16.
17. const byte rowPins[rowsCount] = { 22, 23, 24, 25 };
18. const byte columnPins[columsCount] = { 26, 27, 28, 29 };
19.
20. Keypad keypad = Keypad(makeKeymap(keys), rowPins, columnPins, rowsCount, columsCount);
21.
22. int temp1;
23. int temp2;
24. int prom;
25. int pin1 = 8;
26. int pin2 = 9;
27. char key;
28. char aux;
29. int gra;
30.
31. void setup() {
32. lcd.begin(16,2);
33. lcd.print("Modo Trabajo");
34. lcd.setCursor(0,1);
35. lcd.print("1MID-2MIC-A:MEN");
36. Serial.begin(9600);
37. }
38.
39. void loop() {
40.
41. lcd.setCursor(0,0);
42. lcd.print("S1:");
43. temp1 = analogRead(pin1);
44. temp1 = (5.0 * temp1 * 100.0)/1024.0;
45. lcd.print(temp1);
46. lcd.print("S2:");
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
177.
178. gra = 150;
179. lcd.print(gra);
180. lcd.print(" G");
181.
182.
183. }
184. if ( a >= 81 && a <= 90 ) {
185.
186. gra = 180;
187. lcd.print(gra);
188. lcd.print(" G");
189.
190.
191. }
192.
193. }
194. delay(1000);
195. lcd.clear();
196. }
197.
198.
199.
200. void opcion_B(){
201.
202. lcd.setCursor(0,1);
203. lcd.print("MIC-");
204. Serial.print("2");
205. Serial.print("-");
206. Serial.print(prom);
207. Serial.println();
208.
209. if ( prom >= 30 && prom <= 90){
210.
211. int a= prom-30;
212. int b=(a*180)/60; // grados
213.
214. gra = b;
215. lcd.print(gra);
216. lcd.print(" G");
217.
218.
219. if (prom > 90) {
220.
221. gra = 0;
222. lcd.print(gra);
223. lcd.print(" G");
224. }
225.
226. if (prom < 30) {
227.
228. gra = 0;
229. lcd.print(gra);
230. lcd.print(" G");
231.
232. }
233. }
234.
235. delay(1000);
236. lcd.clear();
237. }
238.
239. void opcion_C(){
240.
241. lcd.clear();
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
242. lcd.setCursor(0,0);
243. lcd.print("MENU PRINCIPAL");
244. Serial.print("3");
245. Serial.print("-");
246. Serial.print(prom);
247. Serial.println();
248. }
RECEPTOR
#include <LiquidCrystal.h>
#define DEBUG(a) Serial.println(a);
int a;
int b;
int c;
int pwm;
void setup(){
lcd.begin(16,2);
lcd.print("Esperando Orden");
pinMode(pinIN1, OUTPUT);
pinMode(pinIN2, OUTPUT);
pinMode(pinENA, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0){
lcd.setCursor(0 , 0);
String str = Serial.readStringUntil('\n');
DEBUG(str);
int parte1 = getValue(str,'-',0).toInt();
if(parte1 == 2){
lcd.setCursor(0,0);
lcd.print("S1:");
lcd.print(dist1);
lcd.print("S2:");
lcd.print(dist2);
lcd.print("P:");
lcd.print(prom);
lcd.setCursor(0,1);
lcd.print("MIC-");
pwm = 0;
int dc = 0;
lcd.print(pwm);
lcd.print("%");
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, pwm);
pwm = 0;
int dc = 0;
lcd.print(pwm);
lcd.print("%");
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, pwm);
a= prom-30;
b=(a*100)/50; // porcentaje
c=(b*255)/100; // pulsasiones (0-255)
pwm = b;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
lcd.print(pwm);
lcd.print("%");
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, c);
}
}
if (parte1 == 1){
lcd.setCursor(0,0);
lcd.print("S1:");
lcd.print(dist1);
lcd.print("S2:");
lcd.print(dist2);
lcd.print("P:");
lcd.print(prom);
lcd.setCursor(0,1);
lcd.print("MID-");
pwm = 0;
int dc = 0;
lcd.print(pwm);
lcd.print("%");
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, dc);
pwm = 0;
int dc = 0;
lcd.print(pwm);
lcd.print("%");
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, dc);
pwm = 20;
int dc = 51;
lcd.print(pwm);
lcd.print("%");
pwm = 40;
int dc = 102;
lcd.print(pwm);
lcd.print("%");
}
if ( a >= 21 && a <= 30 ) {
pwm = 60;
int dc = 153;
lcd.print(pwm);
lcd.print("%");
}
if ( a >= 30 && a <= 40 ) {
pwm = 80;
int dc = 204;
lcd.print(pwm);
lcd.print("%");
pwm = 100;
int dc = 255;
lcd.print(pwm);
lcd.print("%");
if(parte1 == 3){
lcd.clear();
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
lcd.setCursor(0,0);
lcd.print("MENU PRINCIPAL");
}
delay(500);
}
}
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
#BYTE PORTD= 8
#define trig pin_E1
#define echo pin_E0
//#define motor pin_E2
#USE standard_io(e)
#USE standard_io(c)
#BYTE WPUB= 0x95
#BYTE OPTION_REG = 0x81
int16 tiempo;
float distancia;
int16 tiempo1;
float distancia1;
char k;
char tecla(void)
{
char c;
do{ //espera hasta que se presione una tecla
c=kbd_getc(); //Captura valor del teclado
}
while(c=='\0');
return(c);
}
char tecla_time(void) {
char c='\0';
unsigned int16 timeout;
timeout=0;
c=kbd_getc(); //Captura valor del teclado
while(c=='\0' && (++timeout< (KEYHIT_DELAY*100)))
{
delay_us(10);
c=kbd_getc(); //Captura valor del teclado
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
return(c);
}
VOID MAIN()
{
CHAR K;
CHAR X;
CHAR Y;
CHAR Z;
port_b_pullups (0xFF); //Utiliza las resistencias PULL UP internas del puerto B
SET_TRIS_B(0);
//SET_TRIS_C(0); //Puerto C como Salida
setup_adc_ports(sAN0); //Pongo RA0 como analogo
setup_adc(adc_clock_internal); //Selecciono reloj interno para conversion
LCD_INIT(); //Inicializar el driver del lcd
KBD_INIT(); //Inicializar el driver del teclado
LCD_PUTC("\f"); //Limpia el LCD
LCD_GOTOXY(1,1); //Ubica el cursor del LCD
LCD_PUTC("MODO OPERACION");
LCD_GOTOXY(1,2); //Ubica el cursor del LCD
LCD_PUTC("1:MID,2:MIC,A:MENU");
WHILE(TRUE)
{
k=tecla_time();
if(k=='A'||X=='A'){
if(k=='A'){
putchar(164);
delay_ms(50);
}
lcd_putc("\f");
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{}
set_timer1(0);
while(input(echo))
{}
tiempo=get_timer1();
distancia=tiempo*0.14;
int n=distancia;
set_timer1(0);
delay_ms(450);
//////////////////
output_high(trig1);
delay_us(20);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
output_low(trig1);
while(!input(echo1))
{}
set_timer1(0);
while(input(echo1))
{}
tiempo1=get_timer1();
distancia1=tiempo1*0.14;
int n1=distancia1;
set_timer1(0);
delay_ms(450);
int promedio1=(n+n1)/2;
putchar(promedio1);
lcd_gotoxy(1,1);
printf(lcd_putc,"S1:%u",n);
lcd_gotoxy(5,1);
printf(lcd_putc,"S2:%u",n1);
lcd_gotoxy(8,1);
printf(lcd_putc,"P:%u",promedio1);
delay_ms(300);
X='A';
Y='F';
Z='F';
}
if(k=='B'||Y=='B'){
if(k=='B'){
putchar(165);
delay_ms(50);
}
lcd_putc("\f");
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{}
set_timer1(0);
while(input(echo))
{}
tiempo=get_timer1();
distancia=tiempo*0.14;
int n=distancia;
lcd_gotoxy(1,1);
printf(lcd_putc, "S1:%u",n);
set_timer1(0);
delay_ms(450);
//////////////////////
output_high(trig1);
delay_us(20);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
output_low(trig1);
while(!input(echo1))
{}
set_timer1(0);
while(input(echo1))
{}
tiempo1=get_timer1();
distancia1=tiempo1*0.14;
int n1=distancia1;
lcd_gotoxy(5,1);
printf(lcd_putc, "S2:%u",n1);
set_timer1(0);
delay_ms(450);
int promedio2=(n+n1)/2;
putchar(promedio2);
lcd_gotoxy(8,1);
printf(lcd_putc, "P:%u",promedio2);
delay_ms(300);
Y='B';
X='F';
Z='F';
}
if(k=='#'||Z=='#'){
LCD_PUTC("\f"); //Limpia el LCD
LCD_GOTOXY(1,1); //Ubica el cursor del LCD
LCD_PUTC("MODO OPERACION");
LCD_GOTOXY(1,2); //Ubica el cursor del LCD
LCD_PUTC("1:MID,2:MIC,A:MENU ");
delay_ms(300);
int cero=166;
putchar(cero);
Z='#';
Y='F';
X='F';
}
}
}
#INCLUDE <16F887.H>
#USE DELAY(CLOCK=4M)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
//#DEFINE USE_PORTB_LCD TRUE
#DEFINE USE_PORTB_KBD //Por defecto el teclado se conecta al puerto D,
#INCLUDE <LCD.C>
#INCLUDE <STDLIB.H>
#use RS232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
int valor;
#int_RDA
void RDA_isr(){
valor=getc();
}
void SONIC(){
while(TRUE){
if(valor>0){
lcd_putc("\f");
int pwm2=valor*50;
int porcen1=100;
lcd_gotoxy(1,1);
printf(lcd_putc,"Motor2 ON al:%u",porcen1);
lcd_gotoxy(1,2);
printf(lcd_putc, "Distancia=%u",valor);
delay_ms(100);
set_pwm2_duty(pwm2);
}
if(valor==165) break;
}
}
void SONIC1(){
while(TRUE){
if(valor>0){
lcd_putc("\f");
int pwm1=valor*50;
int porcen1=100;
lcd_gotoxy(1,1);
printf(lcd_putc,"Motor2 ON al:%u",porcen1);
lcd_gotoxy(1,2);
printf(lcd_putc, "Distancia=%u",valor);
delay_ms(100);
set_pwm2_duty(pwm1);
}
if(valor==164) break;
}
}
void APAGAR(){
while(TRUE){
printf(lcd_putc, "\fMOTORES OFF");
set_pwm2_duty(0);
delay_ms(300);
if(valor==164 || valor==165) break;
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
void main()
{
lcd_init();
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
SETUP_CCP2(CCP_PWM);
setup_timer_2(t2_div_by_4,250,1);
#INCLUDE <16F887.H>
#device adc=10
#USE DELAY(CLOCK=4M)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#fuses INTRC_IO, MCLR=0
#DEFINE USE_PORTB_KBD //Por defecto el teclado se conecta al puerto D,
#INCLUDE <LCD.C>
#INCLUDE <KBD4x4.C> //Incluir en el encabezado el driver para
#use standard_io(b)
#use standard_io(c)
#define KEYHIT_DELAY 200 //Tiempo de espera del teclado en milisegundos
#use RS232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N)
#byte PORTB= 6
#BYTE PORTA= 5
#BYTE PORTD= 8
#define trig pin_E1
#define echo pin_E0
#define motor pin_E2
#USE standard_io(e)
#USE standard_io(c)
#BYTE WPUB= 0x95
#BYTE OPTION_REG = 0x81
int16 tiempo;
float distancia;
char k;
WHILE(TRUE)
{
k=tecla_time();
if(k=='A'||X=='A'){
if(k=='A'){
putchar(164);
delay_ms(50);
}
LCD_GOTOXY(1,1);
set_adc_channel(0); //Selecciono el canal 0 (RA0)
delay_ms(1); //llamo retardo de 1 ms
bits=read_adc(); //Guarde el dato del LM en tempe
tem=bits*0.4882; //Conversion de bits a temperatura
volt=bits*5/1023; // conversion para el voltaje
LCD_PUTC("\f");
LCD_GOTOXY(1,1);
LCD_PUTC("SENSOR LM35 ");
LCD_GOTOXY(1,2); //Ubica el cursor del LCD
printf(lcd_putc,"A:%3.0f",bits);
LCD_GOTOXY(7,2); //Ubica el cursor del LCD
printf(lcd_putc,"T:%u",tem); //Muestra el valor numerico de la conversionconversion
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
}
}
}
void LM35(){
set_pwm1_duty(0);
while(TRUE){
if(valor>50 && valor<=80){
lcd_putc("\f");
int v=valor;
int pwm=(v-50)*8.3;
int porcen=pwm*0.402;
set_pwm2_duty(pwm);
lcd_gotoxy(1,1);
printf(lcd_putc,"DUTY CYCLE:%d",porcen);
lcd_gotoxy(1,2);
printf(lcd_putc, "MOTOR1:ON TEM:%u",v);
delay_ms(300);
}
if(valor>80 && valor<150){
int pwm1=249;
int v2=valor;
set_pwm1_duty(0);
set_pwm2_duty(pwm1);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"DUTY CYCLE:%d",100);
lcd_gotoxy(1,2);
printf(lcd_putc,"MOTOR1:ON T:%d",v2);
delay_ms(300);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
}
if(valor<=50){
lcd_putc("\f"); //Limpia el LCD
set_pwm2_duty(0);
set_pwm1_duty(0);
lcd_gotoxy(1,1); //Ubica el cursor del LCD
lcd_putc("MOTOR1 OFF");
lcd_gotoxy(1,2); //Ubica el cursor del LCD
printf(lcd_putc,"TEMPERATURA=%u",valor);
delay_ms(300);
}
if(valor==165 || valor==166) break;
}
}
void SONIC(){
set_pwm2_duty(0);
while(TRUE){
if(valor<=15){
lcd_putc("\f"); //Limpia el LCD
set_pwm1_duty(0);
output_high(PIN_B0); // ESCRIBE EL 9 EN BINARIO DE 8 BITS (enciende motor y led rojo)
output_low(PIN_B1); // ESCRIBE EL 9 EN BINARIO DE 8 BITS (enciende motor y led rojo)
delay_ms(20);
lcd_gotoxy(1,1); //Ubica el cursor del LCD
lcd_putc("MOTOR2 GIRO 180");
lcd_gotoxy(1,2); //Ubica el cursor del LCD
printf(lcd_putc,"DISTANCIA:=%u",valor);
delay_ms(300);
}
if(valor>15 && valor<=30){
int dis=(valor-15)*16.6;
int porcen1=180;
set_pwm1_duty(dis);
output_high(PIN_B1); // ESCRIBE EL 9 EN BINARIO DE 8 BITS (enciende motor y led rojo)
output_low(PIN_B0); // ESCRIBE EL 9 EN BINARIO DE 8 BITS (enciende motor y led rojo)
delay_ms(20);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Motor2 GIRO:%u",porcen1);
lcd_gotoxy(1,2);
printf(lcd_putc, "Distancia=%u",valor);
delay_ms(300);
}
if(valor>30){
int dis1=249;
int porcen2=100;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
set_pwm1_duty(dis1);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Motor2 ON al:%u",porcen2);
lcd_gotoxy(1,2);
printf(lcd_putc, "Distancia=%u",valor);
delay_ms(300);
}
if(valor==164 || valor==166) break;
}
}
void APAGAR(){
while(TRUE){
if(valor>0){
set_pwm2_duty(0);
set_pwm1_duty(0);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("MOTORES APAGADOS");
delay_ms(300);
}
if(valor==164 || valor==165) break;
}
}
void main()
{
lcd_init();
enable_interrupts(INT_RDA); //iniciamos la interrupcion RDA
enable_interrupts(GLOBAL); //iniciamos las interrupciones globales
SETUP_CCP1(CCP_PWM); //habilitamos los puertos PWM
SETUP_CCP2(CCP_PWM);
setup_timer_2(t2_div_by_4,249,1); //establecemos los parametros del timer 2
if(valor==165)
SONIC();
if(valor==166)
APAGAR();
}
}
RESULTADO
Segundo Parcial
Objetivos Específicos
✓ Desarrollar mediante la tabla de verdad un medio sumador
✓ Desarrollar un medio sumador mediante la ecuación de salida
✓ Desarrollar un medio sumador mediante su circuito interno
MATERIALES Y EQUIPOS
✓ Computadora
✓ ISE design suitei
DESARROLLO
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity semisumador is
5. Port ( E : in STD_LOGIC_VECTOR(1 DOWNTO 0);
6. S : out STD_LOGIC;
7. C : out STD_LOGIC);
8. end semisumador;
9.
10. architecture Behavioral of semisumador is
11.
12. begin
13. with E select
14. S <= '0' when "00",
15. '1' when "01",
16. '1' when "10",
17. '0' when others;
18. with E select
19. C <= '0' when "00",
20. '0' when "01",
21. '0' when "10",
22. '1' when others;
23.
24.
25. end Behavioral;
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
3.
4. entity EcClase is
5. Port ( A : in STD_LOGIC;
6. B : in STD_LOGIC;
7. Z : out STD_LOGIC;
8. C : out STD_LOGIC);
9. end EcClase;
10.
11. architecture Behavioral of EcClase is
12.
13. begin
14. z<= (A and B);
15. c<= (A xor B);
16.
17.
18. end Behavioral;
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity Mux21 is
5. Port ( A : in STD_LOGIC;
6. B : in STD_LOGIC;
7. S : in STD_LOGIC;
8. Z : out STD_LOGIC);
9. end Mux21;
10.
11. architecture Behavioral of Mux21 is
12. signal s0,s1:std_logic;
13. begin
14. s0<=A and(not S);
15. s1<=B and S;
16. Z<= s0 or s1;
17.
18. end Behavioral;
RESULTADOS
Resultados de circuito mediante tabla de verdad
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3. ENTITY Testtabla IS
4. END Testtabla;
5.
6. ARCHITECTURE behavior OF Testtabla IS
7.
8. -- Component Declaration for the Unit Under Test (UUT)
9.
10. COMPONENT TablaMux
11. PORT(
12. inp : IN std_logic_vector(1 downto 0);
13. S : IN std_logic;
14. Z : OUT std_logic
15. );
16. END COMPONENT;
17.
18. --Inputs
19. signal inp : std_logic_vector(1 downto 0) := (others => '0');
20. signal S : std_logic := '0';
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
21.
22. --Outputs
23. signal Z : std_logic;
24.
25. BEGIN
26.
27. -- Instantiate the Unit Under Test (UUT)
28. uut: TablaMux PORT MAP (
29. inp => inp,
30. S => S,
31. Z => Z
32. );
33. -- Stimulus process
34. stim_proc: process
35. begin
36. inp<="00"; wait for 10 ns;
37. inp<="01"; wait for 10 ns;
38. inp<="10"; wait for 10 ns;
39. inp<="11"; wait for 10 ns;
40. wait;
41. end process;
42.
43. END;
Ejercicios en clase 2:
TEMA
Programación y simulación de un half adder
OBJETIVOS
Objetivo General
✓ Realizar la programación y simulación de un medio sumador
Objetivos Específicos
✓ Desarrollar los programas mediante su tabla de verdad circuito y ecuación de salida
✓ Conocer el funcionamiento de cada entorno de ISE Design Suite
✓ Realizar las simulaciones
MATERIALES Y EQUIPOS
✓ Computadoras
✓ ISE Design Suite
DESARROLLO
Desarrollo mediante ecuación de salida
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity Mux22 is
5. Port ( I0,I1,S : in STD_LOGIC;
6. F : out STD_LOGIC);
7. end Mux22;
8.
9.
10. architecture Behavioral of Mux22 is
11.
12. begin
13.
14. F <= I1 when (S = '1') else I0;
15.
16. end Behavioral;
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3. entity Mux21 is
4. Port ( A : in STD_LOGIC;
5. B : in STD_LOGIC;
6. S : in STD_LOGIC;
7. Z : out STD_LOGIC);
8. end Mux21;
9.
10. architecture Behavioral of Mux21 is
11. signal s0,s1:std_logic;
12. begin
13. s0<=A and(not S);
14. s1<=B and S;
15. Z<= s0 or s1;
16.
17. end Behavioral;
RESULTADOS
Resultados ecuación de salida
Resultado señales
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3. ENTITY TestMux21 IS
4. END TestMux21;
5.
6. ARCHITECTURE behavior OF TestMux21 IS
7.
8. --
Component Declaration for the Unit U
nder Test (UUT)
9.
10. COMPONENT Mux21
11. PORT(
12. A : IN std_logic;
13. B : IN std_logic;
14. S : IN std_logic;
15. Z : OUT std_logic
16. );
17. END COMPONENT;
18.
19.
20. --Inputs
21. signal A : std_logic := '0';
22. signal B : std_logic := '0';
23. signal S : std_logic := '0';
24.
25. --Outputs
26. signal Z : std_logic;
27.
28. BEGIN
29.
30. --
Instantiate the Unit Under Test (UUT
)
31. uut: Mux21 PORT MAP (
32. A => A,
33. B => B,
34. S => S,
35. Z => Z
36. );
37. -- Stimulus process
38. stim_proc: process
39. begin
40. --
hold reset state for 100 ns.
41. wait for 10 ns;
42. -- insert stimulus here
43.
44. wait;
45. end process;
46.
47. END;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Ejercicio en clase 1
• TEMA
Convertidor de códigos
• OBJETIVOS
- Objetivo General
➢ Desarrollar un convertidor de código utilizando programación en
VHDL
- Objetivos Específicos
➢ Desarrollar mediante la tabla de verdad un convertidor de código
➢ Desarrollar un convertidor de código mediante las ecuaciones
➢ Simular cada convertidor utilizando un test bench
• MATERIALES Y EQUIPOS
- Computadora - ISE design suite
• DESARROLLO
CODIGO RESULTADO
CONVERTIDOR
DE CODIGO
SELECT CODIGO RES
OR
Tabla 3 Convertidor de código [Guerrero, M; Gutiérrez, L; Manotoa, K; Pérez, C]
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• RTL Schematic
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Technology Schematic
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Simulación
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Force Constant
➢ Mediante funciones:
Funciones:
GRAY
𝑐3 = (𝑒3 𝑒2′ 𝑒1′)
𝑐2 = (𝑒3 𝑒2′ 𝑒1′ ) + (𝑒3′ 𝑒2)
𝑐1 = (𝑒3′ 𝑒2 𝑒1′ ) + (𝑒3′ 𝑒2′ 𝑒1)
𝑐0 = (𝑒2′ 𝑒1′ 𝑒0) + (𝑒3′ 𝑒1 𝑒0′ ) + (𝑒3′ 𝑒1′ 𝑒0)
AIKEN 2421
𝑐3 = (𝑒3 𝑒2′ 𝑒1′) + (𝑒3′ 𝑒2′ 𝑒0) + (𝑒3′ 𝑒2′ 𝑒1)
𝑐2 = (𝑒3 𝑒2′ 𝑒1′) + (𝑒3′ 𝑒2′ 𝑒0′) + (𝑒3′ 𝑒2 𝑒1)
𝑐1 = (𝑒3′ 𝑒2 𝑒1′ ) + (𝑒3 𝑒2′ 𝑒1′ ) + (𝑒3′ 𝑒2′ 𝑒1)
𝑐0 = (𝑒2′ 𝑒1′ 𝑒0) + (𝑒3′ 𝑒0′ )
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
EXCESO 3
𝑐3 = (𝑒3 𝑒2′ 𝑒1′) + (𝑒3′ 𝑒2′ 𝑒0) + (𝑒3′ 𝑒2 𝑒1)
𝑐2 = (𝑒2′ 𝑒1′ 𝑒0′) + (𝑒3′ 𝑒2 𝑒1′ 𝑒0′) + (𝑒3′ 𝑒2′ 𝑒1)
𝑐1 = (𝑒2′ 𝑒1′ 𝑒0) + (𝑒3′ 𝑒1′ 𝑒0′ ) + (𝑒3′ 𝑒1 𝑒0)
𝑐0 = (𝑒2′ 𝑒1′ 𝑒0′) + (𝑒3′ 𝑒0′)
• Programación
Código principal
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3. use ieee.numeric_std.all;
4. use ieee.std_logic_unsigned.all;
5. use ieee.std_logic_arith.all;
6.
7. entity funciones is
8. Port ( entrada : in STD_LOGIC_VECTOR (3 downto 0);
9. salida : out STD_LOGIC_VECTOR (3 downto 0);
10. selector : in STD_LOGIC_VECTOR (1 downto 0);
11. s : out STD_LOGIC;
12. s1 : out STD_LOGIC;
13. s2 : out STD_LOGIC;
14. s3 : out STD_LOGIC);
15. end funciones;
16.
17. architecture Behavioral of funciones is
18. signal e0,e1,e2,e3,c0,c1,c2,c3 : std_logic;
19. signal cr : std_logic_vector(3 Downto 0);
20.
21. begin
22.
23. ------Codigo resultante por posiciones
24. cr(0)<=c0;
25. cr(1)<=c1;
26. cr(2)<=c2;
27. cr(3)<=c3;
28. ------Codigo resultante independientes por posiciones
29. s<=c0;
30. s1<=c1;
31. s2<=c2;
32. s3<=c3;
33. salida<=cr;
34.
35. process(selector,entrada)
36. begin
37. e0<=entrada(0);
38. e1<=entrada(1);
39. e2<=entrada(2);
40. e3<=entrada(3);
41. ------N-BCD----------
42. if(selector="00") then
43. c3<='0';
44. c2<='0';
45. c1<='0';
46. c0<='0';
47. end if;
48. ------GRAY----------
49. if(selector="01") then
50. c3<=(e3 and(not e2) and (not e1));
51. c2<=(e3 and(not e2)and (not e1))or((not e3)and e2);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• RTL Schematic
• Technology Schematic
• Simulación
Test bench
Simulación
Convertidor de código
Tema
Convertidor de código
Objetivos
➢ General
Descripción
Diseñar un convertidor de código de BCD a Gray, Aiken 2421 y Exceso 3, realizar el
programa con la programación en VHDL de los “component” y la simulación
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Tabla de conversiones
S1S0= 01 10 11
Codigo GRAY AIKEN 2421 EX 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0
0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1
0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1
0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0
0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1
0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0
1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1
1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Tabla 1 Tabla de conversiones de código NBCD a Gray, Aiken 2421 y Exceso 3.
Codificación
Conversor Gray
library IEEE; library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_1164.ALL;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
C3 <= CODIGO(3);
C2 <= CODIGO(2);
C1 <= CODIGO(1);
C0 <= CODIGO(0);
SALIDA <= CODIGO;
begin begin
A <= NBCD(3); A <= NBCD(3);
B <= NBCD(2); B <= NBCD(2);
C <= NBCD(1); C <= NBCD(1);
D <= NBCD(0); D <= NBCD(0);
G3 <= (A and not(B) and not(C)) or G3 <= (A and not(B) and not(C)) or
(not(A) and B and D) or (not(A) and B (not(A) and B and D) or (not(A) and B
and C); and C);
G2 <= (A and not(B) and not(C)) or G2 <= (not(B) and not(C) and D) or
(not(A) and B and not(D)) or (not(A) (not(A) and B and not(C) and not(D)) or
and B and C); (not(A) and not(B) and C);
G1 <= (not(A) and B and not(C) and D) G1 <= (not(B) and not(C) and not(D))
or (A and not(B) and not(C)) or (not(A) or (not(A) and not(C) and not(D)) or
and not(B) and C); (not(A) and C and D);
G0 <= (not(B) and not(C) and D) or G0 <= (not(B) and not(C) and not(D))
(not(A) and D); or (not(A) and not(D));
AIKEN <= G3 & G2 & G1 & G0; EXCESO3 <= G3 & G2 & G1 & G0;
end Behavioral; end Behavioral;
Simulación
stim_proc: process NBCD <= "0101";
begin SELECTOR <="10";
wait for 100 ns; wait for 100 ns;
NBCD <= "0001"; NBCD <= "0110";
SELECTOR <="00"; SELECTOR <="11";
wait for 100 ns; wait for 100 ns;
NBCD <= "0010"; NBCD <= "0111";
SELECTOR <="01"; SELECTOR <="11";
wait for 100 ns; wait for 100 ns;
NBCD <= "0011"; NBCD <= "1000";
SELECTOR <="01"; SELECTOR <="11";
wait for 100 ns; wait for 100 ns;
NBCD <= "0100"; wait;
SELECTOR <="10"; end process;
wait for 100 ns;
Simulación
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
• Cada uno de los conversores se desarrolló de acuerdo a las ecuaciones obtenidas de la tabla
de verdad. Estas ecuaciones se encuentran en los sub módulos VHDL nombrados como
“Inst_”
• A la simulación se le asignó un tiempo de 100ns para cada posible combinación del selector
y del código NBCD
• El programa se desarrolló de acuerdo a los requerimientos planteados en los objetivos, el
programa funciona correctamente.
Tema
Contador MOD 16
Objetivos
➢ General
Descripción
Diseñar un contador del 0 a 15 mediante Flip Flops tipo D, la señal de entrada será solo del
reloj, todo el conteo se debe realizar siguiendo el modelado estructural, por lo cual será
necesario instanciar cuatro flip flops.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Codificación
Contador MOD 16
library IEEE; COMPONENT F_F3
use IEEE.STD_LOGIC_1164.ALL; PORT(
a : IN std_logic;
-- Uncomment the following library b : IN std_logic;
declaration if using c : IN std_logic;
-- arithmetic functions with Signed or d : IN std_logic;
Unsigned values c3 : OUT std_logic
--use IEEE.NUMERIC_STD.ALL; );
END COMPONENT;
-- Uncomment the following library
declaration if instantiating signal qs, d: std_logic_vector(3 downto
-- any Xilinx primitives in this code. 0):=(others =>'0');
--library UNISIM; begin
--use UNISIM.VComponents.all; Inst_F_F0: F_F0 PORT MAP(
d => qs(0),
entity ALTO_NIVEL is c0 => d(0)
port( clk, clr: in std_logic; );
numero: out std_logic_vector(3 Inst_F_F1: F_F1 PORT MAP(
downto 0) c => qs(1),
); d => qs(0),
end ALTO_NIVEL; c1 => d(1)
);
architecture Behavioral of Inst_F_F2: F_F2 PORT MAP(
ALTO_NIVEL is b => qs(2),
COMPONENT F_F0 c => qs(1),
PORT( d => qs(0),
d : IN std_logic; c2 => d(2)
c0 : OUT std_logic );
); Inst_F_F3: F_F3 PORT MAP(
END COMPONENT; a => qs(3),
b => qs(2),
COMPONENT F_F1 c => qs(1),
PORT( d => qs(0),
c : IN std_logic; c3 => d(3)
d : IN std_logic; );
c1 : OUT std_logic process (clk, clr)
); begin
END COMPONENT; if clr='1' then
qs <= "0000";
COMPONENT F_F2 elsif (clk'event and clk='1') then
PORT( qs <= D;
b : IN std_logic; end if;
c : IN std_logic; end process;
d : IN std_logic; numero <= qs;
c2 : OUT std_logic end Behavioral;
);
END COMPONENT;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
begin begin
c0 <= not(d); c1 <= (c and not(d)) or (not(c) and d);
end Behavioral;
end Behavioral;
Flip flop 2 Flip flop 3
library IEEE; library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_1164.ALL;
begin begin
c2 <= (not(b) and c and d) or (b and c3 <= (not(a) and b and c and d) or (a
not(d)) or (b and not(c)); and not(d)) or (a and not(c)) or (a and
end Behavioral; not(b));
end Behavioral;
Simulación
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
Simulación
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
• Cada uno de los flip flop están diseñados por medio de las ecuaciones obtenidas de la tabla
de verdad. Estas ecuaciones se encuentran en los sub módulos VHDL nombrados como
“Inst_”
• A la simulación se le asignó un tiempo de 500ns a la señal d reloj
• El programa se desarrolló de acuerdo a los requerimientos planteados en los objetivos, el
programa funciona correctamente.
Tema
Sumado Completo o Full Adder
Objetivos
➢ General
Descripción
Diseñar un sumador completo (Full Adder) empleando semisumadores (Half Adder), realizar el
programa con la programación en VHDL mediante modelado estructural
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquema y ecuaciones
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
end Behavioral;
Simulación
Resultados
• Cada uno de los semisumadores se desarrolló con las ecuaciones de un Half Adder. Estas
ecuaciones se encuentran en los sub módulos VHDL nombrados como “Inst_”
• A la simulación se le asignó un tiempo de 25ns para cada posible combinación de valor para
las señales de entra A, B y al acarreo.
• El programa se desarrolló de acuerdo a los requerimientos planteados en los objetivos, el
programa funciona correctamente.
Tema
Detector de Código 011
Objetivos
➢ General
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Descripción
Diseñar un detector de código usando la metodología de Mealy continuo, para detectar el código
“011” empleando flip flops J-K.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquemas y Ecuaciones
-- Stimulus process
stim_proc: process
begin
reset <= '1'; wait for 0.00001 ns; ---
resetea la maquina
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
wait;
end process;
END;
Esquema RTL
Tema
Detector de Código 101
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Mealy continuo, para detectar el código
“1010” y presentar una salida de “10” cuando detecte el código correcto y “01” mientras se detecte
otra secuencia diferente.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Codificación
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
wait;
end process;
END;
Esquema RTL
Tema
Detector de Código 101
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Mealy continuo, para detectar el código
“101” empleando flip flops J-K.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquemas y Ecuaciones
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
END;
Simulación
Tema
Detector de Código 1001
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Moore segmentado, para detectar el código
“1001” empleando flip flops J-K.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquemas y Ecuaciones
wait;
end process;
END;
Esquema RTL
Tema
Detector de Código 111
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Moore segmentado, para detectar el código
“111” empleando flip flops tipo D.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquemas y Ecuaciones
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
END;
Esquema RTL
Resultados
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Cada una de las ecuaciones para el detector se desarrolló a través de flip flops tipo D. Estas
ecuaciones se encuentran en los sub módulos VHDL nombrados como “Inst_”
• El diseño de este detector de código se lo realizo usando las ecuaciones determinadas en
Boole Deusto, de manera que para ello se tuvo que usar dos instanciaciones ya que utiliza
dos flip-flops tipo D.
• Para realizar la simulación se procedió a crear un Test Bench en donde se definió los valores
que tendrán las entradas del programa principal.
Tema
Detector de Código 1001
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Moore continuo, para detectar el código
“1001” empleando flip flops J-K.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Codificación
Programa Test Bench
library IEEE; LIBRARY ieee;
use IEEE.STD_LOGIC_1164.ALL; USE ieee.std_logic_1164.ALL;
entity DetectorCont is ENTITY Prueba IS
END Prueba;
Port ( Entrada : in STD_LOGIC;
clk : in STD_LOGIC; ARCHITECTURE behavior OF Prueba
reset : in STD_LOGIC; IS
salida,salida1 : out
STD_LOGIC); -- Component Declaration for the
end DetectorCont; Unit Under Test (UUT)
architecture Behavioral of DetectorCont
COMPONENT DetectorCont
is
PORT(
component ff_jk port ( Entrada : IN std_logic;
j: in std_logic; clk : IN std_logic;
k: in std_logic; reset : IN std_logic;
clk: in std_logic; salida,salida1 : OUT std_logic
);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
-- Stimulus process
stim_proc: process
begin
reset <= '1';
wait for 0.00001 ns;
reset <= '0';
entrada<='1'; wait for 10 ns;
entrada<='1'; wait for 10 ns;
entrada<='1'; wait for 10 ns;
entrada<='1'; wait for 10 ns;
entrada<='1'; wait for 10 ns;
entrada<='0'; wait for 10 ns;
entrada<='0'; wait for 10 ns;
entrada<='1'; wait for 10 ns;
entrada<='0'; wait for 10 ns;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
END;
Esquema RTL
Tema
Detector de Código 101
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Mealy segmentado, para detectar el código
“101” empleando flip flops J-K.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Codificación
Programa Principal Test Bench
library IEEE; LIBRARY ieee;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
y2 => y2
);
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
wait;
end process;
END;
Código 101 Código 100
library IEEE; library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_ARITH.ALL;
y1<=aux1;
end Behavioral;
Esquemas RTL
Ejercicios Talleres
Ejercicio 1
1. Tema
Emplear ISE Design Suite de XILINX para crear la estructura VHDL “COMPLEMENTOS”
que permita modelar el comportamiento del sistema de cálculo de complemento de códigos con
detección de paridad de acuerdo con las especificaciones siguientes:
a. Entrada: Vector de 4 posiciones para código BCD de 4 bits.
b. Selector: Entrada digital para: “0” C-A1 – “1” C-A2.
c. Salidas Independientes: 4 Salidas digitales (C3- C2- C1- C0) para el dato resultante.
d. Salida Agrupada: Vector de 4 posiciones para el dato resultante.
e. Salida de Paridad: Salida digital para: “0” Par – “1” Impar.
f. Modelo RTL Schematic de la Estructura COMPLEMENTOS.
g. Modelo Technology Schematic de la Estructura COMPLEMENTOS.
h. Simulación del sistema de CÁLCULO de complemento A1 y complemento A2 de
códigos de 4 bits y detección de paridad del dato resultante en base a un archivo de asignación
de datos para todos los datos solicitados.
4. Listado De Materiales Y Equipos
• Ise Design Suite
• Apuntes de clase
5. Desarrollo del ejercicio
6. Programación
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3. use IEEE.STD_LOGIC_UNSIGNED.ALL;
4. USE IEEE.NUMERIC_STD.ALL;
5.
6. entity COMPLEMENTOS is
7. Port (entrada: in STD_LOGIC_VECTOR (3 DOWNTO 0);
8. selector : in STD_LOGIC;
9. C0 : out STD_LOGIC;
10. C1 : out STD_LOGIC;
11. C2 : out STD_LOGIC;
12. C3 : out STD_LOGIC;
13. salida : out STD_LOGIC_VECTOR (3 downto 0);
14. paridad : out STD_LOGIC);
15. end COMPLEMENTOS;
16.
17. architecture Behavioral of COMPLEMENTOS is
18.
19. signal q0, q1 : std_logic_vector(3 downto 0);
20. begin
21.
22. q0<="0001";
23.
24. process(entrada,selector)
25. begin
26. -------Logica complemento A1 -- negado de la entrada
27. if selector= '0' then
28. q1 <= not entrada;
29. ------Logica complemento A2 -- negado de la entrada + 0001----
30. else
31. q1 <= not entrada + q0;
32. end if;
33. end process;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
34.
35. salida<=q1;
36. --------Logica pariedad ------
37. paridad <= q1(0) xor q1(1) xor q1(2)xor q1(3);
38.
39. C0<=q1(0); C1<=q1(1); C2<=q1(2); C3<=q1(3);
40.
41. end Behavioral;
Modelado RTL
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
Test Bench
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3.
4. ENTITY Simulacion_compl IS
5. END Simulacion_compl;
6.
7. ARCHITECTURE behavior OF Simulacion_compl IS
8.
9. -- Component Declaration for the Unit Under Test (UUT)
10.
11. COMPONENT COMPLEMENTOS
12. PORT(
13. entrada : IN std_logic_vector(3 downto 0);
14. selector : IN std_logic;
15. C0 : OUT std_logic;
16. C1 : OUT std_logic;
17. C2 : OUT std_logic;
18. C3 : OUT std_logic;
19. salida : OUT std_logic_vector(3 downto 0);
20. paridad : OUT std_logic
21. );
22. END COMPONENT;
23.
24.
25. --Inputs
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
END;
Visor de Ondas
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
7. Resultados
Mediante programación en VHDL se realizó un programa que permite el calculo del complemento
A1 y A2 de un numero binario de 4 bits, el calculo respectivo es controlado por un selector que
según su posición realizará la transformación a complemento A1 o A2.
Ejercicio 2
1. Tema
Generador de Código
2. Objetivos
3. Objetivo General
➢ Diseñar un programa en VHDL que permita observar el comportamiento de un generador de
Código de 4 bits.
4. Objetivos Específicos
➢ Realizar las respectivas programaciones de un generador de códigos
➢ Utilizar el modelo estructural para poder realizar el programa.
➢ Generar la simulación para observar los resultados.
5. Descripción
Se cuenta con un sistema de Generación de códigos de 4 bits. Se desea analizar la base del
funcionamiento del mencionado sistema empleando los fundamentos de diseño y modelado
digital. Emplear ISE Design Suite de XILINX para crear la estructura VHDL “GENERADOR”
que permita modelar el comportamiento del sistema de generación de códigos de acuerdo con
las especificaciones siguientes:
a. Selector: Entrada digital para: “0” Código 1 (0101) – “1” Código 1 (0011).
b. Salida Independiente (Serial para el código resultante.
c. Modelo RTL Schematic de la Estructura.
d. Modelo Technology Schematic de la Estructura.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Programación
Generador de código 0011
1. library IEEE;
2. use IEEE.std_logic_1164.all;
3. use work.STATE_CONST.all;
4.
5. entity generador is
6. port(wave : out std_logic;
7. clk : in std_logic
8. );
9. end entity generador;
10.
11. architecture fsm of generador is
12. signal state : std_logic_vector(STATE_BITS-1 downto 0);
13. signal temp_wave : std_logic;
14. begin
15. --Calculo del proximo estado
16. proximo_estado: process (clk)
17. begin
18. if (rising_edge(clk)) then
19. case state is
20. when S0 => state <= S1; wave <= '0';
21. when S1 => state <= S2; wave <= '0';
22. when S2 => state <= S3; wave <= '1';
23. when S3 => state <= S4; wave <= '1';
24. when others => state <= S1; wave <= '0';
25. end case;
26. end if;
27. end process proximo_estado;
28. end architecture fsm;
Principal
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4.
5. entity gen3 is
6. Port ( sel : in STD_LOGIC;
7. wave : out STD_LOGIC;
8. clk : in STD_LOGIC
9. );
10. end gen3;
11.
12. architecture Behavioral of gen3 is
13.
14. signal s1,s2,salida: std_logic;
15.
16. component generador
17. port (wave : out std_logic;
18. clk : in std_logic
19.
20. );
21. end component;
22.
23. component generador2
24. port (wave : out std_logic;
25. clk : in std_logic
26.
27. );
28. end component;
29.
30. begin
31.
32. cod1 : generador
33.
34. port map (
35. wave => s1,
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Modelado RTL
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Test bench
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3.
4. -- Uncomment the following library declaration if using
5. -- arithmetic functions with Signed or Unsigned values
6. --USE ieee.numeric_std.ALL;
7.
8. ENTITY simulagen3 IS
9. END simulagen3;
10.
11. ARCHITECTURE behavior OF simulagen3 IS
12.
13. -- Component Declaration for the Unit Under Test (UUT)
14.
15. COMPONENT gen3
16. PORT(
17. sel : IN std_logic;
18. wave : OUT std_logic;
19. clk : IN std_logic
20. );
21. END COMPONENT;
22.
23.
24. --Inputs
25. signal sel : std_logic := '0';
26. signal clk : std_logic := '0';
27.
28. --Outputs
29. signal wave : std_logic;
30.
31. -- Clock period definitions
32. constant clk_period : time := 10 ns;
33.
34. BEGIN
35.
36. -- Instantiate the Unit Under Test (UUT)
37. uut: gen3 PORT MAP (
38. sel => sel,
39. wave => wave,
40. clk => clk
41. );
42.
43. -- Clock process definitions
44. clk_process :process
45. begin
46. clk <= '0';
47. wait for clk_period/2;
48. clk <= '1';
49. wait for clk_period/2;
50. end process;
51.
52.
53. -- Stimulus process
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Visor de Ondas
8. Resultados
Mediante programación en VHDL se realizó un programa que permite generar dos códigos bit a
bit “0101” y ”0011”, controlados por una entrada selector que dependiendo su posición dará a
su salida un código distinto.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
TEMA
Programación y simulación de un circuito combinacional usando lenguaje VHDL
OBJETIVOS
Objetivo General
✓ Realizar la programación y simulación de un circuito combinacional.
Objetivos Específicos
✓ Desarrollar los programas mediante su tabla de verdad circuito y ecuación de salida
✓ Conocer el funcionamiento de cada entorno de ISE Design Suite
✓ Realizar las simulaciones
MATERIALES Y EQUIPOS
✓ Computadoras
✓ ISE Design Suite
DESARROLLO
Se requiere simular la tabla de verdad ecuación de salida y circuito del siguiente diagrama
combinacional:
Mediante su circuito
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4.
5. entity Prop1Circuito is
6. Port ( A : in STD_LOGIC;
7. B : in STD_LOGIC;
8. C : in STD_LOGIC;
9. Z : out STD_LOGIC);
10. end Prop1Circuito;
11.
12. architecture Behavioral of Prop1Circuito is
13. signal Oo,O1 : STD_LOGIC;
14. begin
15. Oo<= (not A and B);
16. O1<= (not A and C);
17. z<= (not A) or Oo or O1;
18. end Behavioral;
RESULTADOS
Resultados ecuación de salida:
1. LIBRARY ieee; 13. B : IN std_logic;
2. USE ieee.std_logic_1164.ALL; 14. C : IN std_logic;
3. ENTITY TestProp1 IS 15. Z : OUT std_logic
4. END TestProp1; 16. );
5. 17. END COMPONENT;
6. ARCHITECTURE behavior OF TestProp1 IS 18. --Inputs
19. signal A : std_logic := '0';
7. 20. signal B : std_logic := '0';
8. -- 21. signal C : std_logic := '0';
Component Declaration for the Unit U 22.
nder Test (UUT) 23. --Outputs
9. 24. signal Z : std_logic;
10. COMPONENT EjProp1 25. --
11. PORT( No clocks detected in port list. Rep
12. A : IN std_logic; lace <clock> below with
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
1. LIBRARY ieee; 8. --
2. USE ieee.std_logic_1164.ALL; Component Declaration for the Unit U
3. ENTITY TestTabla IS nder Test (UUT)
4. END TestTabla; 9.
5. 10. COMPONENT TablaProp
6. ARCHITECTURE behavior OF TestTabla IS 11. PORT(
12. A : IN std_logic_vector(2 d
7. ownto 0);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados Circuito:
Ejercicio propuesto 2
TEMA
Demostrar la programación de un circuito básico secuencial en VHDL
OBJETIVOS
Objetivo General
✓ Realizar la programación de un circuito básico secuencial en VHDL
Objetivos Específicos
✓ Realizar la simulación del circuito mediante función de salida y señales internas
✓ Demostrar el funcionamiento del circuito
MATERIALES Y EQUIPOS
✓ Computadora
✓ ISE Design Suite
DESARROLLO
Desarrollo mediante señales internas
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3. entity Prop2 is
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
4. Port ( A : in STD_LOGIC;
5. B : in STD_LOGIC;
6. Z : out STD_LOGIC);
7. end Prop2;
8.
9. architecture Behavioral of Prop2 is
10.
11. begin
12. z<=(A or B)and B;
13.
14. end Behavioral;
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity Prop2 is
5. Port ( A : in STD_LOGIC;
6. B : in STD_LOGIC;
7. Z : out STD_LOGIC);
8. end Prop2;
9.
10. architecture Behavioral of Prop2 is
11. signal C0:STD_LOGIC;
12. begin
13. C0<=A or B;
14. z<= C0 and B;
15.
16. end Behavioral;
RESULTADOS
Resultado mediante ecuacion de salida:
2. Convertidor de código
Ejercicio propuesto 1
• TEMA
Código exceso 3 verificar si es número par e impar.
• OBJETIVOS
- Objetivo General
o Realizar la programación y simulación del ingreso de código exceso 3 y verificar si es
número par e impar.
- Objetivos Específicos
o Desarrollar el programa mediante tabla de verdad
o Conocer el funcionamiento de cada entorno de ISE Design Suite
o Realizar las simulaciones
• MATERIALES Y EQUIPOS
➢ Computadoras
➢ ISE Design Suite
• DESARROLLO
CODIGO
C3 C2 C1 C0 PAR IMPAR
0 0 0 0 1 0
0 0 0 1 0 1
0 0 1 0 1 0
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 1 0
0 1 1 1 0 1
1 0 0 0 1 0
1 0 0 1 0 1
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Programación
Código Principal
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3. use IEEE.numeric_std.all;
4. entity convertir is
5. Port ( Entrada : in STD_LOGIC_VECTOR (3 downto 0);
6. Selector : in STD_LOGIC ;
7. Salida : out STD_LOGIC_VECTOR (3 downto 0));
8.
9. end convertir;
10. architecture Behavioral of convertir is
11. signal sv: std_logic_vector(3 downto 0):="0000";
12.
13. begin
14.
15. Salida<=sv;
16. process (Selector, Entrada)
17. begin
18.
19. ----------- par---------------
20. if Selector = '0' then
21. if Entrada ="0000" then
22. sv <="0001";
23. end if;
24. if Entrada ="0001" then
25. sv <="0000";
26. end if;
27. if Entrada ="0011" then
28. sv <="0001";
29. end if;
30. if Entrada ="0010" then
31. sv <="0000";
32. end if;
33. if Entrada ="0110" then
34. sv <="0001";
35. end if;
36. if Entrada ="0111" then
37. sv <="0000";
38. end if;
39. if Entrada ="0110" then
40. sv <="0001";
41. end if;
42. if Entrada ="0111" then
43. sv <="0000";
44. end if;
45. if Entrada ="1000" then
46. sv <="0001";
47. end if;
48. if Entrada ="1001" then
49. sv <="0000";
50. end if;
51. end if;
52. ----------- impar---------------
53. if Selector = '1' then
54. if Entrada ="0000" then
55. sv <="0000";
56. end if;
57. if Entrada ="0001" then
58. sv <="0001";
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
34. );
35.
36. -- Clock process definitions
37.
38. -- Stimulus process
39. stim_proc: process
40. begin
41. -- hold reset state for 100 ns.
42. --PAR
43. Entrada<="0000"; Selector <= '0'; wait for 100 ns;
44. Entrada<="0001"; Selector <= '0'; wait for 100 ns;
45. Entrada<="0010"; Selector <= '0'; wait for 100 ns;
46. Entrada<="0011"; Selector <= '0'; wait for 100 ns;
47. Entrada<="0100"; Selector <= '0'; wait for 100 ns;
48. Entrada<="0101"; Selector <= '0'; wait for 100 ns;
49. Entrada<="0110"; Selector <= '0'; wait for 100 ns;
50. Entrada<="0111"; Selector <= '0'; wait for 100 ns;
51. Entrada<="1000"; Selector <= '0'; wait for 100 ns;
52. Entrada<="1001"; Selector <= '0'; wait for 100 ns;
53. --IMPAR
54.
55. Entrada<="0000"; Selector <= '1'; wait for 100 ns;
56. Entrada<="0001"; Selector <= '1'; wait for 100 ns;
57. Entrada<="0010"; Selector <= '1'; wait for 100 ns;
58. Entrada<="0011"; Selector <= '1'; wait for 100 ns;
59. Entrada<="0100"; Selector <= '1'; wait for 100 ns;
60. Entrada<="0101"; Selector <= '1'; wait for 100 ns;
61. Entrada<="0110"; Selector <= '1'; wait for 100 ns;
62. Entrada<="0111"; Selector <= '1'; wait for 100 ns;
63. Entrada<="1000"; Selector <= '1'; wait for 100 ns;
64. Entrada<="1001"; Selector <= '1'; wait for 100 ns;
65.
66. -- insert stimulus here
67.
68. wait;
69. end process;
70.
71. END;
• RTL Schematic
• Technologic Schematic
• Simulación
Test bench
Objetivos
➢ General
Diagramas y Esquemas
CODIGO
PROGRAMA PRINCIPAL SIMULACION
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; LIBRARY ieee;
use IEEE.STD_LOGIC_ARITH.ALL; USE ieee.std_logic_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SIMU_MOD_10 IS
entity MOD10 is END SIMU_MOD_10;
port(ck : in std_logic;
salida : out std_logic_vector(3 downto 0)
); ARCHITECTURE behavior OF SIMU_MOD_10 IS
end MOD10;
COMPONENT MOD10
architecture Behavioral of MOD10 is PORT(
signal s3, s2, s1, s0 : std_logic; ck : IN std_logic;
signal sale_aux : std_logic_vector(3 downto 0); salida : OUT std_logic_vector(3 downto 0)
signal reset : std_logic:='1'; );
COMPONENT MOD16 END COMPONENT;
PORT(
ck : IN std_logic; --Inputs
reset : IN std_logic; signal ck : std_logic := '0';
qs : OUT std_logic_vector(3 downto 0)
); --Outputs
END COMPONENT; signal salida : std_logic_vector(3 downto 0);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
begin
MOD10: MOD16 PORT MAP(ck =>ck ,reset =>reset ,qs constant ck_period : time := 10 ns;
=>sale_aux );
s3 <= sale_aux(3);
s2 <= sale_aux(2); BEGIN
s1 <= sale_aux(1);
s0 <= sale_aux(0); -- Instantiate the Unit Under Test (UUT)
reset <= s3 and s2; uut: MOD10 PORT MAP (
salida <=sale_aux; ck => ck,
salida => salida
end Behavioral; );
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
wait;
end process;
END;
Resultados
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
• Para el diseño del contador MOD 12 se realiza un contador MOD16 que va a formar parte
del programa principal, así mismo los flip-flops que conforman el contador MOD12 están
definidos como componentes en la sintaxis del MOD16.
• Para la simulación se crea un Test Bench en donde no se realiza ninguna asignación de
valores excepto en el del reloj, que en ocasiones se asigna automáticamente y otras debemos
cambiar <clock> por el nombre que se haya asignado para la señal de reloj.
• En la simulación el conteo lo realiza de manera adecuada, tal como se lo había descrito al
inicio es un conteo desde el 0 hasta 11, la misma función que se repite varias veces.
Tema
Registro de desplazamiento de 4 bits
Objetivos
➢ General
Descripción
Diseño de un registro de desplazamiento de 4 bits usando Flip Flops tipo de los cuales se conectan
en cascada y son síncronos. El registro desplazará los bits que lleguen de forma serial y serán
presentados de forma paralela.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquema y ecuaciones
CODIGO
PROGRAMA PRINCIPAL SIMULACION
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
LIBRARY ieee;
library IEEE; USE ieee.std_logic_1164.ALL;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL; ENTITY SIMU_REGISTRO IS
use IEEE.STD_LOGIC_UNSIGNED.ALL; END SIMU_REGISTRO;
END;
Resultados
• El diseño del registro de desplazamiento se lo realizo basándose en el diagrama propuesto,
donde todos lo FF-D están conectado en forma de cascada y están configurados de manera
asíncrona.
• Para realizar la simulación se procedió a crear un Test Bench en donde definimos los valores
que tendrán las entradas del programa principal.
• Los datos ingresan de manera serial y según detecta los flancos ascendentes sigue
desplazándose hacia la derecha y se toman los bits de salida de cada FF-D de forma paralela.
Tema
Detector de Código 1010
Objetivos
➢ General
Descripción
Diseñar un detector de código usando la metodología de Mealy continuo, para detectar el código
“1010” y presentar una salida de “10” cuando detecte el código correcto y “01” mientras se detecte
otra secuencia diferente.
Listado de Materiales y Equipos
➢ Software de implementación y simulación ISE Design Suite
➢ Apuntes de clase
Diagramas y Esquemas
Esquema y ecuaciones
CODIGO
PROGRAMA PRINCIPAL SIMULACION
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; ENTITY SIMU_ALTO_NIVEL IS
use IEEE.STD_LOGIC_ARITH.ALL; END SIMU_ALTO_NIVEL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ARCHITECTURE behavior OF SIMU_ALTO_NIVEL IS
entity detector is
port(entra, clk, reset : in std_logic; -- Component Declaration for the Unit Under Test
sale : out std_logic_vector(1 downto 0) (UUT)
);
end detector;
COMPONENT detector
PORT(
architecture Behavioral of detector is entra : IN std_logic;
COMPONENT FFJK clk : IN std_logic;
PORT( reset : IN std_logic;
j : IN std_logic; sale : OUT std_logic_vector(1 downto 0)
k : IN std_logic; );
clk : IN std_logic; END COMPONENT;
reset : IN std_logic;
sale : OUT std_logic
);
END COMPONENT; --Inputs
signal j0, k0, j1, k1, q0, q1,s0, s1 : std_logic:='0'; signal entra : std_logic := '0';
begin signal clk : std_logic := '0';
--logica de entrada signal reset : std_logic := '0';
j0 <= entra;
k0 <= not entra; --Outputs
j1 <= (not entra and q0); signal sale : std_logic_vector(1 downto 0);
k1 <= (not entra and not q0) or (not entra and q0);
--logica de salida
s0 <= (not q0) or (not q1) or (entra); -- Clock period definitions
s1 <= (not entra and q1 and q0); constant clk_period : time := 10 ns;
--flip flops
FF0: FFJK PORT MAP(j =>j0 ,k =>k0 ,clk =>clk ,reset =>reset BEGIN
,sale =>q0 );
FF1: FFJK PORT MAP(j =>j1 ,k =>k1 ,clk =>clk ,reset =>reset -- Instantiate the Unit Under Test (UUT)
,sale =>q1 ); uut: detector PORT MAP (
sale <= s1&s0; entra => entra,
end Behavioral; clk => clk,
reset => reset,
sale => sale
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
);
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
-- wait for 100 ns;
wait;
end process;
END;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Resultados
• El diseño de este detector de código se lo realizo usando las ecuaciones determinadas en
boole, de manera que para ello se tuvo que usar dos instanciaciones ya que utiliza dos flip-
flops JK.
• Para realizar la simulación se procedió a crear un Test Bench en donde definimos los valores
que tendrán las entradas del programa principal.
• Se ingresó un código al azar, por lo que en la simulación se identifica el código ingresado y
además detecta el código 1010 cuando la salida es 10.
Ejercicios Taller
EJERCICIO 1
1. Tema
Programación
Semi - sumador
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity semi is
5. port (a : in std_logic;
6. b : in std_logic;
7. carry : out std_logic;
8. suma : out std_logic);
9. end semi;
10.
11. architecture Behavioral of semi is
12.
13. begin
14. suma <= a xor b;
15. carry <= a and b;
16.
17. end Behavioral;
Sumador de 4 bits
1. library IEEE;
2. use IEEE.STD_LOGIC_1164.ALL;
3.
4. entity sumador_4bits is
5. port (a : in std_logic_vector(3 downto 0);
6. b : in std_logic_vector(3 downto 0);
7. r : out std_logic_vector(4 downto 0));
8. end sumador_4bits;
9.
10. architecture Behavioral of sumador_4bits is
11.
12. COMPONENT semi
13. port (a : in std_logic;
14. b : in std_logic;
15. carry : out std_logic;
16. suma : out std_logic);
17. end component;
18. signal a1, a2, a3, a4 : std_logic;
19. signal b1, b2, b3, b4 : std_logic;
20. signal c1, c2, c3, c4, cout1, cout2, cout3, cout4 : std_logic;
21. signal s1, s2, s3, s4: std_logic;
22. signal f1, f2, f3, f4 : std_logic;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Modelado RTL
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Simulación
Test bench
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3.
4.
5. ENTITY simu_sumador IS
6. END simu_sumador;
7.
8. ARCHITECTURE behavior OF simu_sumador IS
9.
10. COMPONENT sumador_4bits
11. PORT(
12. a : IN std_logic_vector(3 downto 0);
13. b : IN std_logic_vector(3 downto 0);
14. r : OUT std_logic_vector(4 downto 0)
15. );
16. END COMPONENT;
17.
18.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
19. --Inputs
20. signal a : std_logic_vector(3 downto 0) := (others => '0');
21. signal b : std_logic_vector(3 downto 0) := (others => '0');
22.
23. --Outputs
24. signal r : std_logic_vector(4 downto 0);
25. -- No clocks detected in port list. Replace <clock> below with
26. -- appropriate port name
27.
28.
29. BEGIN
30.
31. -- Instantiate the Unit Under Test (UUT)
32. uut: sumador_4bits PORT MAP (
33. a => a,
34. b => b,
35. r => r
36. );
37.
38. -- Stimulus process
39. process
40. begin
41. -- hold reset state for 100 ns.
42.
43.
44. wait for 100 ns;
45. a <= "0101";
46. b <= "1100";
47.
48. wait for 100 ns;
49. a <= "0100";
50. b <= "1001";
51. -- insert stimulus here
52.
53. wait;
54. end process;
55.
56. END;
Visualizador de resultados
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
8. Resultados
EJERCICIO 2
1. Tema
Realizar un programa en VHDL que permita generar un codigo de salida bit a bit 1110 el cual
cambiara con cada ciclo de reloj
6. Listado De Materiales Y Equipos
• Ise Design Suite
• Apuntes de clase
7. Desarrollo del ejercicio
Programación
1. entity generador is
2. port(wave : out std_logic;
3. clk : in std_logic
4. );
5. end entity generador;
6.
7. architecture fsm of generador is
8. signal state : std_logic_vector(STATE_BITS-1 downto 0);
9. signal temp_wave : std_logic;
10. begin
11. --Calculo del proximo estado
12. proximo_estado: process (clk)
13. begin
14. if (rising_edge(clk)) then
15. case state is
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Modelado RTL
Simulación
Test Bench
1. LIBRARY ieee;
2. USE ieee.std_logic_1164.ALL;
3. ENTITY sim IS
4. END sim;
5.
6. ARCHITECTURE behavior OF sim IS
7.
8.
9. COMPONENT generador
10. PORT(
11. wave : OUT std_logic;
12. clk : IN std_logic
13. );
14. END COMPONENT;
15.
16.
17. --Inputs
18. signal clk : std_logic := '0';
19.
20. --Outputs
21. signal wave : std_logic;
22.
23. -- Clock period definitions
24. constant clk_period : time := 10 ns;
25.
26. BEGIN
27.
28. -- Instantiate the Unit Under Test (UUT)
29. uut: generador PORT MAP (
30. wave => wave,
31. clk => clk
32. );
33.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Visor de Ondas
8. Resultados
Mediante programación en VHDL se realizó un programa que permite generar un código bit a bit
“1110” el cual ira cambiando conforme señal de reloj vaya entrando al componente.
1. CUESTIONARIO
1. Sistemas Digitales
Reactivo 1.
Enunciado. – Relacione las palabras con su respectivo significado.
Opciones de Respuesta:
a) 1A, 2B, 3C
b) 1B, 2C, 3A
c) 1C, 2A, 3B
d) 1A, 2C, 3B
Respuesta correcta: b
Justificación:
• Drivers: Reconoce la placa, configura el tipo de dispositivo.
• Compilador: Revisa la sintaxis y genera el archivo (*.hex).
• Interfaz de transferencia: Lleva el programa al microcontrolador.
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 13, Arquitectura de dispositivos
Logicos Programables, página 868.
Reactivo 2.
Respuesta correcta: c
Justificación:
FPGA es considerado un dispositivo de alta velocidad que ejecuta todo a la vez., llamándose
a este proceso de ejecución concurrente.
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 13, Árbol Familiar de los
Sistemas Digitales página 870.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 3.
Respuesta correcta: a
Justificación:
Los circuitos combinacionales vienen a ser divididos en lógicos, aritméticos, aritméticos y
lógicos, los mismos que están compuestos únicamente por puertas lógicas interconectadas
entre sí, sin ningún biestables o celda de memoria.
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 4, Circuitos Lógicos
Combinacionales página 118.
Reactivo 4.
Respuesta correcta: b
Justificación:
Un Sistema Secuencial Asíncrono posee condiciones de diseño. Además, esta posee sus
variables de estados no cambian simultáneamente.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 7, Contadores Asíncronos,
página 362.
Reactivo 5.
Respuesta correcta: a
Justificación:
Un sistema digital es el conjunto de dispositivos para el procesado de señales físicas que
serán convertidas en señales digitales es decir señales con valores discretos
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 7, Contadores Asíncronos,
página 370.
Reactivo 6.
Enunciado. – Seleccione la respuesta correcta
Respuesta correcta: a
Justificación:
Microprocesador es aquel dispositivo cuyo propósito es solventar las exigencias del usuario
mediante su previa programación, este dispositivo está limitado por su arquitectura a su vez
es de carácter abierta la cual le permite jugar con sus componentes
Nivel de dificultad: Medio
Fuente de verificación:
Programación y Ejecución, Libro Ronald J. Tocci, Capitulo 7, Contadores Asíncronos,
página 378.
2. Autómatas Finitos
Reactivo 1.
Enunciado. - Seleccione la respuesta correcta.
Respuesta correcta: A
Justificación: Se dice que un FSM es del tipo Mealy cuando su entrada puede afectar la
salida directamente. En otras palabras, la salida ahora no depende únicamente del estado de
la máquina, sino que también depende del valor de entrada.
Reactivo 2.
Enunciado. - Seleccione la respuesta correcta.
Respuesta correcta: A
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 3.
Enunciado. - Seleccione la respuesta correcta.
3. ¿Cuándo un FSM es del tipo Moore?
Seleccione la respuesta correcta
A) Cuando su salida no depende de nada
B) Cuando su salida depende tanto de la entrada como del estado de la máquina.
C) Cuando su salida depende únicamente de la entrada.
D) Cuando su salida depende únicamente del estado actual de la máquina.
Respuesta correcta: D
Justificación: Se dice que un FSM es del tipo Moore cuando su salida depende únicamente
del estado actual de la máquina. En otras palabras, la salida no se ve afectada directamente
por la entrada (la entrada solo puede afectar el siguiente estado de la máquina)..
Reactivo 4.
Enunciado. - Seleccione la respuesta correcta.
4. La característica más destacable de un diagrama de estados en el modelo de Mealy es:
Respuesta correcta: B
Reactivo 5.
Enunciado. - Seleccione la respuesta correcta.
3. Detectores de Código
Reactivo 1
Enunciado. - Seleccione la respuesta correcta
Un detector de secuencia de Mealy realiza un análisis de todos sus ……. para identificar
tanto la secuencia correcta o incorrecta, dentro de esta puede existir dos, la forma
………………. estos dos tipos de soluciones se diferencia por los estados que va a
desarrollos ya que en la segmentada tiene más estados que la continua
a Estados; continua y segmentada
b Transiciones; continua
c Estados; de detección y control
d Transiciones; continua y segmentada
Respuesta correcta: a
Justificación:
Un detector de secuencia de Mealy realiza un análisis de todos sus estados para identificar tanto
la secuencia correcta o incorrecta, dentro de esta puede existir dos la forma continua y
segmentada estos dos tipos de soluciones se diferencia por los estados que va a desarrollos ya
que en la segmentada tiene más estados que la continua.
Nivel de dificultad: Medio
Fuente de verificación: Libro Sistemas Digitales Síncronos y VHDL de Wilson Oswaldo
Baldeon.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 2
Enunciado. - Seleccione la respuesta correcta
En un detector de secuencia de Mealy, para poder sincronizar la maquina secuencial junto
con el contador colocado a la salida de esta se debe usar:
a Latch de Salida
b Latch de entrada
c Señal de reloj
d Contador secuencial
Respuesta correcta: a
Justificación:
Un Latch es un circuito electrónico biestable asíncrono usado para almacenar información en
sistemas lógicos digitales, dentro de las maquinas secuenciales de Mealy nos permite
sincronizar nuestras señales CLK con nuestra transición es evitando así posibles errores o
retardos.
Reactivo 3
Enunciado. - Seleccione la respuesta correcta
¿Qué es un Latch y para que se lo usa?
a Es un circuito electrónico usado como contador.
b Es un circuito electrónico monoestable asíncrono usado para almacenar información
en sistemas lógicos digitales.
c Es un circuito electrónico biestable asíncrono usado para almacenar información en
sistemas lógicos digitales.
d Es un circuito electrónico usado como una señal de reloj
Respuesta correcta: c
Justificación:
Reactivo 4
Enunciado. - Seleccione la respuesta correcta
Un detector de secuencia de tipo continuo únicamente tiene la configuración de:
a Cadena de código correcto y código erróneo y retroalimentaciones
b Cadena de secuencia
c Retroalimentaciones
d Cadena de secuencia principal y retroalimentaciones
Respuesta correcta: d
Justificación:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Un detector de secuencia tipo continuo ya sea Mealy o Moore va a usar la configuración de una
cadena de secuencias principal de acuerdo con los estados que se posea y las
retroalimentaciones a cada uno de los estados, formando así una cadena lineal.
Reactivo 5
Enunciado. - Seleccione la respuesta correcta
Un detector de secuencia de tipo segmentado únicamente tiene la configuración de:
a Cadena de código correcto y código erróneo y retroalimentaciones
b Cadena de secuencia
c Retroalimentaciones
d Cadena de secuencia principal y retroalimentaciones
Respuesta correcta: a
Justificación:
Un detector de secuencia tipo segmentado ya sea Mealy o Moore va a usar la configuración de
una cadena de código correcto y código erróneo de acuerdo con los estados que se posea y las
retroalimentaciones a cada uno de los estados, manejando así cadenas de estados que nos
permite visualizar en forma clara en donde estamos y que secuencia estamos siguiendo
Nivel de dificultad: Medio
Fuente de verificación: Libro Sistemas Digitales Síncronos y VHDL de Wilson Oswaldo
Baldeon.
4. Microcontroladores
Reactivo 1.
Enunciado. – Complete con la respuesta correcta.
Arduino es una ……………. electrónica de código …………. basada en hardware y software
fáciles de usar.
a Plataforma – abierto
b Placa – abierto
c Plataforma – cerrado
d Tarjeta – compatible
Respuesta correcta: a
Justificación: Arduino es una plataforma electrónica de código abierto basada en hardware y
software fáciles de usar.
Nivel de dificultad: dificultad baja
Fuente de verificación: (2020, Arduino cc, página oficial de Arduino), Apuntes de clase
Reactivo 2.
Enunciado. Completar de acuerdo con la respuesta correcta.
El archivo …....... dentro del Sofware ….......... es conjunto de códigos binarios escrito en
hexadecimal que establece la …........... y el código.
a .bit-Xilinx-herramienta
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 3.
Enunciado: Seleccione la respuesta correcta.
Es una de las principales plataformas electrónicas de bricolaje ampliamente reconocida en todo el
mundo. Se utiliza tanto para el aprendizaje de la electrónica, la creación de prototipos electrónicos
y sólo para usos de aficionados.
a Pic C Compiler
b Arduino
c MPLAB
d Proteus
Respuesta correcta: b
Justificación: Arduino es una de las principales plataformas electrónicas de bricolaje ampliamente
reconocida en todo el mundo. Se utiliza tanto para el aprendizaje de la electrónica, la creación de
prototipos electrónicos y sólo para usos de aficionados.
Nivel de dificultad: dificultad media
Fuente de verificación: (2016, Briejo Eduardo, pag.15), Apuntes de clase
Reactivo 4.
Enunciado. Identifique a que tipo de Software corresponden las siguientes características.
Facilidad de programación, al gran número de fuentes de conocimiento disponibles, a la gran
compatibilidad de la placa con diversos dispositivos e interfaces y a la amplia gama de adiciones y
ampliaciones disponibles. Una gran ventaja es también el precio, que es muy atractivo, lo que
constituye una indudable ventaja especialmente para los jóvenes, por ejemplo, los estudiantes de las
universidades o los estudiantes técnicos.
a Arduino
b Proteus
c Pic C Compiler
d Arduino IDE
Respuesta correcta: a
Justificación: Arduino es uno de los artículos más recomendados para los principiantes de la
electrónica. Esto se debe a varios factores, sobre todo a la facilidad de programación, al gran
número de fuentes de conocimiento disponibles, a la gran compatibilidad de la placa con diversos
dispositivos e interfaces y a la amplia gama de adiciones y ampliaciones disponibles. Una gran
ventaja es también el precio, que es muy atractivo, lo que constituye una indudable ventaja
especialmente para los jóvenes, por ejemplo, los estudiantes de las universidades o los estudiantes
técnicos.
Nivel de dificultad: dificultad media
Fuente de verificación: (2020, Arduino cc, página oficial), Apuntes de clase.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 5.
Enunciado.
Un…………. es un sistema ……. totalmente en una sola pastilla. Tenemos que los
………………no alcanzan el nivel de…………….. de, por ejemplo, un 8086, aunque poseen la
ventaja de trabajar sin memoria…………...
a Arduino-integrado-Arduinos-procesamiento-interno
b Pickit- externo- pines-máxima capacidad-interna
c Microcontrolador- integrado- microcontroladores- procesamiento- externa
d Arduino-integrado-módulos Arduino-procesamiento-externo
Respuesta correcta: c
Justificación: Un microcontrolador es un sistema integrado totalmente en una sola pastilla.
Tenemos que los microcontroladores no alcanzan el nivel de procesamiento de por ejemplo, un
8086, aunque poseen la ventaja de trabajar sin memoria externa.
Nivel de dificultad: dificultad alta
Fuente de verificación: (2010, Apaza Daviz, pág. 10), Apuntes de clase.
Opciones de Respuesta:
e) 1A, 2B, 3C
f) 1B, 2C, 3A
g) 1C, 2A, 3B
h) 1A, 2C, 3B
Respuesta correcta: b
Justificación:
• ATMega: Es el microcontrolador más común e utilizado en Arduino.
• Bits: Unidad mínima de información, que puede tener solo dos valores.
• Microcontroladores: Es un circuito integrado programable, capaz de ejecutar las órdenes
grabadas en su memoria
Nivel de dificultad: Medio
Fuente de verificación:
M. Pilatasig, L. Mena y J. Sánchez, Programacion de Modulos de Comunicacion, Latacunga:
Universidad de las Fuerzas Armadas ESPE, 2018.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 2.
Enunciado. – Seleccione la respuesta correcta.
Las librerías son archivos ……. que ayudan a los programas para que obtengan más…. Estas
funciones controlan el ………… y agrega funciones de procesamiento al ………….
Respuesta correcta: a
Justificación:
Las librerías son archivos compilados que ayudan a los programas para que obtengan más
funciones. Estas funciones controlan el hardware y agrega funciones de procesamiento al
software.
Nivel de dificultad: Medio
Fuente de verificación:
M. Pilatasig, L. Mena y J. Sánchez, Programacion de Modulos de Comunicacion, Latacunga:
Universidad de las Fuerzas Armadas ESPE, 2018.
Reactivo 3.
Enunciado. – Complete con la respuesta correcta.
Los fusibles son …… de ………. de funcionamiento, los cuales pueden habilitar o
deshabilitar ………….
Respuesta correcta: a
Justificación:
Los fusibles son bits de configuración de funcionamiento, los cuales pueden habilitar o
deshabilitar servicios.
Nivel de dificultad: Medio
Fuente de verificación:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Respuesta correcta: a
Justificación:
Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que
incorpora un microcontrolador re-programable y una serie de pines hembra.
Nivel de dificultad: Medio
Fuente de verificación:
E. P. Municio, F. Remiro Dominguez y L. López Pérez , Microcontrolador PICI 6F84: Desarollo
de Poyectos, México: Aliaoiiiega Grupo, 2004.
Reactivo 5
Opciones de Respuesta:
i) 1A, 2B, 3C
j) 1B, 2C, 3A
k) 1C, 2A, 3B
l) 1A, 2C, 3B
Respuesta correcta: b
Justificación:
• Librería Programas compilados que agregan funciones.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Respuesta correcta: d
Justificación:
Una señal digital es una señal que existe en uno de dos estados: alta o baja, abierta o cerrada,
encendida o apagada. Un dispositivo de entrada y salida digital (DIO) es un hardware que
envía o recibe estas señales digitales. Los dispositivos DIO generalmente se construyen
alrededor de relés simples como los relés de láminas.
Fuente de Verificación:
S. d. r. B. Box., «Black Box,» 2005. Available: https://www.blackbox.com.
Reactivo 2.
Enunciado
Respuesta correcta: b
Justificación:
Un dispositivo AIO es un hardware que envía o recibe señales de entrada y salida análoga,
básicamente es el complemento del control DIO ya que estos trabajan conjuntamente.
Fuente de Verificación:
Reactivo 3.
Respuesta correcta: a
Justificación:
La modulación por ancho de pulso permite, por ejemplo, cambiar la luminosidad de un LED
de manera gradual o controlar la velocidad de un motor de corriente continua.
Fuente de Verificación:
Reactivo 4.
Enunciado.
Respuesta correcta: c
Justificación:
Fuente de Verificación:
7. Comunicaciones
Reactivo 1.
Enunciado. – Seleccione la respuesta correcta.
Que función de Modulo CCP permite, obtener el valor del temporizador en un momento dado,
fijado por la acción de un terminal del PIC.
a Captura
b Comparador
c PWM
Opciones de Respuesta:
a) Captura
b) Comparador
c) PWM
Respuesta correcta: a
Justificación:
• Comparar: Compara el valor del temporizador con el valor de un registro y provoca
una acción en el PIC.
• Captura: Obtiene el valor del temporizador en un momento dado, fijado por la acción
de un terminal del PIC.
• PWM: Genera una señal modulada por ancho de pulso.
Nivel de dificultad: Medio
Fuente de verificación:
https://controlautomaticoeducacion.com/microcontroladores-pic/pwm-modulacion-por-ancho-
depulso/#:~:text=El%20m%C3%B3dulo%20PWM%20(Pulse%20Width,resoluci%C3%B3n%2
0m%C3%A1xima%20de%2010%20BITS.
Reactivo 2.
Enunciado. – Seleccione la respuesta correcta.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Opciones de Respuesta:
a) set_pwmx_duty(valor);
b) setup_ccpx(CCP_OF);
c) setup_ccpx(CCP_CAPTURE_RE);
d) setup_ccpx(modo);.
Respuesta correcta: d)
Justificación:
Para configurar el módulo CCP:
setup_ccpx(modo);
Donde modo hace referencia a los bits CCPxM3:CPxM0 del registro CCPxCON y en PIC C
puede ser configurado según la siguiente tabla:
Reactivo 3.
Enunciado. – Seleccione la respuesta correcta.
Opciones de Respuesta:
a) RX, TX, GND
b) RX,TX
c) EN , STATE, GND
d) VCC , GND, TX
Respuesta correcta: a)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Justificación:
La comunicación UART o comunicación serial sólo utiliza tres líneas: una para recibir los datos
Rx, otra para trasmitir los datos Tx y la línea común GND.
Nivel de dificultad: Medio
Fuente de verificación:
https://controlautomaticoeducacion.com/microcontroladores-pic/16-comunicacion-serial-con-
pic/
Reactivo 4.
Enunciado. – Seleccione la respuesta correcta.
Opciones de Respuesta:
a) Símplex
b) half – dúplex
c) full – dúplex
Respuesta correcta: c)
Justificación:
El SPI es un protocolo síncrono que trabaja en modo full duplex para recibir y transmitir
información, permitiendo que dos dispositivos pueden comunicarse entre sí al mismo tiempo
utilizando canales diferentes o líneas diferentes en el mismo cable. Al ser un protocolo síncrono
el sistema cuenta con una línea adicional a la de datos encarga de llevar el proceso de
sincronismo.
Nivel de dificultad: Medio
Fuente de verificación:
http://panamahitek.com/como-funciona-el-protocolo-spi/
Reactivo 5.
Enunciado. – Seleccione la respuesta correcta.
Opciones de Respuesta:
a) Símplex
b) half – dúplex
c) full – dúplex
Respuesta correcta: C) Simplex
Justificación:
Los módulos RF de 433Mhz son muy populares por su bajo costo y fácil uso. Vienen en pareja,
emisor (FS1000A) y receptor (XY-MK-5V), el tipo de comunicación es simplex, es decir en un
solo canal y unidireccional, son de baja velocidad de transmisión, pero para aplicaciones básicas
son muy útiles.
Nivel de dificultad: Medio
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Fuente de verificación:
https://naylampmechatronics.com/blog/32_comunicacion-inalambrica-con-modulos-de-rf-
de.html
Opciones de Respuesta:
a. 1A, 2B, 3C
b. 1B, 2C, 3A
c. 1C, 2A, 3B
d. 1A, 2C, 3B
Respuesta correcta: b
Justificación:
Fuente de verificación:
Este pequeño módulo permite a los microcontroladores conectarse a una red Wi-Fi y realizar
conexiones ……… sencillas utilizando comandos de tipo ………
a HTPP-ALTEK
b UPM-Hayes
c TCP/IP-Hayes
d UHM-Hayes
Respuesta correcta: c
Justificación:
Este pequeño módulo permite a los microcontroladores conectarse a una red Wi-Fi y realizar
conexiones TCP/IP sencillas utilizando comandos de tipo Hayes.
Fuente de verificación:
L. d. V. Hernandez, «Programarfacil,» 19 Junio 2016. [En línea]. Available:
https://programarfacil.com/podcast/esp8266-wifi-coste-arduino/#Que_es_el_ESP8266. [Último
acceso: 23 Noviembre 2020].
Reactivo 3.
Enunciado. – Complete con la respuesta correcta.
Es un contenedor de ……….. perfectamente aislado que puede ejecutar sus propios sistemas
operativos y aplicaciones como si fuera un ……….. físico.
a Software – ordenador
b Dispositivos – equipo
c Sistemas - ordenador
d Software – sistema
Respuesta correcta: a
Justificación:
Es un contenedor de software perfectamente aislado que puede ejecutar sus propios sistemas
operativos y aplicaciones como si fuera un ordenador físico. Una máquina virtual se comporta
exactamente igual que lo hace un ordenador físico y contiene sus propios CPU, RAM, disco duro y
tarjetas de interfaz de red virtuales.
Fuente de verificación:
«GoogleSites,»11092019.[Enlínea].Available:
https://sites.google.com/view/instalaconfigurasw/investigaciones/manejo-de-maquina-virtuales.
[Último acceso: 30 11 2020]
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 4.
Enunciado. – Seleccione la respuesta correcta
Reactivo 1.
Opciones de Respuesta:
m) 1A, 2B, 3C
n) 1B, 2C, 3A
o) 1C, 2A, 3B
p) 1A, 2C, 3B
Respuesta correcta: b
Justificación:
• VHDL: VHDL es un lenguaje de descripción de circuitos electrónicos digitales que
utiliza distintos niveles de abstracción. El significado de las siglas VHDL es VHSIC
(Very High Speed Integrated Circuits) Hardware Description Language.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 2.
Enunciado. – Seleccione la respuesta correcta.
a Texto y Fuente
b Entidad y Fuente
c Entidad y Estructura
d Estructura y Datos
Reactivo 3.
Enunciado. – Verdadero o Falso
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
LAN server es un protocolo que no permite crear una interfaz web a través de
cuatro herramientas importantes: servidor de apache, My sql y php todos estos en
base al sistema operativo Linux.
a Verdadero
b Falso
Reactivo 4.
Enunciado. – Seleccione los pasos para la creación de una base de datos en My sql
A. crear una tabla donde se definirá cierta cantidad de columnas.
B. Crear un usuario.
C. Generar una contraseña.
D. Cada columna debe tener su identificador Id.
E. exportar datos se lo podrá hacer mediante una tabla de Excel transformado
a .cvs” delimitado por comas”.
a A-B-C
b A-B-D
c A-D-E
d A-C-D
✓ En My sql se debe tomar en cuenta que cada versión trabajo o con puntos o con
comas.
Nivel de dificultad: Alto
Fuente de verificación:
J. Arias, Extension de red con LAN SERVER, Ambato: Universidad Tecnica de Ambato, 2020.
Muestra una representación del diseño pre-optimizado en términos de símbolos genéricos como:
sumadores, multiplicadores, contadores, compuertas AND y OR
a Modelado Technology
b Modelado RTL
c Arquitectura
d Entorno de simulación
Respuesta correcta: b
Justificación: Modelado RTL Muestra una representación del diseño pre-optimizado en
términos de símbolos genéricos como: sumadores, multiplicadores, contadores, compuertas
AND y OR
Nivel de dificultad: Medio
Fuente de verificación: Libro VHDL Lenguaje para síntesis y modelado de circuitos de
Fernando Pardo y José A.
Reactivo 2
Enunciado. - Seleccione la respuesta correcta
Consiste en la declaración que se le asigne permitiendo la definición de la función del circuito
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
que se empleará y contendrá siempre una entidad concreta, así que las declaraciones sin
especificar su entidad no las tomará en consideración.
a Comportamental
b Estructural
c Arquitectura
d Top-Down
Respuesta correcta: c
Justificación:
La Arquitectura consiste en la declaración que se le asigne permitiendo la definición de la
función del circuito que se empleará y contendrá siempre una entidad concreta, así que las
declaraciones sin especificar su entidad no las tomará en consideración.
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 58.
Reactivo 2.
Enunciado. - Selecciones la respuesta correcta.
Para la creacion del codigo funcional de un módulo VHDL debe consistir de:
Respuesta correcta: a
Justificación: Para la creacion del codigo funcional de un módulo VHDL debe consistir de
Declaración bibliotecas, Entidad, Arquitectura
Nivel de dificultad: Medio
Fuente de verificación: Libro Sistemas Digitales Síncronos y VHDL de Wilson Oswaldo
Baldeon.
Reactivo 3
Enunciado. – Completar con la respuesta correcta
El diseño __________ es, en su más pura forma, el proceso de capturar una idea en un alto nivel
de__________, e implementar esa idea primero en un muy _________nivel
a Bottom UP – detección – bajo
b Metodología – diseño – alto
c Top_Down – abstracción – alto.
d Sistema – materialización – alto
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 41.
Reactivo 3.
Enunciado. - Selecciones la respuesta correcta.
Respuesta correcta: c
Justificación:
Bottom UP: El diseño Top_Down es, en su más pura forma, el proceso de capturar una idea en
un alto nivel de abstracción e implementar esa idea primero en un muy alto nivel
Nivel de dificultad: Difícil
Fuente de verificación: Metodología de Diseño y modelado de circuitos en VHDL de Ayala
Carlos Alberto González.
Reactivo 4
Enunciado. - Seleccione la respuesta correcta
La entidad únicamente describe la forma externa del ………….., en ella se enumeran las
entradas y las salidas del ………….
a circuito / diseño
b diseño / circuito
c código / programa
d sistema / circuito
Respuesta correcta: a
Justificación:
La entidad únicamente describe la forma externa del circuito, en ella se enumeran las entradas y
las salidas del diseño.
Justificación: Un banco de pruebas es un código HDL que permite proporcionar un
conjunto de estímulos documentados y repetibles además de que es portátil en diferentes
simuladores.
Nivel de dificultad: Medio
Fuente de verificación: Estructura de VHDL, Sitio Web Barragan Diego, página 6.
Reactivo 4.
Enunciado. - Selecciones la respuesta correcta.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
El modelo Technology al visualizar este esquema nos permite ver una representación a nivel
tecnológico de su ..............optimizada para una arquitectura ….....específica, que podría
ayudar a descubrir problemas de .........al principio del proceso de diseño.
Respuesta correcta: d
Justificación: Al visualizar este esquema nos permite ver una representación a nivel
tecnológico de su HDL optimizada para una arquitectura Xilinx específica, que podría
ayudar a descubrir problemas de diseño al principio del proceso de diseño.
Nivel de dificultad: Medio
Fuente de verificación: Introducción a la programación en VHDL - Marcos Sánchez-Élez
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 64.
Reactivo 1.
Enunciado. - Seleccione la respuesta correcta.
a Cambios en una señal de entrada y su uso es necesario para propósitos de ejecución del
RTL squematic.
b Eventos de señales de entrada especificados dentro de la entidad para propósitos de
simulación.
c Cambios de una señal y su uso es necesario para propósitos de simulación.
d Cambios de señales de entrada especificados dentro de la arquitectura para propósitos de
configuración.
Respuesta correcta: c
Justificación: El atributo mas usado es EVENT, en donde el driver lleva información de los
cambios de una señal y su uso es necesario para propósitos de simulación.
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 58.
Reactivo 2.
Enunciado. - Selecciones la respuesta correcta.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
En una descripción estructural, los componentes se comunican entre si a través de señales, por lo
que:
Respuesta correcta: b
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 41.
Reactivo 3.
Enunciado. - Selecciones la respuesta correcta.
En la instanciaciónón por ............, la lista de conexiones se hace en el mismo orden en que los
puertos fueron ............... en la entidad del ..........................
Respuesta correcta: a
Fuente de verificación: Estructura de VHDL, Sitio Web Barragan Diego, página 86.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 4.
Enunciado. - Selecciones la respuesta correcta.
Respuesta correcta: c
Fuente de verificación: Xilinx FPGAs Using ISE Design Suite, Libro Dye David Capitulo
3, página 64.
Reactivo 1
Enunciado. - Seleccione la respuesta correcta
En VHDL la parte exterior es decir cuántos puertos de entrada y salida tenemos se denomina
………..y la descripción del comportamiento del circuito de denomina …………..
a Entity; architecture
b Architecture; entity
c Estados; transiciones
d Transiciones; modelado estructural
Respuesta correcta: a
Justificación:
Un detector de secuencia de Mealy realiza un análisis de todos sus estados para identificar tanto la
secuencia correcta o incorrecta, dentro de esta puede existir dos la forma continua y segmentada
estos dos tipos de soluciones se diferencia por los estados que va a desarrollos ya que en la
segmentada tiene más estados que la continua.
Nivel de dificultad: Medio
Fuente de verificación: Libro Introducción a la Programación en VHDL de Marcos Sánchez Élez.
[3]
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 3
Enunciado. - Seleccione la respuesta correcta
¿Qué es Port Map y para que se lo usa?
a Es una cláusula que realiza declaraciones globales.
b Es una cláusula que realiza descripciones estructurales.
c Es una cláusula que realiza descripciones comportamentales
d Es una cláusula que realiza llamados a un nivel jerarquico.
Respuesta correcta: a
Justificación:
La cláusula PORT MAP declara las conexiones. Si PORT fuera una declaración local, PORT MAP
sería una forma de declaración global. En realidad, cada instanciación de un componente puede ser
vista como una llamada a su proceso y, por tanto, a una sentencia concurrente como sucedía en el
modelado comportamental. Si la instancia es también una descripción estructural, llamará a los
procesos correspondientes de un nivel jerárquico inferior y así sucesivamente hasta encontrar algún
modelo comportamental puro.
Reactivo 4
Enunciado. - Seleccione el orden correcto
Cada sentencia pertenece a una definición:
1. IN
2. OUT
3. INOUT
4. BUFFER
5. LINKAGE
Respuestas:
a 1.A; 2.D; 3.C; 4.B; 5.E
b 1.C; 2.D; 3.A; 4.B; 5.E
c 1.C; 2.A; 3.D; 4.B; 5.E
d 1.C; 2.D; 3.B; 4.A; 5.E
Respuesta correcta: d
Justificación:
Reactivo 5
Enunciado. – Complete correctamente el enunciado
La declaración de ……… proporciona información sobre la interfaz externa de un
componente, que incluye los puertos de entrada y salida y los ……. La información es similar
al proporcionado en una declaración de entidad.
a Puertos – componentes.
b Un vector – buffers.
c Componente - parámetros relevantes.
d Componente – parámetros auxiliares.
Respuesta correcta: c
Justificación:
Ejercicios Taller
Reactivo 1.
Enunciado. – Seleccione la respuesta correcta:
Sentencias Concurrentes:
a Las sentencias concurrentes son sentencias condicionales que tienen al menos dos
valores por defecto para cuando no se cumplen ninguna de las condiciones.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Justificación:
Las sentencias concurrentes son sentencias condicionales que tienen al menos un valor por defecto
para cuando no se cumplen ninguna de las condiciones. Aunque podría utilizarse una sentencia
común como un if con obligación de else, los desarrolladores de VHDL han preferido utilizar dos
sentencias particulares:
Reactivo 2.
Enunciado. – Seleccione la respuesta correcta:
¿Qué metodología usa normalmente un testbench?
a Espera de tiempo, creación de estímulos y comprobación de resultados.
b Creación de estímulos, comprobación de resultados y espera de tiempo.
c Creación de estímulos, espera de tiempo y comprobación de resultados.
d Creación de estímulos, espera de tiempo sólo si se está probando un circuito
síncrono y comprobación de resultados.
Respuesta correcta: c) Creación de estímulos, espera de tiempo y comprobación de resultados.
Justificación:
La Fase de simulación se ejecuta de una forma particular, primero define o crea los estímulos
correspondientes, luego aplica una espera de tiempo y finalmente muestra los resultados obtenidos
mediante una gráfica o datos.
Nivel de dificultad: Medio
Fuente de verificación: (Introducción A La Programación En VHDL, Marcos Sánchez, pag. 39)
Reactivo 3.
Enunciado. – Seleccione la respuesta correcta:
VHDL presenta una sentencia específica, WAIT, que detiene la ejecución del código
hasta que se cumpla una condición. ¿Cuándo debe aparecer obligatoriamente la sentencia
WAIT?
a La sentencia wait debe aparecer obligatoriamente si el process no tiene lista de
sensibilidad
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 4.
Enunciado. – Seleccione la respuesta correcta:
Justificación:
La simulación consta de tres fases:
- Fase 0: la simulación comienza en la fase de inicialización donde a las señales se les asignan unos
valores iniciales y se pone el tiempo a cero. La asignación se hace rellenando una lista de eventos
para el instante t = 0.
- Fase 1: todas las transiciones planificadas para ese tiempo son ejecutadas. Es decir, se ejecuta el
código ordenadamente teniendo en cuenta cuales son las señales que se han modificado,
cumpliendo las normas de ejecución explicadas para los process.
- Fase 2: Las señales que se han modificado como consecuencia de las transiciones planificadas en
el instante t se escriben en la lista de eventos planificándose para el instante t + δ. Donde δ es un
instante infinitesimal.
Nivel de dificultad: Medio
Fuente de verificación: (Introducción A La Programación En VHDL, Marcos Sánchez, pág. 35)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 5.
Enunciado. – Seleccione la respuesta correcta:
A que hace referencia la siguiente descripción:
Justificación:
Descripción Estructural
Esta descripción utiliza para la creación de la arquitectura de la entidad entidades descritas y
compiladas previamente, de esta manera en VHDL podemos aprovechar diseños ya realizados, o
realizar diseños sabiendo que se utilizarán en otros más complicados. Así se ahorra trabajo al
diseñador-programador. Se declaran los componentes que se van a utilizar y después, mediante los
nombres de los nodos, se realizan las conexiones entre los puertos. Las descripciones estructurales
son útiles cuando se trata de diseños jerárquicos botton-up.
Nivel de dificultad: Medio
Fuente de verificación: (Introducción A La Programación En VHDL, Marcos Sánchez, pag. 28)
REACTIVO 1.
Enunciado. – Relacione las palabras con su respectivo significado.
Opciones de Respuesta:
q) 1A, 2B, 3C
r) 1B, 2C, 3A
s) 1C, 2A, 3B
t) 1A, 2C, 3B
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Respuesta correcta: b
Justificación:
• VHDL: VHDL es un lenguaje de descripción de circuitos electrónicos digitales que utiliza
distintos niveles de abstracción. El significado de las siglas VHDL es VHSIC (Very High Speed
Integrated Circuits) Hardware Description Language.
• Entidad: Una entidad es la abstracción de un circuito, ya sea desde un complejo sistema
electrónico o una simple puerta lógica. La entidad únicamente describe la forma externa del
circuito, en ella se enumeran las entradas y las salidas del diseño.
• Arquitectura: Una arquitectura describe el funcionamiento de la entidad a la que hace
referencia, es decir, dentro de architecture se tiene que describir el funcionamiento de la
entidad a la que está asociada utilizando las sentencias y expresiones propias de VHDL.
Reactivo 2.
Enunciado. – Seleccione la respuesta correcta.
a Texto y Fuente
b Entidad y Fuente
c Entidad y Estructura
d Estructura y Datos
Opciones de Respuesta:
a) Texto y Fuente
b) Entidad y Fuente
c) Entidad y Estructura
d) Estructura y Datos
Respuesta correcta: c
Justificación:
Estructura Básica de un Archivo fuente en VHDL Como hemos visto los modelos VHDL están
formados por dos partes: la entidad (entity) y la arquitectura (architecture); es en esta última
donde se escriben las sentencias que describen el comportamiento del circuito, a este modelo de
programación en VHDL se le suele denominar behavioral.
Nivel de dificultad: Alto
Fuente de verificación:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Reactivo 3.
Enunciado. – Verdadero o Falso
Opciones de Respuesta:
a) Verdadero
b) Falso
Respuesta correcta: a
Justificación:
LabVIEW ofrece un enfoque de programación gráfica que le ayuda a visualizar cada aspecto de
su aplicación, incluyendo configuración del hardware, datos de medidas y depuración. Esta
visualización simplifica la integración del hardware de medidas de cualquier proveedor,
representa una lógica compleja en el diagrama, desarrolla algoritmos de análisis de datos y
diseña interfaces de usuario de ingeniería personalizadas
Nivel de dificultad: Medio
Fuente de verificación:
J. Arias, Extension de red con LAMP SERVER, Ambato: Universidad Tecnica de Ambato, 2020.
Reactivo 4.
Enunciado. – Seleccione la respuesta correcta.
National Instruments (NI) es una empresa que transforma la manera en cómo los _________ e
investigadores ________, generan prototipos e implementan sistemas para aplicaciones
embebidas, de medidas y de automatización
a Ingenieros - diseñan
b Informáticos - científicos
c Módulos - Estructura
d Ingenieros - recolectan
Opciones de Respuesta:
a) Ingenieros - diseñan
b) Informáticos - científicos
c) Módulos – Estructura
d) Ingenieros - recolectan
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
Respuesta correcta: a
Justificación:
National Instruments (NI) es una empresa que transforma la manera en cómo los ingenieros e
investigadores diseñan, generan prototipos e implementan sistemas para aplicaciones
embebidas, de medidas y de automatización. El objetivo de esta empresa es que sus clientes
desarrollen continuamente tecnologías innovadoras que impacten a millones de personas ya sea
desde la programación de sistemas de juegos de la próxima generación hasta la creación de
nuevos dispositivos médicos
Nivel de dificultad: Alto
Fuente de verificación:
J. Arias, Extension de red con LAMP SERVER, Ambato: Universidad Tecnica de Ambato, 2020.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES
Cdla. Universitaria (Predios Huachi) / Casilla 334 / Telefax: 03-2851894 – 2411537, Correo Electrónico: carrera.industrial@uta.edu.ec
AMBATO-ECUADOR
9. BIBLIOGRAFÍA