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:
Espero que alguno me pueda ayudar y de ante mano, gracias.
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);
}
}
}
Última edición por un moderador: