Está en la página 1de 5

Practica 2: Display de 7 segmentos

Víctor Israel Zhigue Tene, victor.zhigue@ucuenca.edu.ec

III. MARCO TEÓRICO.


Resumen— En el desarrollo de esta práctica se llevará a cabo - Compilador CCS C: Hace mas de veinte años
el manejo del elemento display led de 7 segmentos disponible,
Microchip desarrollo el primer compilador para el
tanto para microcontroladores como para microprocesadores y
tarjetas de entrenamiento, dispositivos con los cuales se llevará a lenguaje de programación C, y continúa brindando
cabo diversas practicas del curso. Por lo cual es de vital soluciones en software dirigida a los desarrolladores de
importancia que antes de ingresar de lleno en el manejo y aplicaciones basadas en PIC, MCU y PIC24/dsPIC
programación de estos se realice las pruebas correspondientes DSC. Se puede mencionar que en términos generales es
con el manejo de los dispositivos como la asignación básica de un lenguaje de poca complejidad y rápido
entrada o salida e identificación de diversas señales. Por lo cual se entendimiento.
llevará a cabo una programación y simulación de un circuito de
prueba contador de 0 a 59. Mediante el uso de varias
herramientas de programación y simulación apoyándonos con
diferentes herramientas hardware, para obtener el mismo
resultado. En los dos ensayos realizados de forma independiente
y diferente.

Palabras Claves— Display 7 segmentos, Lenguajes de


programación, Microcontroladores, PIC16F877A, Arduino Uno,
Multiplexor. Fig 1. Producto CCS Compiler.

Estos compiladores incluyen una gran biblioteca de


