unsigned char key; //Variable global tecla
char string[6];
float numero=0;
int i,b;
int nuevo_key; /* indica que tenemos una nueva tecla */
// Interrupcion RB4 - RB7
#INT_RB
void interrupt_keypad()
{
delay_ms(30); //Antirrebote....
key=read_keypad(); //Asigna la tecla pulsada
clear_interrupt(INT_RB); //Limpia bandera RBIF
nuevo_key = 1;
}
// Programa Principal
void main()
{
int num_tecla;
lcd_init();
enable_interrupts(INT_RB); //interrupcion INT_RB activada
enable_interrupts(GLOBAL); //todas las interrupciones desactivadas
init_keypad();
// el programa se queda en este bucle
num_tecla = 0;
while(1) {
nuevo_key=0;
while(nuevo_key == 0)
/* esperamos una tecla */;
if(key != 'A')
continue; /* si no es una 'A' volvemos al inicio del while */
/* esperamos 4 teclas... */
for(i=0; i<4; i++) {
nuevo_key = 0;
while(nuevo_key == 0)
/* esperamos una tecla */;
string[i] = key;
}
string[i] = 0;
lcd_gotoxy(1, 1);
// Imprimimos la Tecla pulsada
printf(lcd_putc
,"tecla:%i num:%f\n",num_tecla
++,atof(string
)); }
}