Fíjate por aquí: http://www.todopic.com.ar/foros/index.php?topic=25723.0
Otra, resumiendo un poco: http://www.micros-designs.com.ar/cartel-de-leds-en-asm/
De ahí hay que entender el tema de como se utiliza un buffer para guardar las letras a dibujar y como recorrer ese buffer para representarlo en el cartel. Utiliza el buscador, hay varios proyectos de cartel de leds, hasta una librería genérica que te pueden servir para sacar ideas.
Saludos!
gracias maestro
no soy muy bueno programando
para madar el dato utilizo un pin del micro pero quiero dividir las letras en cada registro aca le envio lo que llevo
const char Transistores[5]={0b11110,0b11101,0b11011,0b10111,0b01111};//barrido por las 5 filasfilas
const char Letras[35 ] ={ 0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b10000001,//letras a mostrasr ten solo la T
0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11101111,
0b11111001,0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11101111,
0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,0b11101111,
0b11111111,0b11111001,0b11111111,0b11111111,0b11111111,0b11111111,0b11101111,};
//1REG 2REGI 3REGI 4REGI 5REG 6 REGI 7 REGI
char PunteroLetras=0; //apuntador de las letras
char PunteroTransistores=0;//apuntador alas filas
void Tarea2(char dato) //tarea de cargar el dato
{
int i,j=1;
for (i=1;i<8;i++)
{
PTDD_PTDD1 =(j&dato)?1:0; //puerto del micro y registrols164
j<<=1;
PTDD_PTDD0 = 1; //espera del reloj del ls164
asm nop
asm nop
asm nop
PTDD_PTDD0 = 0;
}
}
void Tarea1(void)//barrido
{
PTBD = Transistores[PunteroTransistores];
Tarea2(Letras[PunteroLetras]);
PunteroLetras++;
if (Letras[PunteroLetras]==0) PunteroLetras=0;
PunteroTransistores++;
if (PunteroTransistores==5)PunteroTransistores=0;
}
interrupt 29 void RTCISR(void)//interrupciones
{
RTCSC_RTIF = 1;
Tarea1();
//TareaDisplays();
}
extern void _Startup(void);
/* User code */
void main(void)
{
SOPT1 = 0X20;
PTBDD=0B00011111; //configuracion puertos
PTDDD=0B00000111;
PTBD =0B00001111;
PTDD= 0B00000100;
PTDD_PTDD2 = 0; //reset del ls164
asm nop
asm nop
asm nop
PTDD_PTDD2 = 1;
RTCMOD = 32 ;// interruppcciones
RTCSC_RTCLKS = 2 ;
RTCSC_RTCPS = 8;
RTCSC_RTIF = 1;
RTCSC_RTIE = 1;
EnableInterrupts;
for(;Wink
{
asm WAIT;
}
}