I. INTRODUCCIÓN funciones integradas, comandos de preprocesador y
En el análisis, estudio y aplicación sobre los programas de ejemplo listos para ejecutar e iniciar
microcontroladores y microprocesadores, se debe de tener una rápidamente cualquier proyecto. Los productos del
base sólida y fundamentada sobre las herramientas que se usan compilador CCS IDE C proporcionan una herramienta
para llevar a cabo diferentes operaciones o actividades que se de perfil única para rastrear el tiempo y la información
requieran. Por lo que se procede en este caso a realizar el de uso en funciones, bloques de código, así como para
entrenamiento con el display 7 segmentos. Para esto se recibir datos en tiempo real de los programas que se
realizará una prueba mediante la codificación en dos lenguajes encuentran en ejecución. Entre las características claves
de programación para PIC como lo son: C, Java. Una vez del compilador se encuentran:
obtenidos estos archivos se lleva a cabo la simulación del o Migrar fácilmente entre todos los dispositivos
circuito correspondiente mediante el uso del software de Microchip PIC MCU.
diseño electrónico denominado Proteus de LabCenter o Minimizar el tiempo de desarrollo con
Electronics con el empleo en primera instancia del controladores periféricos y construcciones C
microcontrolador PIC16F877A, y posteriormente con la placa estándares.
de Arduino Uno. Se identificará el modo de operación del o Usar librerías CCS y código abierto.
display además de mostrar los datos requeridos que en este o Definir, configurar y administrar
caso es el contador de 0 a 59. Finalmente se realiza una interrupciones fácilmente.
comparativa entre las dos herramientas usadas de ventajas,
desventajas tanto de lenguajes de programación como en uso - Arduino IDE: Es el entorno de desarrollo integrado de
del hardware que se requiere para cada caso. Arduino, que se la conoce como una aplicación
multiplataforma que se basa en el lenguaje Java, usado
II. OBJETIVOS con la finalidad de escribir y cargar programas en
- Manejar de manera correcta el elemento display de 7 placas compatibles con Arduino, además de poder
segmentos disponible para microcontroladores y realizarlo sobre otras placas de diversos proveedores
microprocesadores. con la ayuda de terceros.
- Realizar un contador de dos dígitos que empiece en 0 y
termine en 59.
- Identificar los tipos de programación que se pueden
desarrollar para una sola aplicación.
- Identificar las opciones en cuanto a hardware
disponibles para el desarrollo de proyectos.
Fig 2. Arduino IDE. Comunicación Paralelo PSP
Además, el IDE de Arduino admite los lenguajes C y Línea de entrada CAD 8
C++ utilizando reglas especiales de estructuración de Juego de Instrucciones 35 instrucciones
códigos. Se especifica que el código escrito por el usuario Longitud de 14 bits
requiere solamente de dos partes fundamentales, una el Instrucción
inicio del boceto y el ciclo principal del programa los cuales Arquitectura Harvard
se compilan y vinculan con un apéndice de programa. Las CPU RISC
principales ventajas de usar Arduino se detallan a Canales PWM 2
continuación: Tabla 1. Propiedades 16F877A.
o Económico, relativamente baratas en
comparación con otras plataformas. - Arduino Uno: Es una placa de microcontrolador que usa
o Multiplataforma, se puede ejecutar en código abierto, basado en el Microchip ATmega328P del
diferentes sistemas operativos. fabricante Arduino. La placa se encuentra equipada con un
o Entorno de programación simple y claro, fácil conjunto de pines E/S digitales y analógicas las cuales pueden
conectarse a varias placas de expansión u otros circuitos.
de usar por principiantes. Específicamente la placa posee 20 pines de los cuales 14 de
o Software de código abierto, disponible para su ellos son digitales, 6 pines analógicos. Estos pueden ser
extensión por programadores experimentados. programados mediante el uso del software Arduino IDE, que
o Hardware de código abierto y extensible, los ya se ha explicado detalladamente en el apartado anterior. La
diseñadores pueden mejorarlas o construir sus conexión necesaria que se debe de realizar a la laptop se la
versiones del módulo. realiza mediante un cable USB tipo B. Aparte la alimentación
a la placa se la puede realizar mediante una batería externa de
9V, aunque la placa en si acepta voltajes que pueden oscilar
- PIC16F877A: Es un microcontrolador el cual es capaz
entre 7V y 20V. Como en el caso anterior de igual manera se
de poder realizar diferentes actividades que requieran el procede a indicar sus principales características técnicas. En
procesamiento de datos digitales, del control y la la siguiente tabla.
comunicación digital entre diferentes dispositivos. A
demás posee una memoria interna que almacena dos Característica Arduino Uno
tipos de datos. Las instrucciones, que corresponden al Microcontrolador Microchip ATmega328P
programa que se ejecuta, y los registros, es decir, los Voltaje de funcionamiento 5V
datos que el usuario maneja, así como los registros Voltaje de entrada 7V a 20V
especiales para el control de las diferentes funciones Pines E/S digitales 14 de los cuales 6 PWM
del microcontrolador. Este microcontrolador es Pines Analógicos 6
fabricado por Microchip Technology correspondiente a Corriente D/C por pin 20 mA
los denominados PIC. El modelo 16F877A posee varias Corriente CC para pin 50 mA
Memoria Flash 32KB,0.5KB para arranque
características que hacen a este microcontrolador un
SRAM 2KB
dispositivo muy versátil, eficiente y práctico para ser
EEPROM 1KB
empleado en diferentes tipos de aplicaciones, Velocidad de Reloj 16MHz
especialmente en la que se va a realizar en este caso. Tabla 2. Características de Arduino Uno.
Algunas de las características mas importantes de este
microcontrolador se muestran a continuación: - Display de 7 segmentos: Se lo denomina como un
o Soporta modo de comunicación serial. dispositivo opto-electrónico el cual permite realizar la
o Amplia memoria para datos y programa. visualización especialmente de números de 0 a 9, o
o Memoria reprogramable, se puede borrar caracteres que se puedan formar con el arreglo de 7
electrónicamente. leds disponibles. En la actualidad a pesar de ser
o Set de instrucciones reducido, pero con las tecnología de hace años aún se lo sigue usando es
instrucciones necesarias. forma particular para proyectos educativos, relojes
Las propiedades se muestran en forma detallada en la gigantes, letreros, o marcadores. Presenta las
siguiente tabla. características de poseer, facilidad de uso, bajo costo de
Característica 16F877A mantenimiento, y precio accesible de adquisición frente
Frecuencia Máxima DX-20MHz a las nuevas tecnologías. Se debe de tomar en cuenta
Memoria Flash 8KB que este dispositivo esta construido por diodos led por
Posiciones RAM 368 ende requieren una corriente máxima, por lo que se
Posiciones EEPROM 256 debe de colocar una resistencia para limitar dicha
Puertos E/S A, B, C, D, E corriente.
Numero de Pines 40 Como se sabe esta constituido por 7 segmentos, los
Interrupciones 14 cuales están distribuido de la siguiente manera, en el
Timers 3 arreglo de leds.
Módulos CCP 2
Comunicación Serie MSSP, USART
Fig 3. Distribución display 7 segmentos.

Como se puede observar cada led posee una denominación,


