Autor Tema: Disaplay 7 Segmentos, 2 digitos multiplexado  (Leído 5562 veces)

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

Desconectado flacomaida

  • PIC10
  • *
  • Mensajes: 17
Disaplay 7 Segmentos, 2 digitos multiplexado
« en: 18 de Enero de 2008, 19:32:32 »
Hola a todos!! Bueno queria compartirles este código que tal vez para algunos, los que mas saben de esto no le encuentren mucha utilidad. Pero a otros tantos aprendices como yó seguro le daran algun provecho. En particular me costo encontrar algo facil como esto para display 7 segmentos.
 Es un display de 2 digito, que pueden ser de mas creo, multiplexado y senciillo. En este caso es un contador a modo de prueba pero mi idéa es usar para una indicador de temperatura con ADC. que a proposito ya les voy a pedir ayuda.Estoy leyendo sobre el tema.
Una duda. El operador matematico"MOD" no figura en la ayuda del Pbp. Pero la acepta. Yo lo vi en Mikrobasic. pero use el equivalente //
Saludos a todos.-
Walter

'****************************************************************
'*  Name    : Display 7 Seg 2 Dig..BAS                                      *
'*  Author  : Walter Maidana                                    *
'*  Notice  : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 19/01/2008                                        *
'*  Version : 1.0                                               *
'*  Notes   :  Display 7 segmentos dos display multiplexado     *
'*          :  Se usa el operador (//) para seleccionar el      *
'*          :  el modulo o resto de una divisiòn.               *
'*          :  Es una adaptación de de un ejemplo de mikrobasic *
'*          :                                                   *
'****************************************************************

j var byte
i var byte
k var byte
 Display var portb
 Dg1 var porta.0              'Al katodo del segmento1
 Dg2 var porta.1              'Al katodo del seg 2
   TRISA = %11100
    trisb=0



    Pause 500            


Inicio:   
    for i = 0 to 60             'Cuenta un minuto
          for k = 0 to 99       'Bucle para el multiplexado
         
            j  = i // 10        '(// operador resto) coje el resto de una divisíon
                gosub tabla     'es el equivalente a mod en Mikrobasic, que tambien
                porta=1        ' lo acepta el pbp. Es la Vedette de este código.
                pause 5         'Tiempo de encendido del display 1
            if i =>10 then      '(Opcional)Esta condicion es para evita el cero a la izq.
                j    = (i / 10) // 10
                gosub Tabla
                porta=2
            endif
                pause 5         'Tiempo de encendido del display 2
          next k
    Next i
    goto inicio

Tabla:
    lookup j,[63,6,91,79,102,109,125,7,127, 111],display
    return
end   

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Disaplay 7 Segmentos, 2 digitos multiplexado
« Respuesta #1 en: 18 de Enero de 2008, 20:34:02 »
Gracias, un ejemplo mas de multiplexacion y diferente a los que conocemos, Bienvenido
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado flacomaida

  • PIC10
  • *
  • Mensajes: 17
Re: Disaplay 7 Segmentos, 2 digitos multiplexado
« Respuesta #2 en: 19 de Enero de 2008, 13:38:57 »
Por nada navaismo!! Solo estoy devolviendo lo que coceche de este foro, aunque sea pequeño el aporte me alegra que sea útil.

Una ayuda.
Estoy rescatando una placa en desuso, era de un Aire Ac. Le puse un 16F77 que es lo que tenia a mano.
Tengo problemas con el calculo de temperatura. Esta placa posee un sensor tipo NTC de 10kh a 25ºc y esta conectado a masa.
Los datos que tengo para la convesion es: 0ºc = 2.7 v - 36ºc 4.1v.
Como hago para convertir a ºc, la resolución del AD es: 0.019v  a 5v. es de 8bit . Se me complica por que es de coeficiente negativo, Ademas ,no soy muy bueno con la matemática. Este es el problema...
Saludos