Desplazamiento de texto en matriz de led con mikroc

hola busco ayuda para desplazar texto en matriz de led.
tengo un codigo pero yo lo hice desplazar a la derecha.

El texto aparece en la pantalla en el inicio y se desplaza a la derecha se va escondiendo y yo quiero que cumpla con una condicion parecida a este video:



este es mi codigo:



#define delay 1000;
int x;
int letra_a[]= {31,40,72,40,31},
letra_b[]= {127,73,73,73,54},
letra_c[]= {62,65,65,65,34},
letra_d[]= {127,65,65,34,28},
letra_e[]= {127,73,73,73,65},
letra_f[]= {127,72,72,72,64},
letra_g[]= {62,65,73,73,46},
letra_h[]= {127,8,8,8,127},
letra_i[]= {0,65,127,65,0},
letra_j[]= {2,1,65,126,64},
letra_k[]= {127,8,20,34,65},
letra_l[]= {127,1,1,1,1},
letra_m[]= {127,32,16,32,127},
letra_n[]= {127,16,8,4,127},
letra_nn[]= {124,9,17,33,124},
letra_o[]= {62,65,65,65,62},
letra_p[]= {127,72,72,72,72},
letra_q[]= {62,65,65,66,61,},
letra_r[]= {127,72,76,74,49},
letra_s[]= {50,73,73,73,38},
letra_t[]= {64,64,127,64,64},
letra_u[]= {126,1,1,1,126},
letra_v[]= {127,2,1,2,124},
letra_w[]= {127,2,4,2,127},
letra_x[]= {99,20,8,20,99},
letra_y[]= {96,16,15,16,96},
letra_z[]= {67,69,73,81,97};

int i=-55 ;
int d=55 ;


void reloj (int veses) {
x=0;

while (x<veses) {

x++;
// portb=255;
porta.f0=0;
porta.f0=1;
}

}

void crear_linea(){
porta.f0=0;
porta.f1=1;
porta.f0=1;
porta.f1=0;

}

void escrivir (int letra []) {
if (letra [0]>0) { portb=~letra[0];
delay_ms(1);
reloj(1);
}

if (letra [1]>0) { portb=~letra[1];
delay_ms(1);
reloj(1);
}

if (letra [2]>0) { portb=~letra[2];
delay_ms(1);
reloj(1);
}

if (letra [3]>0) { portb=~letra[3];
delay_ms(1);
reloj(1);
}

if (letra [4]>0) { portb=~letra[4];
delay_ms(1);
reloj(1);
}

}

void escrivir_linia(int valor){
portb=~valor;
delay_ms(1);
reloj(1);
}

void reset(){


porta.f2=0;
//porta.f2=1;
}

void poner_columna(int columna){
reloj(columna);
}

void desplaza_derecha(){
// delay_ms(1);
reloj(1000);
i=i++;
d=d--;
if (i>54){
i=0;
}

if (d<2){
d=54;
}



}


void main () {
trisa=0;
trisb=0;
portb=0;
trisa.f1=0;
trisa.f0=0;
trisa.f2=0;
porta.f2=1;




while (1) {





desplaza_derecha ();
crear_linea();
poner_columna(i); //usar la (d) o la (i) , decrementa o incrementa
poner_columna(1);
escrivir(letra_e);
escrivir(letra_r);

}



}
 

Adjuntos

  • matriz deleds 2.rar
    41.5 KB · Visitas: 96
Atrás
Arriba