que va desde la letra A, hasta la letra G. Además de contar este
esquema con el apartado DP (punto). Estos identificativos
sirven para poder manejar cada led y programar cual de ellos
se van a activar en el tiempo que se necesite.
Existen dos tipos de display 7 segmentos, la principal
diferencia recae en la forma de cómo están conectados los
leds. Se sabe que un led posee dos terminales, una llamada
Fig 6. Código desarrollado en CCS Compiler.
cátodo y otra llamada ánodo. El ánodo es el pin positivo del Una vez desarrollado el código en el programa (Anexo 1), se
LED, mientras que el cátodo es el pin negativo, por lo que la debe de realizar la compilación. Si no se tiene ningún error se
conexión de ellos se diferencia en ser bien de cátodo común, o procede al armado del circuito de simulación en el software
a su defecto de ánodo común. Por lo que además de las 7 Isis Proteus usando los componentes antes mencionados de lo
conexiones para los leds, se necesita una extra, la cual que se obtiene en primera instancia usando el PIC16F877A.
determinará el tipo de display que se tenga. Por lo que se
requiere un tipo de conexión para cada tipo de display.
Para la conexión de cátodo común se tiene que los negativos
de los leds están conectados al pin común. La siguiente
conexión muestra lo indicado:

Fig 4. Conexión Cátodo Común Display 7 segmentos.


Fig 7. Circuito de Simulación en Proteus con PIC16F877A
Para la conexión de ánodo común se tiene que la parte positiva
Se procede a cargar el archivo .HEX que se generó en el
de los leds se conecta a una fuente de poder, la que puede ser
momento que se compilo el programa en el CCS Compiler en
de 5V continuo. El esquema siguiente muestra la conexión que
el microprocesador para verificar su funcionalidad, una vez
se debe de respetar.
cargado se procede a realizar la prueba de lo que se obtiene:
que el contador empieza en el valor de cero en unidades y el
indicador de centenas apagado, al llegar las unidades al valor
de nueve, se enciende el led de decenas continuando con la
cuenta y regresando a cero en el conteo 59. La simulación
ejecutándose con el conteo corriendo se muestra en la
Fig 5. Conexión Ánodo Común Display 7 segmentos. siguiente figura.

IV. DESARROLLO.
Problema a solucionar: Realizar un contador de 0 a 59 con un
doble display de 7 segmentos de cátodo común. La cuenta
debe ser continua y de 0 a 9 el dígito de las decenas debe estar
apagado. Componentes: P1C16F877A, RX8 y 7SEG-MPX2-
CC-BLUE.
Programación en CCSC: Se abre la aplicación CCS Compiler
y se desarrolla el código que se usara para el microprocesador,
de lo que se tiene es:
Fig 5. Simulación ejecutando el programa.

A demás se incluye el circuito desarrollado en Fritzing con los


elementos que se mencionaron antes.
Fig 7. Circuito de Simulación en Proteus con Arduino Uno.

Se procede de igual manera a cargar el archivo .HEX que se


genera al momento de realizar la compilación del programa
escrito en el IDE de Arduino, realizando las modificaciones
pertinentes para que el compilador genere el archivo .HEX ya
que por defecto este no se genera. Una vez realizado se
procede a ejecutar la simulación. Cumpliendo de igual manera
con lo especificado en las indicaciones del problema a
resolver. La simulación ejecutándose se muestra a
continuación:
Fig 6. Circuito desarrollado en Fritzing con PIC.
Parte 2:
Ahora se realiza lo mismo, sustituyendo el PIC 16F877A
por Arduino uno y mostrar su funcionamiento en el programa
de simulación. Para ello se necesita tener descargadas las
librerías de simulación para Arduino. Además de realizar la
respectiva programación en Arduino IDE, de acuerdo cada
caso. En este apartado se mostrará la programación en
Arduino IDE. Que como se puede observar a simple vista es
diferente a la que se realizó para el compilador de CCS. Estas
diferencias corresponden inicialmente al lenguaje de
programación que usa cada uno. El código desarrollado se Fig 8. Simulación con activación de Switch y Arduino Uno.
muestra a continuación.
Se puede observar que de igual manera que el caso anterior la
simulación del circuito presenta los mismos resultados.
Existiendo diferentes modos de programación y diferentes
tecnologías para el mismo resultado. A demás igual que el
apartado anterior se adjunto el circuito desarrollado en
Fritzing.

Fig 6. Código desarrollado en Arduino IDE.

De la misma manera se debe de realizar el circuito de Fig 9. Circuito desarrollado en Fritzing con Arduino Uno.
simulación en ISIS Proteus, en este caso ayudados de la
librería complementaria de Arduino, de que una vez armando
V. ANÁLISIS.
el circuito se tiene:
Se puede realizar una comparativa primero analizando el
código que se requiere en cada caso, para el software de
simulación de CCS Compiler se puede observar que se
necesita detalladamente realizar cada declaración de variable,
llevando a que sea un poco mas complejo al momento de
programar, las instrucciones son mas complejas en su
estructura y entendimiento llegando a ser poco intuitivas y
complejas de recordar. A demás de obtener más líneas de
código para un mismo funcionamiento.
El cuanto se refiere a la programación en Arduino IDE,
destacamos que las instrucciones se vuelven mas intuitivas y
no tan complejas en su estructura, produciendo menos líneas
de código en comparación con CCS Compiler. Siendo menos
complicado de aprender a un usuario principiante. Agregando
el plus de poseer un sin numero de librerías que ayudan REFERENCIAS BIOGRÁFICAS.
enormemente al desarrollo de aplicaciones y comando que ya [1] M. Technology, "CCS, Inc.", Microchip.com, 2020. [Online].
incluyen una rutina predefinida. Available:
En comparación a la tecnología, del hardware en el caso del https://www.microchip.com/devtoolthirdparty/CompanyListing.aspx?
compid=7ab4cf53-fce0-4e5c-aa87-250891e5a198. [Accessed: 22- Mar-
PIC16F877A, se puede mencionar que posee buenas 2020].
características tanto en almacenamiento y memoria para [2] C. Service, "CCS, Inc. - CCS C Compilers", Ccsinfo.com, 2020.
instrucciones y programa, además de brindar comodidad para [Online]. Available: http://www.ccsinfo.com/content.php?
el usuario por el tamaño compacto que este posee. page=compilers. [Accessed: 23- Mar- 2020].
[3] "Arduino Uno", Es.wikipedia.org, 2020. [Online]. Available:
Para el caso del Arduino Uno, este posee mejores https://es.wikipedia.org/wiki/Arduino_Uno. [Accessed: 21- Mar- 2020].
características en comparación el PIC, debido a que mejora [4] [4]"Placa Arduino UNO | MiArduino", Iescamp.es, 2020. [Online].
mucho en cuanto a memoria y almacenamiento para Available: http://www.iescamp.es/miarduino/2016/01/21/placa-arduino-
programas o instrucciones un poco mas complejas. De la uno/. [Accessed: 21- Mar- 2020].
[5] Ventajas de Arduino, descúbrelas | The Green Monkey Barrio
misma manera posee los pines programables y extensibles de Salamanca", The Green Monkey Barrio de Salamanca, 2020. [Online].
acuerdo a la necesidad de cada proyecto y un sin numero de Available:
placas auxiliares que brindan mejor información para el https://www.thegreenmonkey.es/barriodesalamanca/ventajas-de-
usuario. El punto menos favorable que presenta el Arduino arduino/. [Accessed: 22- Mar- 2020].
[1] "Display 7 Segmentos ánodo y cátodo común -
Uno es su tamaño en comparación al PIC, debido a que se HETPRO/TUTORIALES", HETPRO/TUTORIALES, 2018. [Online].
requiere más espacio físico disponible. Pero es compensado Available: https://hetpro-store.com/TUTORIALES/display-7-
por las múltiples opciones de manejo que se le puede brindar. segmentos-anodo-catodo-comun/. [Accessed: 05- Apr- 2020].

VI. CONCLUSIONES.
BIOGRAFÍA.
- Se usó de manera correcta la implementación del
display 7 segmentos de dos dígitos para el contador. Víctor I. Zhigue T. (6 de abril 1993), Nació en Loja,
Ecuador, cursó sus estudios primarios en la ‘Unidad
- Se debe de tener especial cuidado al momento de Educativa San Francisco de Asís’, sus estudios
implementar el contador para Arduino, debido a que secundarios los realizó en el ‘Instituto Superior
requiere una etapa de multiplexación extra, la cual debe Tecnológico Daniel Álvarez Burneo’ graduándose de
estar bien diseñada, bachiller en Físico-matemático. Actualmente cursa el
octavo ciclo de la carrera de Ingeniería Eléctrica en la
- Se verificó que la programación en CCS Compiler es Universidad de Cuenca, Ecuador.
decir en C, es igual de efectiva que otras, con la
particularidad de ser un poco mas compleja en cuanto a
sintaxis y comandos.
- Se demuestra que la herramienta de Arduino uno, posee
mejores prestaciones en comparación a PIC, debido a
sus limites de memoria y programación.
- Se demostró que se debe tener clara la idea de la
configuración del display si este es de ánodo común, o
cátodo común, caso contrario presenta problemas.
- Las herramientas de simulación como ISIS Proteus
ayudan en gran parte para poder comprobar los
resultados esperados mediante el uso de las
herramientas tecnológicas, ayudados de la mano con las
librerías disponibles.

VII. RECOMENDACIONES.
- Verificar siempre antes de compilar la sintaxis de la
programación para evitar errores inesperados.
- Obtener las librerías correspondientes para el software
de fuente confiables, para evitar problemas de
compatibilidad.
- Realizar un estudio rápido y consistente de los
lenguajes de programación a usar, para evitar
confusiones entre ellos.
- Revisar la configuración del display de 7 segmentos a
conectar, para evitar errores de ánodo común, o cátodo
común.

También podría gustarte