¿Cómo memorizar tecla en el microcontrolador?

Hola gente qué tal?

Sucede que estoy diseñando un sistema de visualización numérica en tres displays; ya he realizado el programa en C para que el micro haga el correspondiente barrido de los displays y vaya mostrando secuencialmente los números que yo le digito a través de un teclado matricial.

Pero ahora tengo un problema no sé cómo hacer para que después de haber oprimido tres teclas, no tenga que seguir pulsándolas y el micro solito las memorize y siga mostrando los datos hasta que oprima unas teclas diferentes.

Por ejemplo:
digito 5 en el teclado, me aparece el número en el 1er display
digito 6 en el teclado, me aparece el número en el 2o display
digito 7 en el teclado, me aparece el número en el 3er display

Formando entonces el número 567, pero después de haber hecho esa operación los números se desaparecen: lo que necesito es que los esté mostrando hasta que yo desee cambiar el número de visualización.

Estoy diseñando el programa en c para un pic16f8777 y displays de cátodo común.

Agradezco si alguien me puede ayudar.....
 
Hola!
Hmm, aunque estés programando en C, puedes meter assembler entremedio cierto? Beno, busca un poco más abajo en esta sección del foro, donde tengo publicado un programa que lee teclados matriciales y guarda el número leído dentro de una variable definida. Teniendo esa variable, puedes hacer de todo con ella. Revisa ese prgrama para que veas si te sirve.
Saludos!!
 
Caramba has echo lo complicado.

Lo normal es dedicar una variable/array a cada segmento o display (display[3])

char Display[3];

Display[0]=0b01111111;
Display[2]=0b01111111;
Display[3]=0b01111111;


Cada que que tengas un valor logico en el pulsador lo guardas en el array
if(pulsador==0b11111011) {
display[3]=0b01010101;
output_portb=display[3];
};

Esta seria la idea.


Utilizo una matriz para que si tienes que multiplexar es mas facil

for(i=0;i<3;i++){
output_portb(0);
output_portc(i);
output_portb(display);

}

o algo por el estilo.
 
Atrás
Arriba