Realizar preguntas y respuestas en un PIC18F4550

#1
Buenas noches. Saludos desde Colombia.
Antes de mencionar mi problema, aclaro los componentes que estoy utilizando:
* Memoria EEPROM AT28C64B
* PIC18F4550
* Cristal de 4 MHz. (Oscilador externo)
* LEDs. (Visualización)

El inconveniente es con la programación del micro, ya que debo guardar una pregunta en la memoria EEPROM externa y luego visualizarla mediante 8 LEDs, luego dependiendo del tamaño de la pregunta, señalo la siguiente dirección para guardar la respuesta, pero al momento de ver lo guardado sólo me arroja la pregunta, y lo que se supone que es la respuesta, me arroja incoherencias.

Utilizo ASCII en binario para decodificar la visualización.
Estoy utilizando PIC C de CCS y PICkit 2 para programar dicho PIC.

Este es el código que utilizo:
PHP:
#INCLUDE <18F4550.h>           

#FUSES XT,NOMCLR,CPUDIV1,NOWDT,NOPROTECT,NOLVP

#USE DELAY (CLOCK=4M)            //SE CONFIGURA LA FUNCION DELAY PARA UNA VELOCIDAD DE 4Mhz

CHAR CONT;
CONST CHAR MENSAJE[]={"HOLA BIEN HOLA"};
CONST CHAR RTA[]={" si"};

VOID MAIN (VOID)
{
int8 i,j;

OUTPUT_HIGH (PIN_C6);
for (i=0;i<=13;i++){
OUTPUT_D (i);
OUTPUT_B (MENSAJE[i]);
OUTPUT_A (i);
OUTPUT_LOW (PIN_C7);
delay_ms(10);
OUTPUT_HIGH(PIN_C7);
delay_ms(10);

}
OUTPUT_HIGH (PIN_C6);
for (i=14;i<=16;i++){
OUTPUT_D (i);
OUTPUT_B (RTA[i]);
OUTPUT_A (i);
OUTPUT_LOW (PIN_C7);
delay_ms(10);
OUTPUT_HIGH(PIN_C7);
delay_ms(10);



for (i=0;i<=16;i++){
OUTPUT_HIGH (PIN_C7);
OUTPUT_D (i);
OUTPUT_LOW (PIN_C6);
DELAY_MS(10);
CONT=INPUT_B();
OUTPUT_A(CONT);
if (input_state(pin_b6)==1) OUTPUT_HIGH (PIN_C0);
else OUTPUT_low (PIN_C0);
if (input_state(pin_b7)==1) OUTPUT_HIGH (PIN_C1);
else OUTPUT_low (PIN_C1);
OUTPUT_HIGH (PIN_C6);
delay_ms(1000);
}
}
}
Espero que alguno me pueda ayudar y de ante mano, gracias.
 
Última edición por un moderador:
#2
La palabra que estás utilizando para que el CPU trabaje a 4MHz, no es correcta.
Prueba utilizando esta otra que si es la adecuada para Fosc = 4MHz, usando cristal.
Código:
[B][COLOR=Red]#fuses[/COLOR]   NOMCLR, NOFCMEN, NOVREGEN
[COLOR=Red]#use[/COLOR]     delay (crystal = [COLOR=Green]4[/COLOR]MHz)[/B]
 
Arriba