Autor Tema: Problema con Multiplexado Display  (Leído 1447 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado krlitoz90

  • PIC10
  • *
  • Mensajes: 8
Problema con Multiplexado Display
« en: 31 de Marzo de 2013, 16:55:21 »
Hola amigos tengo un problema. Me encargaron realizar un contometro para un trabajo para una empresa. El problema es el siguiente el pic realiza muy bien el conteo y muestra los valores hasta 299 y cuando pasa a 300 y algo mas me salen otros digitos en las decenas y ni que decir cuando llega a 1000 tambien me salen otros valores en los millares. la ecuacion para descomponer cada digito la saque de un libro y cuandrando con la calculadora si salen muy bien pero no me muestra lo que quiero. Alguna ayuda se los agradeceria mucho. le adjunto el archivo zip

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 209
Re: Problema con Multiplexado Display
« Respuesta #1 en: 07 de Abril de 2013, 00:06:39 »
Ahí corrí tus archivos, salio ese error que indicas...  al llegar a 300,   pregunta que compilador estas empleando, nombre y versión.
Es importante como dato.

Desconectado wsirit

  • PIC10
  • *
  • Mensajes: 1
Re: Problema con Multiplexado Display
« Respuesta #2 en: 08 de Abril de 2013, 23:54:08 »
Prueba con esta función. Me ha funcionado siempre y es sencilla escalarla para cualquier cantidad de displays. Importante que la declaración de variables

      int display_1;                              // Variable que muestra el caracter 1 en el display 1 más significativo
      int display_2;                              // Variable que muestra el caracter 2 en el display 2
      int display_3;                              // Variable que muestra el caracter 3 en el display 3
      int display_4;                              // Variable que muestra el caracter 4 en el display 4 menos significativo


//*******************  Rutina para Mostrar Número cualquiera base 10 en el Display 7 Segmentos ********************
     
   void displayValor(long int valor){
     
                       
          // Descomponemos la cuenta en unidades, decenas y centenas para mostrar en cada display
            
      display_1 = (valor / 1000) % 10;                                                 // Dígito más significativo. Millares
      display_2 = (valor / 100) % 10;                                                   // Centenas
             display_3 = (valor / 10) % 10;                                                     // Decenas
             display_4 = (valor % 10);                                                            // Unidades

      }


Para este caso, la variable "valor" es suficiente con declararla long int o de 16 bits por la cantidad de display, es decir; solo cuento hasta 9999.

Espero te sea útil.

Saludos


 

anything