Professional Documents
Culture Documents
Módulo de microprocesadores:
“Display 7 segmentos, contadores y
calculadora”
Índice
Contenido Página
1. Resumen .................................................................................................................................... 1
2. Introducción .............................................................................................................................. 2
3. Marco teórico. ........................................................................................................................... 3
3.1 Descripción general de la tarjeta desarrollo Easy8051 V6. ........................................... 3
3.2 Identificación de componentes y secciones de la tarjeta. .............................................. 3
3.3 Descripción de la funcionalidad de los componentes utilizados para el desarrollo de
las experiencias de laboratorio. ................................................................................................. 5
3.3.1 Funcionamiento LM016L con Mikroc8051. ......................................................... 5
3.3.2 Funcionamiento teclado matricial (4x4)................................................................ 5
3.3.3 Funcionamiento del display de 7 segmentos. ........................................................ 6
4. Desarrollo .................................................................................................................................. 8
4.1 Listado de equipos e instrumentos. ............................................................................... 8
4.2 Procedimiento general. .................................................................................................. 8
4.3 Compilación del programa mediante el programador 8051flash. ................................. 8
4.4 Montaje Nº1 - Contador 0-9999. ................................................................................... 9
4.4.1 Programación en C. ............................................................................................... 9
4.4.2 Programación en Assembler................................................................................ 10
4.4.3 Verificación del tiempo de retardo. ..................................................................... 11
4.5 Montaje Nº2 - Calculadora en Lenguaje C.................................................................. 12
5. Conclusiones y observaciones. ................................................................................................ 15
6. Referencias bibliográficas ....................................................................................................... 16
1. Resumen
El objetivo principal que tiene la realización de la presente experiencia de laboratorio, es que el estudiante
logre un primer acercamiento real al manejo y desarrollo de tareas basadas en la utilización de
microcontroladores. A modo de cumplir este objetivo, se realizaron dos implementaciones que requieren
de la aplicación de conocimientos y competencias adquiridas en ramos ya cursados, tales como sistemas
digitales y microprocesadores, y a la vez, el estudio de la tarjeta Easy8051 v6, que será el entorno de
desarrollo a utilizar.
La primera implementación corresponde a un contador ascendente desde 0 a 9999, para el cual será
necesario la utilización del conjunto de displays de siete segmentos incorporados en la tarjeta, y la segunda,
corresponde a una calculadora que permite realizar operaciones básicas (adición, sustracción,
multiplicación y división) entre dos números de cuatro cifras, para la cual será necesario la utilización del
teclado matricial 4x4 y del LCD 16x2 (LM016L).
2. Introducción
Hoy en día podemos encontrar computadoras de diferentes naturalezas en diversos campos, tanto en la vida
cotidiana como en la industria. Su presencia pasa inadvertida en la mayoría de los casos, obviando su
funcionamiento e importancia para el común de la gente. Estos computadores pueden actuar como
componente primordial para el desarrollo de productos industriales, automotrices y de consumo: en el hogar
lo podemos ver en los microondas, lavadoras, televisiones, entre otras cosas; en el ámbito de la música se
puede observar en las guitarras, órganos, así como también en los aparatos electrónicos que se ocupan para
poder amplificar su sonido; y así podríamos seguir enumerando las aplicaciones que tienen estas
computadoras en las diversas esferas del día de hoy. La función que tienen estas computadoras es ejecutar
funciones, las cuales, a través de una interfaz, pueden controlar funciones del mundo físico, ya sea apagar
o encender dispositivos, monitorear, etcétera. En las tareas que se mencionaron anteriormente, el
dispositivo más usado es el microcontrolador; este es diseñado de tal forma que tenga todos los
componentes integrados en el mismo chip: contiene en su interior un microprocesador, memoria RAM para
poder contener los datos, memoria para el programa tipo ROM/PROM/EPROM, líneas de E/S para
comunicarse con el exterior, diversos módulos para el control de periféricos y un generador de impulsos de
reloj, el cual sincroniza el funcionamiento de todo el sistema.
A diferencia de otros circuitos integrados que sólo necesitan ser conectados a otros componentes para luego
ser encendido, los microcontroladores necesitan ser programados antes de conectarlos a la alimentación.
Estos microcontroladores puedes ser programados por dos tipos de lenguaje: de nivel bajo y de nivel alto.
En la programación de nivel bajo encontramos al lenguaje ensamblador, el cual nació en respuesta a la
complejidad de los códigos ejecutables en lenguaje máquina. Luego, encontramos los lenguajes de
programación de nivel alto, entre los cuales están Basic, Pascal, C, entre otros. Los lenguajes de alto nivel
fueron creados para suplir las deficiencias que mostraba el lenguaje ensamblador, como por ejemplo: una
sentencia en un lenguaje de nivel alto podía reemplazar diversas instrucciones en lenguaje bajo; el conjunto
de instrucciones que se deben conocer para llevar a cabo un programa en el lenguaje ensamblador varía
dependiendo del tipo de microcontrolador que se esté usando.
3. Marco teórico.
3.1 Descripción general de la tarjeta desarrollo Easy8051 V6.
La tarjeta de desarrollo Easy es una placa adecuada para programar microcontroladores 8051 de Atmel lo
que permite al usuario utilizarla para diseñar y probar proyectos realizados con los 8051. El sistema de
desarrollo incluye un programador integrado que proporciona una interfaz entre el microcontrolador y una
PC. De esta forma el usuario al escribir algún programa en uno de los compiladores de 8051, pueda generar
un archivo .hex para posteriormente cargarlo al microcontrolador incorporado en la tarjeta.
3.3 Descripción de la funcionalidad de los componentes utilizados para el desarrollo de las experiencias
de laboratorio.
3.3.1 Funcionamiento LM016L con Mikroc8051.
El LM016L es un display LCD 2x16 alfanumérico el cual está conectado al microcontrolador a
través del puerto PORT2, cuenta además con un potenciómetro (etiquetado como P2) el cual ajusta
el contraste de la pantalla de este.
La comunicación entre el display LCD y el microcontrolador está dado por un modo de 4 bits,
mientras que los dígitos alfanuméricos son mostrados en dos líneas en el LCD, cada una de hasta 16
caracteres de 7x5 pixeles.
Mediante un interruptor etiquetado como LCD-BCK (ubicado en el DIP SW7), es posible encender
o apagar la luz de fondo del visualizador.
y P0.7 están configurados como entradas conectadas (tal como se muestra en la figura 3.5) a las
resistencias de pull-down.
Los demás puertos de P0 están configurados a salidas de alto nivel de voltaje, de esta forma
al apretar cualquier botón se producirá un 1 lógico aplicado al pin de entrada. Por lo que
se puede determinar cuál de los botones es presionado desde dentro del software de la
tarjeta.
4. Desarrollo
4.1 Listado de equipos e instrumentos.
Tabla 4.1 Listado de equipos e instrumentos usados en la realización de las experiencias del laboratorio.
Equipo, Montaje
instrumento de
Marca Modelo Cantidad Observaciones
medición Nº1 Nº2
TDS- En buen
Osciloscopio Tektronix 1
1012B estado
Tarjeta de 8051 En buen
Mikroelektronika 1
desarrollo v6 estado
Fuente: Elaboración propia.
𝑇𝑜𝑡𝑎𝑙 = 4.044[𝑚𝑠]
Así, para conseguir una secuencia a razón de un segundo, se debe repetir el muestreo de cada
número un total de: 𝑥 ∙ 4.044[𝑚𝑠] = 1[𝑠] → 𝑥 ≈ 247.
4.4.2.5 Finalmente, para lograr una correcta secuencia ascendente, cada vez que le corresponde a
una cifra 9 incrementarse (claramente luego de haberse muestreado 247 veces el número actual),
esta se vuelve a inicializar en cero y se incrementa en uno la cifra inmediatamente a la izquierda.
Así, la secuencia será de manera ascendente, y se reiniciará el programa una vez alcanzado el
último número. A continuación se adjuntara el programa completo.
Figura 4.6 Oscilograma del programa contador con 1[ms] por cada instrucción.
Fuente: Extraído desde el Osciloscopio Keysight, modelo InfiniiVision DSOX2012A.
Para esto, se tomó como referencia un ejemplo otorgado por el software mikroC el cual viene por defecto
dentro del. Este programa muestra como habilitar el LCD 2x16 alfanumérico y el teclado matricial de la
tarjeta de desarrollo, y así de esta forma poderlos utilizar en la implementación práctica de la calculadora.
Este programa se encuentra utilizando la herramienta “Help” del programa compilador en la sección de
“keypad library”.
Cabe destacar, que dentro de este programa existirá una variable etiquetada como “kp”, esta determinará qué
función cumplirá el botón presionado en el teclado matricial, por lo tanto, es fundamental crear una función
“switch” (Fila 35) para variar cada caso dependiendo del valor que tome kp. El orden asignado para el diseño
de la calculadora será:
Figura 4.7 Orden detallado del teclado matricial asignado para la calculadora.
Fuente: Elaboración propia.
Al momento de querer mostrar los números en el LCD 2x16, se debe hacer un arreglo previo para que cada
vez que se presione un botón con un número este vaya tomando una posición y si se oprima otro este tome
la posición siguiente al ya mostrado. También es importante tener en cuenta que al desear mostrar el valor
del botón solicitado se le debe sumar un numero apropiado al kp, ya que para que pueda ser mostrado en la
pantalla este debe ser enviado como código ASCII, esto quiere decir que cada valor de kp ya declarado en la
primera instrucción “switch” se le debe sumar en este caso el valor de 48 para poder conseguir los símbolos
de los números desde el 0 al 9, esto también se debe tener en cuenta para los símbolos de las operaciones.
Para poder lograr entender mejor lo detallado anteriormente, se podrá apreciar a continuación la tabla de
caracteres ASCII que esta por defecto en el compilador mikroC en la Figura 4.5.
5. Conclusiones y observaciones.
5.1 En el contador, al querer que este, en vez de contar desde 0 hasta 9999, contara desde 9999 hasta
0, en la programación del montaje tuvo que cambiarse una parte del programa principal, la cual
consistía en cambiar las condiciones del for. En la Figura 6.1 se muestra la programación
respectiva.
6. Referencias bibliográficas
[1] Easy 8051 v6, “User Manual Development System”, 2009, Mikroelektronika.
[2] Mackenzie, I. Scott, Phan Raphael C.W.: ”The 8051 Microcontroller”, 4th Ed. Prentice Hall, 2007.
[3] Mazidi Muhammad, Ali, “The 8051 microcontroller and embedded systems”, 2006, Pearson.
[4] Milan Verle, “Architecture and programming of 8051 Mcus”, 2009, Mikroelektronika.