TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jukaceledon en 23 de Julio de 2014, 03:11:59
-
Hola estimados por mis estudios debo hacer una matriz de led 8x40 con registros 74hc164 donde el texto debe desplazarse de izq a derecha, con una memoria donde debo guardar el texto e desplegar y la verdad que no se por donde empezar, agradecer de su buena voluntad para ayudarme y orientarme como lo puedp hacer
adjunto proteus de lo que se debe hacer
Juan Carlos
-
Hola estimados por mis estudios debo hacer una matriz de led 8x40 con registros 74hc164 donde el texto debe desplazarse de izq a derecha, con una memoria donde debo guardar el texto e desplegar y la verdad que no se por donde empezar, agradecer de su buena voluntad para ayudarme y orientarme como lo puedp hacer
adjunto proteus de lo que se debe hacer
Juan Carlos
Adjunto lo que he hecho pero no me fimciona, me pueden ayudar
Como primera etapa se debe hacer solo las letras J. I y M, se deben desplazarse de derecha a izq. en forma indefinida
#include <16f628.h>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#USE DELAY(clock=4MHZ)
#define data PIN_A3
#define clock PIN_A2
#byte port_b=0X06
void escribir(int *letra,int time);//variable
void cargar_dato(int dato);//variable
void muestra_fila(int fila);//variable
void desplazar_(int *letra,int velocidad);//Variable
void desplazar_izq (int *m_actual,int *m_siguiente,int refresh); //variables globales
int *m_actual,*m_anterior,desplazamiento,matriz_mostra r[8];
int *p,*p2,col,fila;
int M[8]={ 0b11000011, //letras a utilizar
0b11100111,
0b11111111,
0b11011011,
0b11000011,
0b11000011,
0b11000011,
0b11000011};
int J[8]={ 0b11111111,
0b11111111,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b11111000,
0b11110000};
int I[8]={ 0b00111100,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b00111100};
void main(){
SET_TRIS_B(0x00);
output_low(data);
output_low(clock);
port_b=0x00;
while (true){
p2=J;
desplazar_izq(p,p2,10);
p=p2;
p2=I;
desplazar_izq(p,p2,10);
p=p2;
p2=M;
desplazar_izq(p,p2,10);
}
}
void escribir(int *letra,int time){
while (time>0){
for (fila=0;fila<8;fila++){
cargar_dato(letra[fila]);
muestra_fila(fila);
}
time--;
}
}
void muestra_fila(int fila){
bit_set(port_b,fila);
delay_us(400);
bit_clear(port_b,fila);
}
void cargar_dato(int dato){
for(col=0;col<8;col++){
output_bit(data,(dato & 0x1));
dato=dato<<1;
output_low(clock);
output_high(clock);
}
}
void desplazar_izq (int *m_actual,int *m_siguiente,int refresh){
escribir(m_actual,20);
for (fila=0;fila<8;fila++){ //escribo en la matriz lo que necesito escribir
matriz_mostrar[fila]=m_actual[fila]; //asi solo modifico la matriz a desplazar.
}
desplazamiento=8;
while (desplazamiento!=0){
for (fila=0;fila<8;fila++){ //modifico la matriz a mostrar
matriz_mostrar[fila]=(matriz_mostrar[fila]<<1)+(bit_test(m_siguiente,desplazamiento)); //
}
escribir(p,refresh);
desplazamiento--;
}
}
Si consideran que esta muy malo, agradecere modificar
JuKa
-
Hola, revisa estos LINK
http://www.todopic.com.ar/foros/index.php?topic=28409.msg274794#msg274794 (http://www.todopic.com.ar/foros/index.php?topic=28409.msg274794#msg274794)
http://www.todopic.com.ar/foros/index.php?topic=28409.msg294785#msg294785 (http://www.todopic.com.ar/foros/index.php?topic=28409.msg294785#msg294785)
Saludos
-
Hola, revisa estos LINK
http://www.todopic.com.ar/foros/index.php?topic=28409.msg274794#msg274794 (http://www.todopic.com.ar/foros/index.php?topic=28409.msg274794#msg274794)
http://www.todopic.com.ar/foros/index.php?topic=28409.msg294785#msg294785 (http://www.todopic.com.ar/foros/index.php?topic=28409.msg294785#msg294785)
Saludos
Ninguno de los dos link me funciona, me podria ayudar?????
Juka
-
Ninguno de los dos link me funciona, me podria ayudar?????
Amigo a mi me funcionan todos los links que te coloco Diego E.
Los probe con el mozilla firefox :mrgreen:
-
... los enlaces si funkan!
consulta, cuantos miliAmper son capaces de manejar los 74hc164?
podran controlar directamente los led en cuestión?
pasa que no sé interpretar la hoja de datos, no sé si lo está diciendo por pin o por el chip entero...
-
Hola.
Recuerdo haber conetado los LED directo al 74HC y no me dio buen resultado, por tal motivo utilice transistores para mejorar sustancialmente el brillo. Este VIDEO (https://www.youtube.com/watch?v=MoDkFD8oXJM) ya es algo viejo :P pero muestra el brillo obtenido.
Tambien puedes usar, en lugar de los transistores, un ULN2803A.
Saludos
-
revisando la hoja de datos
en alto 25ma
m74ls164
m74hc164
en alto 0.4ma
hd74ls164
hd74hc164
sn74ls164
sn74hc164
salida en bajo 25ma
m74ls164
m74hc164
salida en bajo 8ma
sn74ls164
sn74hc164
hd74ls164
hd74hc164
conclusion comprar el m74hc164b1 marca st
-
Hola, como lo dice Miguel, a los 74164 hay que ponerle amplificador de corriente, en mi caso yo puse ULN2803.
Saludos.
-
Uhh.... baje otras hojas de datos, y estas son más claras, y si indican que algunos manejan 20mA, hay que ver que tiene el vendedor.... y si, conozco el ULN2803, me gustaria poder conseguir por estas pampas tambien su complemento, aquel array que tiene por comun el +Vcc y no el GND, para dejar de sufir con los transistores, no recuerdo como se llamaba, pero al preguntar por el no tenian....