Departamento de Eléctrica y Electrónica
Asignatura: Microprocesadores
NRC: 2085
Docente: Ing. Miroslava Zapata
Integrantes: Edwin Farinango Estanislao Montenegro Isaac Sanipatín
Sangolquí, 7 de diciembre del 2017
DEPARTAMENTO DE E LÉ CTRICA Y ELE CTRÓ CTRÓNI NI CA ASIGNATURA: Microprocesadores
Informe
1. Tema: Comunicación entre Visual Basic y ALU para mostrar en una LCD. 2. Objetivos:
General: Realizar una comunicación en paralelo hacia la ALU utilizando el software Visual Basic y mostrar el resultado en la LCD.
Específicos: Identificar el funcionamiento de una Unidad Lógica Aritmética (74LS181).
Conocer los comandos y funciones del Visual Basic para la comunicación en paralelo. Realizar la conexión entre todos los elementos.
3. Diagrama de bloques
4. Desarrollo 4.1. Puerto Paralelo y Visual Basic
Programación:
Explicación:
Definimos los datos como enteros
Activamos para poder interactuar
Usamos un condicional para validar si el dato ingresado es numérico
Asignamos dato1 y dato 2 como variables enteras
Utilizamos otro condicional para validar que los números ingresados se an entre 0 y 16
Utilizamos la siguiente fórmula para que el dato resultante que ingresemos sea de 8 bits
Enviamos a la salida el dato 3
Mostramos en el programa el dato ingresado.
Definir el dato inicial en 0.
Interface:
4.2. Funcionamiento de la ALU Para conocer el funcionamiento de una ALU, primero tuvimos que recurrir a la búsqueda del datasheet del CI 74LS181, y así vemos que la ALU puede trabajar en alto o en bajo, por por lo tanto nosotros consideramos la tabla en alto que me proporcionaba el datasheet:
Como ejemplo se puede tener el siguiente caso:
=
̅ =
H
L
H
L
=
̅ ) = ( +
̅ = ̅ ) = ( + 1
Si = 5 → 01012 , = 3 → 00112
ó : = ⟹ = = 00112 ̅ ) ó : = ; ̅ = ⟹ = ( + = (0101 + ̅0011) ((01 0101 01 ∧ 0011 0011)) = (1101) 1101) (0001) 0001) = 13 1 = 14 = 1110 11102 ̅ = ⟹ = ( ̅ ) ó : = ; ( + 1 = 14 1 = 15 = 11112
ó : : =
ó : = ; ̅ =
ó : = ; ̅ =
4.3. Conexión de la ALU y Arduino
Usamos esta librería porque permite que una placa Arduino controle pantallas LiquidCrystal (LCD). Esta biblioteca funciona en modo de 4 u 8 bits (es decir, utilizando 4 u 8 líneas de datos además de las líneas rs, enable y, opcionalmente, las líneas de control rw).
Esta sección es para configurar la LCD con la librería LiquiCrystal, que crea un objeto LCD de parametros: (rs, enable, d4, d5, d6, d7) donde nosotros se leccionamos los pines 1, 2, 4, 5, 6, 7 que estos serán conectados del arduino a la LCD. Además definimos las variables A, B, C, D, E, que serán los datos que recibirá el Arduino de la ALU, y la variable conversión, que después usaremos una fórmula para convertir el número binario de la ALU a decimal para así mostrar mostra r en la LCD, el i es una variable extra que simula el tiempo de proceso de un reloj.
El setup es la primera función en ejecutarse dentro de un programa en Arduino, aquí es donde establecemos los criterios que requieren una ejecución única por lo tanto, aquí inicializamos el display displa y configurando en 16 columnas por dos filas.
En esta parte realizamos realiz amos la función loop que es donde se va a hacer lo mismo una y otra vez hasta que se apague o se reinicie el Arduino. Dentro de este bucle se va a realizar un proceso de lectura de dígitos, en este caso utilizando las variables A,B,C,D,E.
Usamos esta fórmula para convertir los datos leídos con el comando digitalRead a un número decimal, el cual será mostrado en la pantalla LCD. Este número decimal vendría a ser el resultado de la operación y guardamos este dato como “conversion” para después imprimir en la pantalla.
En esta parte hacemos que el cursor se encuentre en esa posición y muestre en la pantalla la palabra “RESULTADO”, así mismo vamos a mostrar el resulta do obtenido
en la fórmula anterior (“conversion”). (“conversion”). El delay usamos para mostrar el resultado en un tiempo de espera de un segundo. segundo.
4.4. Resultado en la LCD
En la LCD se puede visualizar el resultado una vez empalmando todos los elementos antes mencionados.
5. Materiales
-
Una ALU 74LS181. Un DIP Switch de 8 pines. Ocho resistencias de 220 ohmios. Una LCD de 2x16 Un puerto paralelo(D-25) Arduino Mega
6. Conclusiones:
Con respecto al funcionamiento de la ALU las operaciones realizadas permitieron conocer, de mejor forma, el funcionamiento de la ALU. Tratamos de reducir en lo posible el código de la programación en Visual para que el proceso sea más rápido y eficaz. Las simulaciones permitieron que las distintas operaciones realizadas, sean comprobadas. De igual manera, gracias al datasheet se pudo conocer las conexiones que debe tener la ALU, por lo que facilita el armado; además se conoció que la ALU puede trabajar en un nivel alto o en un nivel bajo. El uso del Arduino facilitó la muestra del resultado en la LCD debido a que gracias a éste y usando la librería LiquidCrystal y usando los comandos fácilmente inicializamos al LCD y además nos permite leer las variables y además con la fórmula obtenida en la variable “conversion” podemos mostrar el resultado obtenido. Ya que con e Visual Basic se usaría mas programación.
7. Bibliografía:
-
Instruments, T. (1988). Aritmetic Logic Units/Function Generators. Generators. Texas, Dallas: Texas Instruments Incorporated. http://www.mfbarcell.es/docencia_uned/fsd/TEMA_02/FuncionamientoALU.pdf https://www.arduino.cc/en/Reference/LiquidCrystal