//#include <16f877A.h> //pic a utilizar
#use delay (clock=4000000) //Fosc=4Mhz
#byte puerto_A = 05
#byte puerto_B = 06
#byte puerto_C = 07
#byte puerto_D = 8
#define use_portb_lcd TRUE //definir portb lcd
#include<lcd.c> //libreria manejo lcd
#include<Lib_Int_EEProm.c>
//inicio del programa
void main(void)
{
long int cont;
long int cont2=0;
long int LAST_VOLUME=0,volume; //variables de direccion escritura eeprom y mensaje
long int valor_leido;
int direccion = 0;
set_tris_A (0b11111111);
set_tris_D (0b11111111);
puerto_D = 0;
puerto_A = 0;
lcd_init(); //inicializa lcd
WHILE (TRUE)
{
lcd_gotoxy(4,1);
lcd_gotoxy(4,2);
printf(lcd_putc
,"NRO:%Lu",cont
); //muestra por pantalla el mensaje
if(input(pin_D0))
{
cont=cont+1;
cont2=cont2+1;
delay_ms(250);
}
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
////////////////////////////////////////////////////////////////////////////
//grabar y mostrar el dato en la eeprom
if(input(pin_A0))
{
cont=0;
lcd_putc("\f" ); //borra pantalla lcd
write_eeprom(direccion,cont2>>8); //Escribes primer byte (parte m&#225;s significativa del int16)
write_eeprom(direccion+1,cont2); //Escribes segundo byte (parte menos significativa del int16)
valor_leido = read_eeprom(direccion);
valor_leido = valor_leido<<8;
valor_leido = read_eeprom(direccion+1);
printf(lcd_putc
, "Dato: %Lu",[b
]valor_leido
[/b
]); delay_ms(2000);
lcd_putc("\f" ); //borra pantalla lcd
}
//////////////////////////////////////////////////////////////////////////////////////
}
}