Autor Tema: Multiplexar display de 7seg.  (Leído 3209 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado PabloFiscella

  • PIC16
  • ***
  • Mensajes: 154
Multiplexar display de 7seg.
« en: 26 de Diciembre de 2004, 12:45:00 »
Hola a todos:

Me estoy volviendo loco con algo que seguramente es demasiado sencillo pero no me sale.

Intento multiplexar 3 display de 7 seg.
El programa solo muestra el numero 123
Pruebo el programa con el proteus y parpadea demasiado.

Dejo el codigo por si se dan cuenta cual es el problema
Saludos.
Pablo

#include <16F874.h>

#use delay (clock=4096000)
#fuses XT,NOWDT

void main(void) {
   for(;Giño {
      set_tris_b(0x00);

      output_b(0b00010001);      "Los ultimos cuatro bits son para multiplexar
      delay_ms(1);
      output_b(0b00010000);      

      output_b(0b00100010);
      delay_ms(1);
      output_b(0b00100000);

      output_b(0b00110100);
      delay_ms(1);
      output_b(0b00110000);
   }
}

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Multiplexar display de 7seg.
« Respuesta #1 en: 26 de Diciembre de 2004, 13:50:00 »
output_b(0b00010001); "Los ultimos cuatro bits son para multiplexar
delay_ms(1);

output_b(0b00100010);
delay_ms(1);

output_b(0b00110100);
delay_ms(1);


Asi diria es mas correcto , tambien provar con otros delay .
y con un simulador esto es dificil que coincida con la realidad .

buen fin de año

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Multiplexar display de 7seg.
« Respuesta #2 en: 26 de Diciembre de 2004, 14:13:00 »
Si haces la simulación paso a paso deberías poder ver los cambios con claridad

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Multiplexar display de 7seg.
« Respuesta #3 en: 27 de Diciembre de 2004, 07:28:00 »
Estoy con Sispic: después de mostrar un número, no muestres el 0.

Está claro que usas un decodificador BCD/7segmentos. Si te sobran pines en el PIC podrías ahorrarte el deco y encender los segmentos directamente.

En definitiva, con la corrección de Sispic si lo montas físicamente lo tienes que ver bien.

Si en la simulación quieres ver con claridad los números que tocan a cada display, pon un delay de 50ms y los verás. Con 1ms en un mismo display ves pasar un desmadre de números, aunque en la realidad funcione bien.

Un saludo

Desconectado PabloFiscella

  • PIC16
  • ***
  • Mensajes: 154
RE: Multiplexar display de 7seg.
« Respuesta #4 en: 27 de Diciembre de 2004, 09:28:00 »
Ok.
Se puede ver en tiempo real una simulacion con proteus para ver como se ve en realidad?

Muchas gracias y felicidades para todos.
Saludos.
Pablo

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Multiplexar display de 7seg.
« Respuesta #5 en: 27 de Diciembre de 2004, 10:20:00 »
Respecto a conseguir con este ejemplo en particular que se queden quietos los numeritos en los displays, no se puede. Sin embargo recuerdo que en otros proyectos sí que conseguía ver los números sin parpadear, cuestión de jugar con los delay_ms.

Respecto a si PROTEUS es capaz de simular en tiempo real, hay un marcador al final de la pantalla que mide segundos. Haz un reloj que funcione perfectamente, sin retrasos, deja funcionando el PROTEUS durante un largo periodo de tiempo (1h por ejemplo), luego comprueba la hora de tu reloj con el tiempo que ha transcurrido en el "reloj" del PROTEUS: deben coincidir.

Un saludo

Desconectado PabloFiscella

  • PIC16
  • ***
  • Mensajes: 154
RE: Multiplexar display de 7seg.
« Respuesta #6 en: 27 de Diciembre de 2004, 11:40:00 »
Ok, muchas gracias.

Saludos.
Pablo

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: Multiplexar display de 7seg.
« Respuesta #7 en: 28 de Diciembre de 2004, 08:03:00 »
Hola..

este sirve para multiplexar tres displays, sin usar un decoa la salida sino directamente a los displays, usa la interrupcion del tmr0, espero sirva:

Codigo:

int conv (int);

#define ON_TR1 output_high(PIN_B5)
#define OFF_TR1 output_low(PIN_B5)
#define ON_TR2 output_high(PIN_B6)
#define OFF_TR2 output_low(PIN_B6)
#define ON_TR3 output_high(PIN_B7)
#define OFF_TR3 output_low(PIN_B7)

int otr,otr1,dig1,dig2,dig3;
short flag=0;
#byte port_c = 7
#int_RTCC
visualizacion(){
         if(otr==2){                   //Primer display
            ON_TR1;                   //habilita el primer transistor
            port_c=dig1;            //pone el dato en el display
            delay_us(300);        //un pequeño delay para que salga bien la visualizacion
         }else OFF_TR1;
         if(otr==3){
            ON_TR2;
            port_c=dig2+128;
            delay_us(300);
         }else OFF_TR2;
         if(otr==4){
            ON_TR3;
            port_c=dig3;
            delay_us(300);
            otr=0;
         }else OFF_TR3;
         otr++;
}

int conv(int x){          // para decodificar el numero de BCD a 7 segmentos

   switch (x){
      case 0:  return(192);
      case 1:  return(249);
      case 2:  return(164);
      case 3:  return(176);
      case 4:  return(153);
      case 5:  return(146);
      case 6:  return(131);
      case 7:  return(248);
      case 8:  return(128);
      case 9:  return(152);
      default: break;
   }
}



Desconectado finiestaf

  • PIC10
  • *
  • Mensajes: 1
Re: Multiplexar display de 7seg.
« Respuesta #8 en: 13 de Diciembre de 2012, 15:35:18 »
Buenas estoy bastante verde en esto, alguien me podria poner un ejemplo de como aplicar el codigo anterior para que tome el valor de una entrada analogica?

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Multiplexar display de 7seg.
« Respuesta #9 en: 13 de Diciembre de 2012, 22:14:35 »
Supongo que lo que quieres hacer es sensar el valor de una entrada analógica y mostrar el valor en unos tres digitos.

Te recomiendo que use un poco la búsqueda del foro y quizas encuentres algún ejemplo.

Podes usar como palabra clave "voltimetro" o algo similar.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Multiplexar display de 7seg.
« Respuesta #10 en: 14 de Diciembre de 2012, 11:03:09 »
aqui hay algo
El papel lo aguanta todo