char clave[40],string[40],c;
signed char i;
int longitud,a;
///PROGRAMA
void main(void)
{
lcd_init(); //inicializa, o activa lcd
for(i=0;i<40;i++){
do{ //espera hasta...
c=kbd_getc();
}while(c==0); //...pulsar una tecla
if(c=='D'){
strcpy( string, clave );//Copia el contenido de cadena2 en cadena1
strcpy( clave," "); // borra string llamado clave
break;
}
clave[i]=c; /
if(i<20){
lcd_gotoxy(1,1);
printf(lcd_putc,"%s",clave);
}else{
lcd_gotoxy(-19,2);
printf(lcd_putc,"%s",clave);
}
}
lcd_gotoxy(1,1);
printf(lcd_putc,"separando la cadena ");
delay_ms(800);
printf(lcd_putc,"\f");
longitud=strlen(string); //devuelve el número de caracteres que tiene la cadena (sin contar el '\0').
if(longitud>18){
lcd_gotoxy(1,1);
printf(lcd_putc,"%s",string);
lcd_gotoxy(-19,2);
printf(lcd_putc,"%s",string);
}else{
lcd_gotoxy(1,1);
printf(lcd_putc,"%s",string);
}
}Hola.
Es recomendable dejar un delay entre escritura y escritura de unos 5mS -el dato exacto esta en la hoja técnica de la memoria-.