Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/08/2007 #1


¿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.....
19/08/2007 #2


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!!
20/08/2007 #3


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[i]);

}

o algo por el estilo.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.