[i]#include <18f4550.h>
#fuses NOWDT, NOPROTECT, NOLVP,NOPBADEN
#FUSES PLL1,NOUSBDIV,CPUDIV1,INTRC_IO //PARA USAR RC INTERNO
//#fuses XT
#use delay (clock=8000000)
#use standard_io(c)
#use fast_io(b)
//#include <kbd_18f4550.c> //ESTA LIBRERIA TIENE LA DIFERENCIA
//DE QUE LA FILA 1 SE CONECTA A RB0
#include <kbd.c>//CON LA LINEA PARA USAR PUERTO B DESCOMENTADA
//ESTO ES PARA QUE SE PUEDA USAR EL PUERTO C COMO SALIDA
#define lcd_data_port getenv("sfr:portc")
#include <lcd.c>
#bit pbaden=0x300005.1
void main(){
disable_interrupts(GLOBAL);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_oscillator(OSC_8MHZ|OSC_INTRC|OSC_PLL_OFF); //reloj interno
// setup_adc_ports(NO_ANALOGS);
char k;
pbaden=0;
int x;
lcd_init();
kbd_init();
set_tris_b(0b11111110);
// set_tris_b(0b11111101); //PARA USAR EL RB0 EN VEZ DE RB1 EN LA //FILA 1
port_b_pullups(TRUE);
lcd_putc("\fPRESIONE TECLA\n");
while (1)
{ k=kbd_getc();
x=k-48;
if (k!=0){if(k=='*')
lcd_putc("\fTECLA??");
else
printf(lcd_putc
,"\fTECLA= %u",x
); delay_ms(1000);
}
}//FIN DE WHILE
}// FIN DE MAIN[/i]