PIC16F877A. Circuitos con Matrices Led

14
2014 CD. Guzmán, Jalisco 06/01/2014 EQUIPO: 12290391 Negrete Michel Arnan Misael 3fb. 12290383 Martínez Castellanos Alejandro 3fb. 12290405 Santiago Montaño Edson 3fb. 11290355 Del Toro Ceballos Iván 3fb. PRACTICA 3.3 CIRCUITO CON MATRICES DE LEDS

description

-Distintos circuitos para mostrar mensajes en matrices de led con ayuda de un Microcontrolador PIC16F877A.-Circuito armado en Proteus.-Código de programación del PIC en CCS.-Marco teorico.

Transcript of PIC16F877A. Circuitos con Matrices Led

Page 1: PIC16F877A. Circuitos con Matrices Led

2014

CD. Guzmán, Jalisco

06/01/2014

EQUIPO:

12290391 Negrete Michel Arnan Misael 3fb.

12290383 Martínez Castellanos Alejandro 3fb.

12290405 Santiago Montaño Edson 3fb.

11290355 Del Toro Ceballos Iván 3fb.

PRACTICA 3.3

CIRCUITO CON

MATRICES DE

LEDS

Page 2: PIC16F877A. Circuitos con Matrices Led

PRACTICA 3.3.

CIRCUITOS CON MATRICES DE

LEDS

OBJETIVO:

Generar mediante programación series de códigos que nos permita mostrar de manera consciente caracteres diseñados y codificados según el diseño propio del circuito.

Procedimiento propuesto:

1.- El último dígito de N/C o la letra del apellido

2.- Poner los 3 últimos dígitos del N/C.

3.- Pasa mensajes en 3 matrices

4.-Creación de una Marquesina

Page 3: PIC16F877A. Circuitos con Matrices Led

MARCO TEORICO

MATRICES DE LED 5X7

Una matriz de LEDs consiste en un arreglo de LEDs que pueden ser encendidos y apagados

individualmente desde un microntrolador. Pueden pensar en ella como una pantalla de pocos pixeles

en los cuales pueden presentar gráficos y textos, tanto estáticos como en movimiento.

Conexión

El siguiente gráfico presenta una matriz de 5×7 LEDs, donde las columnas corresponden a los cátodos

(deben ir conectados a tierra) y las filas corresponden a los ánodos (deben ir conectados a voltaje).

Page 4: PIC16F877A. Circuitos con Matrices Led

MATERIAL Y EQUIPO UTILIZADO:

PROTOBOARD

MICROCONTROLADOR PIC16F877A

PROGRAMADOR USB DE PIC “MASTER PROG”

PROGRAMA PARA PROGRAMAR PIC “MASTER PROG”

3 MATRICES DE LED (5X7)

5 RESISTENCIAS

BOTON PULSADOR

CABLE UTP

PINZAS PELADORAS Y CORTADORAS DE CABLE

CRISTAL 4MHZ

FUENTE DE 5 VOLTS

SIMULADOR PROTEUS 8 PROFESSIONAL

PIC C COMPILER (PCW)

Page 5: PIC16F877A. Circuitos con Matrices Led

DESARROLLO DE LA PRÁCTICA:

CONEXION DEL PIC:

Se coloco el PIC16F877A en el Protoboard y se colocaron las tres matrices juntas una al lado

de la otra, se conectaron las filas correspondientes a los pines de los puertos B (33-40), C (15-

18 y 23-26), y D (19-22 y 27-30) una matriz por puerto, y se conectaron resistencias en los

pines del puerto A (2-7), seguidas de las resistencias se conectaron los pines correspondientes

