Proyecto Calculadora

October 7, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Proyecto Calculadora...

Description

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

ARQUITECTUR A DE COMPUTADORAS ARQUITECTURA COMPUTADORAS   CALCULADORA DE NÚMEROS EN PUNTO FLOTANTE  FLOTANTE 

(26/Febrero/2018)   (26/Febrero/2018) Alex Arévalo, Jonathan Vargas, Henrry Cordovillo, Jonathan Vilatuña

 Resumen  Resume n — E Enn

el siguiente trabajo se llevará a cabo una explicación sobre las OPERACIONES ENTRE NÚMEROS CON PUNTO FLOTANTE , sus componentes y la creación de un programa y una calculadora física con un microcontrolador Atmel, un teclado y una pantalla led, que nos permite realizar las operaciones de suma, resta, multiplicación y división. I. 

OBJETIVOS

✓ 

Conocer el funcionamiento de un microcontrolador ATMEL. ✓  Aplicar conocimientos en electrónica para el ensamblaje de una calculadora en punto flotante con componentes electrónicos. ✓  Aprender a programar un Arduino nano y transmitir datos a través del monitor serial. ✓  Conocer la funcionalidad de cada uno de los pines del Arduino. II. 

MARCO TEÓRICO

Microcontroladores

Los microcontroladores (abreviado μC, UC o MCU) son circuitos integrados que son capaces de ejecutar ordenes que fueron grabadas en su memoria. 

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Arduino

Definición Arduino es una plataforma de hardware de código abierto, basada en una sencilla placa con entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el lenguaje de programación Processing. Es un dispositivo que conecta el mundo físico con el mundo virtual, o el mundo analógico con el digital. Estructura de un Arduino Nano

 

Serial: 0 (RX) y (TX). (RX) usado para recibir y (TX) usado para transmitir datos TTL vía serie. Estos pines están conectados a los pines correspondientes del chip USB.

 

Interrupciones Externas: pines 2 y 3. Estos pines pueden ser configurados para activar una interrupción por paso a nivel bajo, por flanco de bajada o flanco de subida, o por un cambio de valor.

 

PWM:  pines 3, 5, 6, 9, 10, y 11. Proveen de una salida PWM de 8-bits cuando se usa la función analogWrite.







 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

 

LED: Pin 13. Existe un LED conectado al pin digital 13. Cuando el pin se encuentra en nivel alto, el LED está encendido, cuando el pin está a nivel bajo, el LED estará apagado.

 

Reset. Pon esta línea a nivel bajo para resetear el microcontrolador. Normalmente se usa para añadir un botón de reset que mantiene a nivel alto el pin reset mientras no es pulsado.





Características del Arduino Nano   Solo carece de Jack de alimentación DC y funciona con un cable Mini-B USB en lugar



de uno estándar.   Las características de entrada salida son que cada uno de los 14 pines digitales del Nano  pueden ser usados como como entrada o salida.



  El Arduino Nano puede ser alimentado usando el cable USB Mini-B, con una fuente



externa no regulada de 6-20V (pin 30), o con una fuente externa regulada de 5V (pin 27).   Memoria Flash 16 KB (ATmega168) o 32 KB (ATmega328) de los cuales 2KB son



usados por el bootloader.   Frecuencia de reloj: 16 MHZ.



Display LCD 16X2 El LCD (pantalla de cristal líquido) es un dispositivo empleado para la visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual dirige todo su funcionamiento. LCD de 16x2, esto quiere decir que dispone de 2 filas de 16 caracteres cada una. Los píxeles de cada símbolo o carácter, varían en función de cada modelo.

Pines de alimentación:  Vss: Gnd Vdd: +5v Vee: corresponde

al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a

Vdd.

Pines de control:   RS: Corresponde

al pin de selección de registro de control de datos (0) o registro de datos (1). Es decir, el pin RS funciona paralelamente a los pines del bus de datos. Cuando RS es 0 el dato  presente en el bus pertenece a un reg registro istro de control/instrucción. y cu cuando ando RS es 1 el dato presente en el bus de datos pertenece a un registro de datos o un carácter.  RW: Corresponde

al pin de Escritura (0) o de Lectura (1). Nos permite escribir un dato en la  pantalla o leer un dato desde la pantalla.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN  E: Corresponde

al pin Enable o de habilitación. Si E (0) esto quiere decir que el LCD no está activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD. Pines de Bus de datos: 

El de datos bidireccional desde losdel pines D7. Para la comunicación conBus el LCD podemos hacerlo comprende utilizando los 8 bits busD0 de adatos (D0 arealizar D7) o empleando los 4  bits más significativos del bus de datos datos (D4 a D7). La memoria DDRAM (Data Display Ram): corresponde a una zona de memoria donde se almacenan los caracteres que se van a representar en pantalla. La memoria CGROM es una memoria interna donde se almacena una tabla con los caracteres que  podemos visualizar en el lcd.

Teclado Matricial

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Características:  16 botones con organización matricial (4 filas x 4 columnas) Teclado tipo membrana Mayor resistencia al parte agua de y alatrás polvo Auto adhesivo en la Tiempo de rebote (Bounce time): ≤5 ≤5 ms  ms Máximo voltaje operativo: 24 V DC Máxima corriente operativa: 30 mA Resistencia de aislamiento: 100 MΩ MΩ (@  (@ 100 V) Voltaje que soporta el dieléctrico: 250 VRMS (@ 60Hz, por 1 min) Expectativa de vida: 1.000.000 de operaciones Dimensiones del pad: 6.9 x 7.7 cm aprox. Cable de cinta plana de 8.3 cm de largo aprox. (incluido el conector) Conector tipo DuPont hembra de una fila y 8 contactos con separación estándar 0.1" (2.54mm) Temperatura de operación: 0 a 50 °C

Adaptador I2C Para Pantallas LCD Con Arduino

Como poder obtener unos pines más pasando de emple ar una lcd conectada en modo  pa r al e l o (e mp mpll e a mo s 6 pi n es ) a un a l cd qu e em pl ea el pr ot oc ol o de c o mu muni ni c ac i ón I2C empleamos 2 pines analógicos analógicos.. Hay algunos modelos que viene el adaptador para soldar al lcd y otros que ya vienen  par  p ar a su ut i l i za c i ón es ne ce sa ri o de s ca rg ar un a l i br er í a   LiquidCrystal_I2C. LiquidCrystal_I2C.  

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Programación de Arduino Para programar la placa es necesario descargarse de la página web de Arduino el entorno de desarrollo (IDE).

Estructura Básica de Programación La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos  partes: setup y loop. Setup() constituye la l a preparación del programa y loop() es la ejecución. En la función Setup() se incluye declaración de variables y selatrata de la primera función que se ejecuta en el programa. Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.)

Representación En Punto Flotante La representación en coma flotante más importante es la definida en la norma o estándar 754 del IEEE, y adoptada en 1985. Este estándar se desarrolló para facilitar la portabilidad o transferencia de los programas de un procesador a otro y para alentar el desarrollo de programas numéricos sofisticados. Este estándar ha sido ampliamente adoptado y se utiliza prácticamente en todos los  procesadores y los coprocesadores coprocesadores aritméticos actuales.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Con esta notación exponencial seremos capaces representar un amplio rango de valores numéricos  positivos y negativos centrados en el cero. Un número cualquiera X expresado en notación exponencial se puede escribir como: X = M * BE  y si lo queremos representar en un registro de n bits, utilizaremos p bits para la mantisa M y q bits  para el exponente E, además del un bit de signo S de la mantisa (del número en sí). Siendo B la  base del exponente y cumpliéndose cumpliéndose que: n = p+q+1 La base B está implícita y no es necesario representarla, pues es la misma siempre. El nombre de coma flotante proviene de que al ajustar aj ustar el exponente E se modifica la posición del  punto decimal decimal en la man mantisa tisa M. El diseñad diseñador or de la aritmética debe conseguir un compromiso entre los tamaños de la mantisa y los tamaños del exponente, ya que, al tener un número fijo de bits totales, si se toma un bit de un campo se pierde del otro y viceversa. Este compromiso se mueve entre la precisión y el rango que deseemos del número en punto flotante, es decir incrementar el tamaño de la mantisa enriquece el número de bits para representar la mantisa, mientras que incrementar el tamaño del exponente incrementa el rango de números que pueden representarse.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Suma y Resta En la aritmética de coma flotante, la suma y la resta son más complejas que la multiplicación multi plicación y la división. Esto es debido a la necesidad de ajustar las partes significativas. Hay cuatro etapas  básicas del algoritmo para sumar sumar o restar:

Diagrama de flujo de la Suma y Resta.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Multiplicación Y División La multiplicación y la división en punto flotante son más sencillas de realizar. Vemos la fórmula que nos permitirá realizar estas operaciones manualmente:

Diagrama de flujo de la multiplicación y división.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

III. 

Conexión teclado matricial

Conexión display LCD 16x2

DESARROLLO DE LA PRÁCTICA

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Conexión Arduino

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

IV. 

RESULTADOS

Usando la representación de flotantes en el formato del IEEE de 32-bit y las operaciones aritméticas de punto flotante, se obtuvieron los siguientes resultados: Los siguientes resultados fueron obtenidos a través del monitor Serial de Arduino, el cual nos  permite visualizar todos los procesos que realiza el programa para llegar al resultado resultado final. Ingresando por teclado el número 280.80 que representa a X, se puede observar su normalización y representación en 32-bits:

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Ingresando por teclado el número 58.80 que representa a Y, se puede observar su normalización y representación en 32-bits:

La operación que se realizo fue la suma, usando la forma de punto flotante y como resultado se obtuvo lo siguiente:

Visualización física de los dígitos y la operación ingresados por teclado para luego mostrar el resultado en una pantalla LCD.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

V. 

ANÁLISIS DE LOS RESULTADOS

Se utilizo el Arduino nano para la realización de esta práctica por facilidad de programación en C y por la facilidad de conexiones entre los dispositivos electrónicos como el teclado matricial y la pantalla LED así como la disponibilidad de varios pines analógicos y digitales. Y Arduino nos permite la visualización de los procesos que se realizan dentro del programa ya que posee un monitor serial que transmite datos a 9600 baudios y por el cual mostramos los  procedimientos para la realización de las operaciones. operaciones. Basándose en los valores resultados obtenidos, podemos decir que la metodología usada fue la correcta para realizar las operaciones con punto flotante, considerándose un error mínimo en los resultados. Las operaciones de punto flotante fueron realizadas basándonos en la tabla de operaciones aritméticas, las cuales nos facilitaron el trabajo.

La función principal de este programa es la IEEEflotante() ya que de esta función podemos obtener los exponentes y el significante de cada uno de los dígitos ingresados para luego realizar las operaciones respectivas.

Las operaciones son realizadas en la función operaciones () la cual nos permita un mejor manejo de cada uno de los elementos como el exponente y el significante.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

VI. 

CONCLUSIONES Y RECOMENDACIONES

✓ 

Con el análisis detallado en el proyecto de Arquitectura de Computadoras hemos constatado la implementación de circuitos que ayudan transformando dos mundos distintos como es el mundo analógico y el digital esto gracias al tan t an famoso arduino quien gracias a un código abierto podemos programar las funcionalidades según nuestros requerimientos.

✓ 

La implementación de una calculadora con punto flotante y código binario ha sido un gran reto para nosotros como estudiantes debido a la dificultad de aplicación de un código nuevo, sin embargo, hemos logrado desempeñar y realizar el presente proyecto, siendo así una manera de tener nuevos logros académicos.

✓ 

El estudio del mismo nos permite seguir desarrollando mas ideas innovadoras en un futuro cercano, siendo así implementar nuevas funcionalidades o la creación de nuevos  proyectos ya no solo en estos microcontroladores sino ya pensando en grande como inclinarse a la robótica, etc.

✓ 

La tecnología avanza a pasos agigantados y se debe ir acoplando a estos cambios, por ende, este documento no sería factible tomarlo como un ejemplo preciso, sino que, se debería tomarlo como una referencia ya que este tal vez con el tiempo puede sufrir un desfase cronológico y las partes citadas en el presente proyecto pueden resultar obsoletas.

 

ESCUELA POLITÉCNICA NACIONAL Arévalo, Cordovillo, Vargas, Vilatuña 

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

VII. 

BIBLIOGRAFÍA

[1] W. Stallingsth, Computer Organization and Architecture 9na ed, Pearson, 2009. 2009 . [2] arduino, «arduino,» [En línea]. Available: https://www.arduino.cc/reference/en/language/variables/data-types/string/. https://www.arduino.cc/reference/en/language/varia bles/data-types/string/. [Último acceso: 20 Febrero 2018]. [3] geekfactory, «geekfactory,» 2010. [En línea]. Available: https://www.geekfactory.mx/tutoriales/tutoriales-arduino/pantalla-lcd-16x2-conarduino/. [Último acceso: 18 Febrero 2018]. [4] prometec, «prometec,» 2010. [En línea]. Available: https://www.prometec.net/tecladosmatriciales/. [Último acceso: 20 Febrero 2018]. [5] D. A. Patterson, Computer and Organization and Design, USA.

VIII. 

ANEXOS  

#include #include #define length2(x) (sizeof(x)/sizeof(x[0])) #include //Librería //Librería para el control del LCD por I2C. #include //Librería para el control del keypad. #include //Librería para comunicación I2C. #define I2C_ADDR from I2C Scanner #define LED

3

#define En_pin

2

#define Rw_pin

1

#define Rs_pin

0

0x27 //
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF