You are on page 1of 14

2014

EQUIPO:
12290391 Negrete Michel Arnan Misael

PRACTICA 3.3
3fb.

12290383 Martnez Castellanos Alejandro 3fb.


12290405 Santiago Montao Edson

3fb.

11290355 Del Toro Ceballos Ivn

3fb.

CIRCUITO CON
MATRICES DE
LEDS

CD. Guzmn, Jalisco


06/01/2014

PRACTICA 3.3.
CIRCUITOS CON MATRICES DE
LEDS

OBJETIVO:
Generar mediante programacin series de cdigos que nos permita mostrar de
manera consciente caracteres diseados y codificados segn el diseo propio del
circuito.
Procedimiento propuesto:
1.- El ltimo dgito de N/C o la letra del apellido
2.- Poner los 3 ltimos dgitos del N/C.
3.- Pasa mensajes en 3 matrices
4.-Creacin de una Marquesina

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 grficos y textos, tanto estticos como en movimiento.
Conexin
El siguiente grfico presenta una matriz de 57 LEDs, donde las columnas corresponden a los ctodos
(deben ir conectados a tierra) y las filas corresponden a los nodos (deben ir conectados a voltaje).

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)

DESARROLLO DE LA PRCTICA:
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 (1518 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 Botn 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 queramos mostrar en la matriz y el
cdigo hexadecimal necesario para la obtencin de la figura o digito correspondiente.
PROGRAMACION Y SIMULACION:
Se realizaron distintos programas haciendo uso de la informacin mencionada con anterioridad para
determinar el funcionamiento necesario indicado en cada uno de los programas, se configuro la
matriz y se escribieron los cdigo 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
simulacin del circuito que se har en fsico, para as poder detectar posibles errores en conexiones o
en el programa y no daar el equipo.
PROGRAMACION DEL PIC:
Ya que se comprob que el programa realiza lo requerido se llevo a cabo la programacin 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 carcter.
3.3.2. Circuito con 3 matrices.
3.3.3. Pasa mensajes corto.
3.3.4. Letrero Marquesina.

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;
}

3.3.2. CIRCUITO CON 3 MATRICES.

Programa que muestra en 3 matrices los 3 ltimos dgitos del nmero 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;
}

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);

}
}
}
goto inicio;
return(0);
}

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 oracin.

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);
}

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

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

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);
}

OBSERVACIONES:
Al momento de cargar el programa en la matriz se vean mal las figuras y encendan unos puntos y
otros no, esto se debi a que la matriz se encontraba mal conectada debido a la confusin 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 cdigo estaba mal
escrito, se checo el cdigo y se corrigi.
Solo se presentaron problemas en las conexiones debido a que al momento de conectar la matriz no
saba identificar columnas y filas pero al revisar el diagrama se realizo todo correctamente.
12290391 Negrete Michel Arnan Misael 3fb

CONCLUSIONES:
En conclusin 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 simulacin 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=n8LMUqWlF6Pa2AXEYHYBg&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-AnodeRed.jpg%3Bhttp%253A%252F%252Fes.aliexpress.com%252Fw%252Fwholesale-led-matrix5x7.html%3B640%3B480
http://galaxi0.wordpress.com/about/salidas-y-entradas-digitales/matriz-de-leds/