Mostrando datos diferentes en 7 segmentos

-1

Estoy diseñando un estabilizador digital, donde tengo que usar una pantalla multiplexada de 7 segmentos para mostrar el voltaje de entrada y amp; Voltaje de salida, he podido ver con éxito el voltaje de entrada, pero no he podido averiguar cómo mostrar el voltaje I / P durante un tiempo, por ejemplo 30 segundos y el voltaje O / P durante 30 segundos. La pantalla utiliza Interrupción para manejar segmentos multiplexados 7 .

Datos adicionales: Micro controlador: PIC16F72 Compilador: MikroC Fuente de interrupción (multiplexación): Timer2

¿Cómo mostrar dos voltajes diferentes para un cierto intervalo en una pantalla multiplexada de 7 segmentos?

    

1 respuesta

1

Ya que está usando una interrupción (presumiblemente de temporizador) para la temporización del múltiplex de pantalla, puede usar eso para cronometrar el ciclo de 30 s. Considera este pseudo-código c-like. Las mayúsculas son constantes de #defines.

Diga que esto es una variable global (y por lo tanto estática):

volatile int my_timer; 

In your ISR: 

if (my_timer > 0) my_timer--; 

In your main routine

if (0==my_timer) 
   {
   // time-out - toggle the display source and reload the timer 
   display_source = (INPUT_VOLTAGE == display_source) ? OUTPUT_VOLTAGE:INPUT_VOLTAGE; 
   my_timer = 30 * MUX_FREQUENCY;  // MUX_FREQUENCY must be < 1092 Hz 
   }
// update display 

switch(display_source) 
  {
  INPUT_VOLTAGE: 
     // update display based on input voltage
     break;
  OUTPUT_VOLTAGE:
     // update display based on output voltage
     break; 
  default: 
     // update display with error message 
     break; 
   }
    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas