Implementación de una calculadora básica en lenguaje
Enviado por Alex Fernando Pinchao • 18 de Abril de 2017 • Trabajo • 1.046 Palabras (5 Páginas) • 562 Visitas
[1]
Laboratorio N° 2.
Implementación de una calculadora básica en lenguaje c
Pinchao Leiton Alex Fernando, alexpinchao@gmail.com, Universidad del Valle
Abstract—in this laboratory you are looking for is to implement a calculator programmed in c language, making use of the Atmel Studio software. to carry out this practice was made using the atmega328 microcontroller, a keyboard matrix 4 x 4 with which you enter data and operations to perform (add, subtraction, multiplication and division), and to display these data is made using a 16x2 LCD.
Index Terms— C language, calculator, oscillator, libraries, lcd, keypad.
- INTRODUCTION
Desde su invención, los microcontroladores han sido usados para muchas aplicaciones debido a su versatilidad y buen desempeño, existen diferentes fabricantes, cada uno de ellos maneja su propio lenguaje de programación y su propia estructura interna. Con el uso de los microcontroladores lo que se busca es la automatización de dispositivos para facilitar la realización de todo tipo de procesamientos. La mayoría de aplicaciones deben tener unas entradas para que el usuario pueda indicar que es lo que desea que el microcontrolador haga, con estas entradas el microcontrolador tomas las decisiones necesarias para regresar un resultado en sus salidas, todo esto a través de la programación interna del mismo.
Esta práctica nos acerca de una manera amigable a la realidad de lo que se puede hacer con un microcontrolador, como es hacer operaciones complicadas, digitar los números con un teclado y visualizarlos en una pantalla lcd con su respectivo resultado.
- desarrollo del problema propuesto
Calculadora básica
para el desarrollo de la calculadora que realice las operaciones(suma, resta, multiplicación y división) en lenguaje c, se utilizó el esquema que se muestra en la Fig.1, para el montaje físico del circuito se utilizó un teclado matricial 4x4 para ingresar los datos, un lcd para mostrar los números y el resultado de las operaciones, para el procesamiento se utiliza el atmega 328p de la tarjeta Arduino, se lo utiliza sobre la misma tarjeta para evitar desmontarlo y dañar alguno de los pines aunque perfectamente se puede trabajar con él en una protoborad.
[pic 1]
Fig.1 Esquema del circuito en simulación.
Para poder utilizar los puertos reales del microcontrolador hay que hallar su equivalente en los pines del Arduino uno, como se ve en la siguiente imagen.
[pic 2]
Fig.2 Arduino pin mapping.
Para hacer el programa se inicia importando las librerías que vamos a utilizar para el manejo del teclado y el lcd ; “mat_kbrd.h” y “lcd.h” respectivamente, también se hace el llamado a las librerías para la lectura de puertos, para generar retardos y para hacer cálculos matemáticos. Luego se declaran variables inicializadas en cero: suma, resta, mult y div; que permiten identificar el tipo de operación a realizar dependiendo del carácter leído del teclado, es decir, si el carácter presionado es “+”, entonces la variable suma tendrá un valor de 1, lo que indicara que la operación a realizar es una suma, así sucesivamente con todos los operadores matemáticos, todos los caracteres leídos del teclado son almacenados en la variable “carácter”.
Adicionalmente es necesario declarar 4 arreglos de caracteres de 16 bits cada uno, datoinicial[], datofinal[]; en los que se almacenan los datos a operar recorridos con las variables x y y. lcd1[] y lcd2[] se encargan de mostrar los caracteres en la pantalla.
En el while se implementa varios ciclos if; para el primer dato dos if anidados permiten guardar el dato en el arreglo ”datoinicial[]”, mientras no se presione ningún operador matemático el arreglo continuara guardando los caracteres, para el segundo dato cuando alguno de los operadores matemáticos(+, -, x, /) hay sido presionado, es decir incrementa su valor a 1, los caracteres serán guardados en el arreglo “datofinal[]”.
...