Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EQUIPO:
12290391 Negrete Michel Arnan Misael
PRACTICA 3.3
3fb.
3fb.
3fb.
CIRCUITO CON
MATRICES DE
LEDS
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).
PROTOBOARD
MICROCONTROLADOR PIC16F877A
5 RESISTENCIAS
BOTON PULSADOR
CABLE UTP
CRISTAL 4MHZ
FUENTE DE 5 VOLTS
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.
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
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;
}
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
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;
}
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
//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);
}
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
//
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/