Micro, Display, teclado, Incremento

Hola qué tal, pues como dice el asunto tengo una inquietud, sucede que he estado haciendo el algoritmo del programa para incrementar el valor que visualiza el display de acuerdo al número de veces que he pulsado una tecla, pero no funciona!. La idea es que p.ej: si pulso la tecla '3' dos veces; en un display me muestre el numero 2, o si la pulso una vez entonces me muestre en ese mismo display el número 1.

Si alguno de ustedes tiene una solución la agradeceré.



Los que quieran saber lo qué he hecho hasta ahora ha sido esto:

#include <16f877a.h>
#use delay(clock=200000000)
#fuses XT,NOLVP
#include <kbd.c>

int cont=0,koka=0;
char display[5];
int valor,valor2,valor3;
void main() {


display[0]=0b11111111;
display[1]=0b11111111;
display[2]=0b11111111;
display[3]=0b11111111;
display[4]=0b11111111;


for(;;){
kbd_init();
valor=kbd_getc();
if (valor=='3'){
koka++;
if (koka==1){
display[0]=0b11000000;
output_d(display[0]);
delay_ms(3.33);
}
if (Koka==2){
display[1]=0b11000001;
output_d(display[1]);
delay_ms(3.33);

}
if (Koka==3){
display[2]=0b11000010;
output_d(display[2]);
delay_ms(3.33);
}
if (Koka==4){
display[3]=0b11000011;
output_d(display[3]);
delay_ms(3.33);
}

if (koka==10){
koka==0;
display[4]=0b11000000;
}
}
//if (valor=='A'){
//goto inicio;
//}


}
}
 
bueno varias cosas primero para una cristal de 20mhz el fuse no es XT sino HS, lo segundo es una pregunta, por que simplemente no incrementas una variable cada vez que recibas el resultado del escaneo del teclado y luego usas la instruccion printf para visualiza el valor de la variable en el display.

Asi seria como yo lo haria me parece mas sencillo.

De todas formas te deseo mucha suerte.

att: picmind.
 
Atrás
Arriba