a las columnas de la Matriz (las columnas de las tres matrices se conectaron al puerto A, cada

pin con su correspondiente fila. (compartieron cada matriz el puerto A para las filas 1,2,3,4,5).

Se conecto el Botón pulsador con una resistencia a 5V en el Pin 1 para el RESET del

Microcontrolador.

Se conecto el Cristal de 4MHZ en los Pines 13 y 14 para oscilar y generar una frecuencia de

4MHZ.

Se conecto el Pin 11 a 5V y el Pin 12 a negativo (-).

REALIZACION DE LAS FIGURAS Y CODIGOS PARA LAS MATRICES:

Se realizo una tabla en la cual se hacia la figura indicada que queríamos mostrar en la matriz y el

código hexadecimal necesario para la obtención de la figura o digito correspondiente.

PROGRAMACION Y SIMULACION:

Se realizaron distintos programas haciendo uso de la información mencionada con anterioridad para

determinar el funcionamiento necesario indicado en cada uno de los programas, se configuro la

matriz y se escribieron los código para obtener la figura indicada, haciendo uso del programa PCW.

Se compilo y se cargo en el PIC16F877A en el circuito armado en ISIS de Proteus para hacer una

simulación del circuito que se hará en físico, para así poder detectar posibles errores en conexiones o

en el programa y no dañar el equipo.

PROGRAMACION DEL PIC:

Ya que se comprobó que el programa realiza lo requerido se llevo a cabo la programación del PIC con

el Programador que se conecto a la computadora por medio del USB y se abrió el programa “MASTER

PROG”. Ya reconocido e instalado el programador, se coloco el PIC y se aseguro. En el “MASTER

PROG” se leyó el PIC, se borro posible contenido y se cargo el archivo .HEX del programa para

posteriormente escribirlo en el PIC.

FUNCIONAMIENTO DEL PROGRAMA:

Ya cargado el archivo en el PIC se retiro del programador y se coloco nuevamente en el Protoboard

para presentar el programa cargado. Se energizo el circuito y comenzó a realizar las funciones e

indicaciones realizadas en el programa.

PROGRAMAS REALIZADOS:

3.3.1. Dibujar un carácter.

3.3.2. Circuito con 3 matrices.

3.3.3. Pasa mensajes corto.

3.3.4. Letrero Marquesina.

Page 6: PIC16F877A. Circuitos con Matrices Led

3.3.1 DIBUJAR UN CARACTER.

Programa que muestra en ua matriz de leds el ultimo digito del numero de control.

#include "16f877.h"

#USE DELAY (CLOCK = 4000000)

#FUSES XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT

const char col[]= {1,2,4,8,16};

const char Z[]={0XFF,0X5D,0X41,0X5F,0XFF};

char cnt;

main()

{

for(;;)

for(cnt=0;cnt<=4;cnt++)

{

output_a(col[cnt]);

output_b(Z[cnt]);

delay_ms(1);

output_a(0X00);

output_b(0XFF);

output_c(0XFF);

output_d(0XFF);

}

return 0;

}

Page 7: PIC16F877A. Circuitos con Matrices Led

3.3.2. CIRCUITO CON 3 MATRICES.

Programa que muestra en 3 matrices los 3 últimos dígitos del número de control.

#include "16f877.h"

#USE DELAY (CLOCK = 4000000)

#FUSES XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT

const char col[]= {1,2,4,8,16};

const char X[]={0XFF,0X5D,0X55,0X49,0XFF}; //3

const char Y[]={0XFF,0X51,0X55,0X41,0XFF}; //9

const char Z[]={0XFF,0X5D,0X41,0X5F,0XFF}; //1

char cnt;

main()

{

for(;;)

for(cnt=0;cnt<=4;cnt++)

{

output_a(col[cnt]);

output_b(X[cnt]);

output_c(Y[cnt]);

output_d(Z[cnt]);

delay_ms(1);

output_a(0X00);

output_b(0XFF);

output_c(0XFF);

output_d(0XFF);

}

return 0;

}

Page 8: PIC16F877A. Circuitos con Matrices Led

3.3.3. PASAMENSAJES CORTO.

Programa que muestra en las tres matrices un corrimiento o un pasamensaje con el apellido paterno.

#include “16f877a.h”

#USE DELAY(CLOCK=4000000)

#FUSES XT,NOWDT,NOLVP,NOBROWNOUT,PUT,NOPROTECT

const int col[]={1,2,4,8,32};

const char caract[]={

0XFF,0XC1,0XC1,0XFB,0XF7,0XEF,0XC1, //N

0XFF,0XC1,0XC1,0XD5,0XD5, //E

0XFF,0XE3,0XE3,0XDD,0XD5,0XE7, //G

0XFF,0XC3,0XC3,0XF5,0XE5,0XDB, //R

0XFF,0XC1,0XC1,0XD5,0XD5, //E

0XFF,0XFD,0XFD,0XC1,0XC1,0XFD,0XFD, //T

0XFF,0XC1,0XC1,0XD5,0XD5,0XFF //E};

int16 a,b,c,size;

main()

{

inicio:

size=(6*7);

for(c=0;c<size+15;c++){

for(a=0;a<3;a++){

for(b=0;b<5;b++){

if((b+c-15)<size){output_b(caract[b+c-15]);}else{output_b(0XFF);}

if((b-10+c)<size){output_c(caract[b+c-10]);}else{output_c(0XFF);}

if((b-5+c)<size){output_d(caract[b+c-5]);}else{output_d(0XFF);}

output_a(col[b]);

delay_ms(5);

output_a(0);

output_b(0XFF);

output_c(0XFF);

output_d(0XFF);

delay_ms(1);

Page 9: PIC16F877A. Circuitos con Matrices Led

}

}

}

goto inicio;

return(0);

}

Page 10: PIC16F877A. Circuitos con Matrices Led

3.3.4. LETRERO MARQUESINA.

Programa que utiliza 6 matrices y 2 PIC para realizar un letrero marquesina en el que pasa un mensaje o

una oración.

PIC ESCLAVO:

#include “16f877a.h”

#USE DELAY(CLOCK=4000000)

#FUSES XT,NOWDT,NOLVP,NOBROWNOUT,NOPROTECT,PUT

int dato;

main(){

set_tris_a(0b111111);

set_tris_c(0b11111100);

while(true){

dato=input_a()&0b1111;

switch(dato){

case 0: output_c(0); output_b(0); break;

case 1: output_c(0); output_b(1); break;

case 2: output_c(0); output_b(2); break;

case 3: output_c(0); output_b(4); break;

case 4: output_c(0); output_b(8); break;

case 5: output_c(0); output_b(16); break;

case 6: output_c(0); output_b(32); break;

case 7: output_c(0); output_b(64); break;

case 8: output_c(0); output_b(128); break;

case 9: output_c(1); output_b(0); break;

case 10: output_c(2); output_b(0); break;

}

}

return(0);

}

Page 11: PIC16F877A. Circuitos con Matrices Led

PIC MAESTRO:

#include “16f877a.h”

#USE DELAY(CLOCK=4000000)

#FUSES XT,NOWDT,NOLVP,NOBROWNOUT,NOPROTECT,PUT

//"PROBABLEMENTE DIOS NO EXISTE, DEJA DE PREOCUPARTE Y DISFRUTA LA VIDA"

const char line[]={

0xFC,0xFB,0xFF,0xFC,0xFB,0xFF,

0X80,0XF6,0XF6,0XF6,0XF9,0XFF, //P

0X80,0XF6,0XF6,0XF6,0X89,0XFF, //R

0XC1,0XBE,0XBE,0XBE,0XC1,0XFF, //O

0X80,0XB6,0XB6,0XB6,0XC9,0XFF, //B

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0X80,0XB6,0XB6,0XB6,0XC9,0XFF, //B

0X80,0XBF,0XBF,0XBF,0XBF,0XFF, //L

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0X80,0XF9,0XF3,0XF9,0X80,0XFF, //M

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0X80,0XF9,0XE7,0X9F,0X80,0XFF, //N

0XFE,0XFE,0X80,0XFE,0XFE,0XFF, //T

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0xff,0xff,0xff, //

0X80,0XBE,0XBE,0XDD,0XE3,0XFF, //D

0XBE,0XBE,0X80,0XBE,0XBE,0XFF, //I

0XC1,0XBE,0XBE,0XBE,0XC1,0XFF, //O

0XB9,0XB6,0XB6,0XB6,0XCE,0XFF, //S

0xff,0xff,0xff, //

0X80,0XF9,0XE7,0X9F,0X80,0XFF, //N

0XC1,0XBE,0XBE,0XBE,0XC1,0XFF, //O

0xff,0xff,0xff, //

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0X9C,0XEB,0XF7,0XEB,0X9C,0XFF, //X

0XBE,0XBE,0X80,0XBE,0XBE,0XFF, //I

0XB9,0XB6,0XB6,0XB6,0XCE,0XFF, //S

Page 12: PIC16F877A. Circuitos con Matrices Led

0XFE,0XFE,0X80,0XFE,0XFE,0XFF, //T

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0X5F,0X1F,0XFF, //,

0xff,0xff,0xff, //

0X80,0XBE,0XBE,0XDD,0XE3,0XFF, //D

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0XCE,0XBE,0XC0,0XFE,0XFE,0XFF, //J

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0xff,0xff,0xff, //

0X80,0XBE,0XBE,0XDD,0XE3,0XFF, //D

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0xff,0xff,0xff, //

0X80,0XF6,0XF6,0XF6,0XF9,0XFF, //P

0X80,0XF6,0XF6,0XF6,0X89,0XFF, //R

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0XC1,0XBE,0XBE,0XBE,0XC1,0XFF, //O

0XC1,0XBE,0XBE,0XBE,0XDD,0XFF, //C

0XC0,0XBF,0XBF,0XBF,0XC0,0XFF, //U

0X80,0XF6,0XF6,0XF6,0XF9,0XFF, //P

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0X80,0XF6,0XF6,0XF6,0X89,0XFF, //R

0XFE,0XFE,0X80,0XFE,0XFE,0XFF, //T

0X80,0XB6,0XB6,0XBE,0XBE,0XFF, //E

0xff,0xff,0xff, //

0XF8,0XF7,0X87,0XF7,0XF8,0XFF, //Y

0xff,0xff,0xff, //

0X80,0XBE,0XBE,0XDD,0XE3,0XFF, //D

0XBE,0XBE,0X80,0XBE,0XBE,0XFF, //I

0XB9,0XB6,0XB6,0XB6,0XCE,0XFF, //S

0X80,0XF6,0XF6,0XFE,0XFE,0XFF, //F

0X80,0XF6,0XF6,0XF6,0X89,0XFF, //R

0XC0,0XBF,0XBF,0XBF,0XC0,0XFF, //U

0XFE,0XFE,0X80,0XFE,0XFE,0XFF, //T

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0xff,0xff,0xff, //

0X80,0XBF,0XBF,0XBF,0XBF,0XFF, //L

Page 13: PIC16F877A. Circuitos con Matrices Led

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0xff,0xff,0xff, //

0XE0,0XDF,0XBF,0XDF,0XE0,0XFF, //V

0XBE,0XBE,0X80,0XBE,0XBE,0XFF, //I

0X80,0XBE,0XBE,0XDD,0XE3,0XFF, //D

0X81,0XF6,0XF6,0XF6,0X81,0XFF, //A

0XFB,0xFC,0XFF,0XFB,0XFC

};

int32 size;

int32 X,Y,Z;

main(){

size=(58*6)+(3*10)+10;

for(Y=0;Y<size+30;Y++){

for(Z=0;Z<2;Z++){

for(X=0;X<10;X++){

if((X+Y-30)<size){output_b(line[X+Y-30]);}else{output_b(0XFF);}

if((X+Y-20)<size){output_c(line[X+Y-20]);}else{output_c(0XFF);}

if((X+Y-10)<size){output_d(line[X+Y-10]);}else{output_d(0XFF);}

output_a(X+1);

delay_ms(1);

output_a(0X00);

delay_ms(1);

}

}

}

return(0);

}

Page 14: PIC16F877A. Circuitos con Matrices Led

OBSERVACIONES:

Al momento de cargar el programa en la matriz se veían mal las figuras y encendían unos puntos y

otros no, esto se debió a que la matriz se encontraba mal conectada debido a la confusión de los pines

para las filas y columnas. Se retiraron las conexiones y se fue checando una por una de acuerdo con el

diagrama correspondiente y se corrigió. Se volvió a energizar y realizo lo requerido.

Al querer obtener el numero del primer programa salió mal debido a que un código estaba mal

escrito, se checo el código y se corrigió.

Solo se presentaron problemas en las conexiones debido a que al momento de conectar la matriz no

sabía identificar columnas y filas pero al revisar el diagrama se realizo todo correctamente.

12290391 Negrete Michel Arnan Misael 3fb

CONCLUSIONES:

En conclusión aprendimos a utilizar matrices de leds y a realizar correctamente sus conexiones

identificando filas y columnas por medio del diagrama.

El programa de la Marquesina solo fue realizado por medio de simulación debido a que no contamos

con otro PIC y otras 6 matrices ya que todos los equipos estaban unidos y nosotros no alcanzamos

equipo para unirnos y realizarlo en fisico.

REFERENCIAS:

https://www.google.com.mx/search?q=matriz+de+leds+5x7&newwindow=1&source=lnms&tbm=isch&

sa=X&ei=n8LMUqWlF6Pa2AXE-

YHYBg&ved=0CAkQ_AUoAQ&biw=1280&bih=698#facrc=_&imgdii=_&imgrc=bwe2oBpHQsiAKM%3

A%3BVm5aZDzKkMGhAM%3Bhttp%253A%252F%252Fi01.i.aliimg.com%252Fwsphoto%252Fv0%252F

610590489%252F-font-b-LED-b-font-Display-Dot-font-b-Matrix-b-font-Common-Anode-

Red.jpg%3Bhttp%253A%252F%252Fes.aliexpress.com%252Fw%252Fwholesale-led-matrix-

5x7.html%3B640%3B480

http://galaxi0.wordpress.com/about/salidas-y-entradas-digitales/matriz-de-leds/