Está en la página 1de 10

DEPARTAMENTO DE ENERGÍA Y MECÁNICA

CARRERA DE INGENIERÍA MECATRÓNICA

MICROCONTROLADORES Y MICROPROCESADORES - NRC:


2686

TEMA:

“Display de 7 segmentos”

AUTORES:

 CARLOS NOLIVOS
 KEVIN GÓMEZ

NIVEL: VII Mecatrónica


DIRECTOR: ING. PILATASIG MARCO
LATACUNGA

2019
Objetivos

Objetivo General

 Identificar las características del display de 7 segmentos para su conexión con el PIC
16f877a y mostrar dígitos del 0 al 9.

Objetivo Especifico

 Presentar los dígitos del 0 al 9 en un display de 7 segmentos de forma ascendente


 Realizar la multiplexación de dos display.

****Marco Teórico

PIC 16F877A

Se denomina micro-controlador a un dispositivo programable capaz de realizar diferentes


actividades que requieran del procesamiento de datos digitales y del control y comunicación
digital de diferentes dispositivos.

Los micro-controladores poseen una memoria interna que almacena dos tipos de datos; las
instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos
que el usuario maneja, así como registros especiales para el control de las diferentes funciones
del micro-controlador. [1]

Los micro-controladores se programan en Assembler y cada micro-controlador varía su


conjunto de instrucciones de acuerdo a su fabricante y modelo. De acuerdo al número de
instrucciones que el micro-controlador maneja se le denomina de arquitectura RISC (reducido)
o CISC (complejo).

Los micro-controladores poseen principalmente una ALU (Unidad Lógico Aritmética), memoria
del programa, memoria de registros, y pines I/O (entrada y/0 salida). La ALU es la encargada de
procesar los datos dependiendo de las instrucciones que se ejecuten (ADD, OR, AND), mientras
que los pines son los que se encargan de comunicar al micro-controlador con el medio externo;
la función de los pines puede ser de transmisión de datos, alimentación de corriente para l
funcionamiento de este o pines de control especifico. [1]

En este proyecto se utilizó el PIC 16F877. Este micro-controlador es fabricado por MicroChip
familia a la cual se le denomina PIC. El modelo 16F877 posee varias características que hacen a
este micro-controlador un dispositivo muy versátil, eficiente y práctico para ser empleado en la
aplicación que posteriormente será detallada. [1]

Algunas de estas características se muestran a continuación:

•Soporta modo de comunicación serial, posee dos pines para ello.

•Amplia memoria para datos y programa.

•Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de
memoria se puede borrar electrónicamente (esto corresponde a la "F" en el modelo).

•Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias para facilitar
su manejo.

Micro Controlador
El Micro-controlador dispositivo electrónico que incorpora en su estructura interna los
componentes de una mini-computadora. Existe una gran diferencia entre un microprocesador y
un micro-controlador. El procesador es una parte integrante del micro-controlador. [2]

PIC C compiler

PIC C Compiler es un inteligente y muy optimizado compilador C que contienen operadores


estándar del lenguaje C y funciones incorporados en bibliotecas que son específicas a los
registros de PIC, proporcionando a los desarrolladores una herramienta poderosa para el acceso
al hardware las funciones del dispositivo desde el nivel de lenguaje C. [3]

El compilador CCS contiene más de 307 funciones integradas que simplifiquen el acceso al
hardware, mientras que la producción eficiente y altamente optimizado código. Se incluyen
funciones de hardware del dispositivo de características tales como:

•Temporizadores y módulos PWM

•Convertidores A / D

•de datos on-chip EEPROM

•LCD controladores

•Memoria externa buses

Proteus

Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por


Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos
VSM y Electra. [4]

Pantalla LCD 16X2

El LCD (Liquid Crystal Dysplay) o 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. [5]

En este caso vamos a emplear un 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: +5 voltios

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 registro de control/instrucción. y cuando 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.

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 Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la comunicación
con el LCD podemos hacerlo utilizando los 8 bits del bus de datos (D0 a D7) o empleando los 4
bits más significativos del bus de datos (D4 a D7). En este caso vamos a explicar la comunicación
con el bus de 4 bits.

Ilustración 1 LCD 16x2

Teclado Matricial

Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo


que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado
matricial 4x4 solamente ocupa 4 líneas de un puerto para las filas y otras 4 líneas para las
columnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un
microcontrolador. Si asumimos que todas las columnas y filas inicialmente están en alto (1
lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checar
cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se
recorre hacia la siguiente y así secuencialmente. [6]

Cuando se ha oprimido ninguna tecla, (todas las teclas abiertas) no hay conexión entre renglones
y columnas. Cuando se oprime una tecla se hace una conexión entre la columna y la región de
la tecla. [7]
Ilustración 2 Teclado Matricial

Materiales:

Material Uso Ilustración


PIC 16F877A Microcontrolador en donde
se insertara el programa, y
será el encargado de
ejecutarlo.

Display 7 segmentos display en el cual se


mostraran los dígitos del 0 al
9.

Pic C Software en el cual se creara


el programa mediante el
código C

Proteus Software que servirá para


poder simular el código del
programa realizado.

Tabla 1 Tabla de materiales

Procedimiento

Contador ascendente con display de 7 segmentos.

Se arma el circuito de la siguiente figura empleando el PIC16F877A y un display


Una vez que ya disponemos el hardware, se procede a subir en el PIC el programa que se
realizó previamente en clases y se simulo en el software Proteus.

Debido que el display dispone de 7 segmentos, donde cada segmento corresponde a una
entrada del display, es necesario definir un puerto del PIC como salida y realizar la equivalencia
de decimal a binario para mostrar correctamente los valores de los dígitos numéricos. La
siguiente tabla muestra la equivalencia entre binario y decimal para el display de 7 segmentos.

Una vez que se tienen las equivalencias para la activación del display del numero deseado, se
implementa la programación del PIC, en la cual se define un vector de 10 elementos que
contienen en cada posición el valor correspondiente que se debe activar en el PIC para mostrar
el número que se quiere.

Código:

#include <16F877A.h> //cargar libreria del micro

#fuses XT, NOWDT // configurar fusibles

#use delay (clock=4M)

int i;

const int x[]={64,121,36,48,25,18,2,120,0,16};

void main(){

set_tris_b(0);
output_b(64);

while(1){

for (i=0;i<=9;i++){

output_b(x[i]);

delay_ms(500);

Contador del 0 al 99 ascendente y descendente con multiplexación de display’s.

Para realizar la multiplexación de display’s, nos basamos en el circuito anterior con la


diferencia de que se implementa un display más conectado al mismo puerto que el otro
display. La multiplexación consiste en la visualización individual de cada display a una
frecuencia muy alta imperceptible al ojo humano. Esto se lo realiza conectando los pines de
activación de los display a una salida del PIC poniendo en alto y en bajo cíclicamente de
manera que se realice la multiplexación.

Para el conteo ascendente nos da la señal un botón colocado a una entrada del PIC, mientras
que para el descendente se colocara otro botón.

Código:

#include <16F877A.h>

#fuses XT,NOWDT

#use delay(clock=4M)

int i,j,k,l;

const int x[]={45,64,121,36,48,25,18,2,120,0,16};

Void main (){


set_tris_b(0);

set_tris_d(0);

set_tris_a(1);

output_d(3);

output_b(64);

while(1){

if(input(Pin_a0)==0){

for(i=1;i<=10;i++){

output_d(1);

output_b(x[i]);

delay_ms(50);

for(j=1;j<=10;j++){

output_d(1);

output_b(x[i]);

delay_ms(50);

output_d(2);

output_b(x[j]);

delay_ms(50);

output_d(0);

else if(input(Pin_a1)==0){

for(i=10;i>=1;i--){

output_d(1);

output_b(x[i]);

delay_ms(50);

for(j=10;j>=1;j--){

output_d(1);

output_b(x[i]);
delay_ms(50);

output_d(2);

output_b(x[j]);

delay_ms(50);

output_d(0);

Conclusiones

 Se identificó que los display de 7 segmentos empleados para la práctica eran de ánodo
común, por lo tanto, se alimentaban con tensión positiva. Cada segmento corresponde
a una entrada del display con letras de la ‘a’ hasta ‘g’ y dependiendo de los segmentos
activados nos mostrara un numero realizando la tabla de verdad para identificar su
equivalencia.
 Se cargó en el PIC el programa de conteo de dígitos empleando el modulo entrenador
disponible en el laboratorio y el archivo hexadecimal generado por el compilador PIC C
en clases el cual contenía el algoritmo para convertir el número de binario a decimal y
activar los segmentos necesario para que se muestre dicho valor.
 Se realizó la multiplexación de dos display para realizar un contador del 0 al 99
ascendente y descendente con dos pulsadores de entrada que me daban la señal para
cada uno de los dos tipos de conteo mencionados.

***********Recomendaciones

Conocer los puertos de conexión del PIC escogido, para no obtener valores extraños o no lograr
con éxito la práctica.

Entender el principio del teclado matricial, y como este funciona al apretar las diferentes teclas
para la programación.

Tener conocimientos claros de programación en C, arreglo de vectores y demás para realizar la


práctica.

Bibliografía

[1] D. Herrera, «Monografias.com,» 2014. [En línea]. Available:


http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic.shtml. [Último
acceso: 06 2018].
[2] J. Gonzales, «SlideShare,» 09 2012. [En línea]. Available:
http://es.slideshare.net/ayreonmx/programacion-de-microcontroladores. [Último acceso: 06
2018].

[3] Electrox, «Electrox,» 24 05 2008. [En línea]. Available:


https://sites.google.com/site/ielectrox/home/programas-1/pic-c-compiler. [Último acceso: 14
06 2018].

[4] Wikipedia, «Wikipedia,» [En línea]. Available:


https://es.wikipedia.org/wiki/Proteus_(electr%C3%B3nica). [Último acceso: 14 06 2018].

[5]J. Salas, J. Salas and V. perfil, "Lcd 16x2", Todoelectrodo.blogspot.com, 2018. [Online].
Available: http://todoelectrodo.blogspot.com/2013/02/lcd-16x2.html. [Ultimo acceso: 14- Jun-
2018].

[6]"Teclado Matricial 4x4.", Circuitoselectronicos.org, 2018. [Online]. Available:


http://www.circuitoselectronicos.org/2011/03/teclado-matricial-4x4.html. [Ultimo acceso: 14-
Jun- 2018].

[7]Galia.fc.uaslp.mx, 2018. [Online]. Available:


http://galia.fc.uaslp.mx/~cantocar/microcontroladores/SLIDES_8051_PDF/20_MATRI.PDF.
[Ultimo acceso: 14- Jun- 2018].

Anexos

También podría gustarte