[/move]bueno otra vez, me dispongo a contarles un problema jejeje...
mi duda es la siguiente...
estuve viendo ya hace muchooo como hacer una matriz de led de 8x8 el ejemplo lo saque no me acuerdo de quien era,lo modifique, la armee, despues de estudiarlo un poco pude hacer que se muestren algunos caracteres se ven bien no parpadea ni nada... pero ahora no se como hacer para que dichos caracteres se desplazen como una marquesina... ya he visto varios ejemplos antes pero no entiendo como hacen el desplazamiento...
si alguien me puede ayudar le agradezcooo, acepto sugerencias tambien....
lo hago con un pic16f84a un 74hc164 y unl2803...
aqui adjunto el codigo y la simulacion...
//***********************C A B E Z E R A************************
#include<16F84A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#define datos PIN_A0
#define reloj PIN_A1
#byte portb = 6
#byte porta = 5
//**************************************************************
//***********************D E C L A R O V A R I A B L E S*******
int letra,cuenta;
int K[8]={0x00,0x00,0x00,0x81,0x42,0x24,0x18,0xff};//"K"
int O[8]={0x3c,0x42,0x81,0x81,0x81,0x81,0x42,0x3c};//"O"
int R[8]={0x71,0x8a,0x8c,0x88,0x88,0x88,0x88,0xff};//"R"
int P[8]={0x70,0x88,0x88,0x88,0x88,0x88,0x88,0xff};//"P"
int A[8]={0x3f,0x48,0x88,0x88,0x88,0x88,0x48,0x3f};//"A"
int Z[8]={0x81,0xc1,0xb9,0x99,0x99,0x9d,0x83,0x81};//"Z"
//**************************************************************
//***********************S U B R U T I N A S********************
//**********CONFIGURO SALIDAS-ENTRADAS**************************
void configurar_puertos(void){
set_tris_b(0x00);
set_tris_a(0x10);
}
//**************************************************************
//**********P O N G O 0 A L 74HC164**************************
void pongo_0(void){
output_low(datos);
delay_us(2);
output_low(reloj);
delay_us(2);
output_high(reloj);
}
//**************************************************************
//*********P O N G O 1 A L 74HC164***************************
void pongo_1(void){
output_high(datos);
delay_us(2);
output_low(reloj);
delay_us(2);
output_high(reloj);
}
//**************************************************************
//*********C U E R P O P R I N C I P A L**********************
void main(void){
configurar_puertos();
output_bit(reloj,0);
output_bit(datos,0);
while(TRUE){
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(K[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(O[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(R[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(P[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(A[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(Z[letra]);
delay_ms(2);
pongo_0();
}
pongo_1();
}
for(cuenta=0;cuenta<=100;cuenta++)
{
for(letra=0;letra<=7;letra++)
{
portb=(0);
delay_ms(2);
pongo_0();
}
pongo_1();
}
}
}