TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: quodigital en 27 de Febrero de 2007, 02:12:18

Título: Problema con Multiplexado y Muchos datos
Publicado por: quodigital en 27 de Febrero de 2007, 02:12:18
Bunas, tengo una gran duda, como verán este programa hace lo siguiente, escribe, “HOLA ECHO POR JUAN GRACIAS A USTEDES”, eso se va viendo con 4 display de 7 seg. Y 4 transistores bc 548 que hacen el multiplexado, me han comentado que no hace falta cargar todas las letras que se puede hacer mas simplificado, y la verdad que no se me ocurre, si alguien me da una mano se lo agradecería.. otra cosa si lo hago de esta manera, me queda chico el pic :(
Muchas gracias
Suerte   :-/ :-/

ACA EL PROGRAMA
----------------------------
    DEVICE 16F84                               ' ELIJO EL MICRO
        CONFIG PWRTE_ON, WDT_OFF, CP_OFF, XT_OSC
                                                                               
    Dim B0  As Byte     'CREO VARIABLE
                                                       
                                                                                                                                                       
                               
        SYMBOL DIG1 = PORTA.0
        SYMBOL DIG2 = PORTA.1
        SYMBOL DIG3 = PORTA.2
        SYMBOL DIG4 = PORTA.3
    SYMBOL PINS = PORTB
    '---------------------------------------------------------------
    'TABLA DE LETRAS
    '---------------------------------------------------------------
    SYMBOL aM = %01011111
    SYMBOL A= %01110111
    SYMBOL b= %01111100
    SYMBOL C= %00111001
    SYMBOL cM= %01011000
    SYMBOL d= %01011110
    SYMBOL eM= %01111011
    SYMBOL E= %01111001
    SYMBOL F= %01110001
    SYMBOL G= %01111101
    SYMBOL H= %1110110
    SYMBOL hM= %01110100
    SYMBOL iM= %00010000
    SYMBOL I= %00110000
    SYMBOL J= %00011110
    SYMBOL L= %00111000
    SYMBOL n= %01010100
    SYMBOL nn= %01010101    'REPRESENTA A LA LETRA (ñ)
    SYMBOL oM= %01011100
    SYMBOL O= %00111111
    SYMBOL P= %01110011
    SYMBOL r= %01010000
    SYMBOL S= %01101101
    SYMBOL t= %01111000
    SYMBOL U= %00111110
    SYMBOL uM= %00011100
    SYMBOL Y= %01101110
    '----------------------FIN DE LAS LETRAS----------------------
   
    TRISA= $00
        TRISB= $00
    DELAYMS 5000
DAVID:
    '-------------- HOLA ------------------------------------------------
    For B0 = 0 To 50
    PINS = H
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = O
    PORTA = 1
    DELAYMS 5
    PINS = H
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = L
    PORTA = 1
    DELAYMS 5
    PINS = O
    PORTA = 2
    DELAYMS 5
    PINS = H
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = A
    PORTA = 1
    DELAYMS 5
    PINS = L
    PORTA = 2
    DELAYMS 5
    PINS = O
    PORTA = 4
    DELAYMS 5
    PINS = H
    PORTA = 8
    DELAYMS 5
    Next
    '-------------- HECHO -------------------------------------
    For B0 = 0 To 50
    PINS = H
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = E
    PORTA = 1
    DELAYMS 5
    PINS = H
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = C
    PORTA = 1
    DELAYMS 5
    PINS = E
    PORTA = 2
    DELAYMS 5
    PINS = H
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = H
    PORTA = 1
    DELAYMS 5
    PINS = C
    PORTA = 2
    DELAYMS 5
    PINS = E
    PORTA = 4
    DELAYMS 5
    PINS = H
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = O
    PORTA = 1
    DELAYMS 5
    PINS = H
    PORTA = 2
    DELAYMS 5
    PINS = C
    PORTA = 4
    DELAYMS 5
    PINS = E
    PORTA = 8
    DELAYMS 5
    Next
    '---------------- POR -------------------------------------
    For B0 = 0 To 50
    PINS = P
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = O
    PORTA = 1
    DELAYMS 5
    PINS = P
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = R
    PORTA = 1
    DELAYMS 5
    PINS = O
    PORTA = 2
    DELAYMS 5
    PINS = P
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = R
    PORTA = 2
    DELAYMS 5
    PINS = O
    PORTA = 4
    DELAYMS 5
    PINS = P
    PORTA = 8
    DELAYMS 5
    Next
    '-------------- JUAN ---------------------------------------
    For B0 = 0 To 50
    PINS = J
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = U
    PORTA = 1
    DELAYMS 5
    PINS = J
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = AM
    PORTA = 1
    DELAYMS 5
    PINS = U
    PORTA = 2
    DELAYMS 5
    PINS = J
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = N
    PORTA = 1
    DELAYMS 5
    PINS = AM
    PORTA = 2
    DELAYMS 5
    PINS = U
    PORTA = 4
    DELAYMS 5
    PINS = J
    PORTA = 8
    DELAYMS 5
    Next
    '---------------- PARA -------------------------------
    For B0 = 0 To 50
    PINS = P
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = A
    PORTA = 1
    DELAYMS 5
    PINS = P
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = R
    PORTA = 1
    DELAYMS 5
    PINS = A
    PORTA = 2
    DELAYMS 5
    PINS = P
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = A
    PORTA = 1
    DELAYMS 5
    PINS = R
    PORTA = 2
    DELAYMS 5
    PINS = A
    PORTA = 4
    DELAYMS 5
    PINS = P
    PORTA = 8
    DELAYMS 5
    Next
    '--------------- USTEDES -----------------
    For B0 = 0 To 50
    PINS = U
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = S
    PORTA = 1
    DELAYMS 5
    PINS = U
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = T
    PORTA = 1
    DELAYMS 5
    PINS = S
    PORTA = 2
    DELAYMS 5
    PINS = U
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = E
    PORTA = 1
    DELAYMS 5
    PINS = T
    PORTA = 2
    DELAYMS 5
    PINS = S
    PORTA = 4
    DELAYMS 5
    PINS = U
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = D
    PORTA = 1
    DELAYMS 5
    PINS = E
    PORTA = 2
    DELAYMS 5
    PINS = T
    PORTA = 4
    DELAYMS 5
    PINS = S
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = E
    PORTA = 1
    DELAYMS 5
    PINS = D
    PORTA = 2
    DELAYMS 5
    PINS = E
    PORTA = 4
    DELAYMS 5
    PINS = T
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = S
    PORTA = 1
    DELAYMS 5
    PINS = E
    PORTA = 2
    DELAYMS 5
    PINS = D
    PORTA = 4
    DELAYMS 5
    PINS = E
    PORTA = 8
    DELAYMS 5
    Next
    '------------- GRACIAS--------------
    For B0 = 0 To 50
    PINS = G
    PORTA = 1
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = R
    PORTA = 1
    DELAYMS 5
    PINS = G
    PORTA = 2
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = A
    PORTA = 1
    DELAYMS 5
    PINS = R
    PORTA = 2
    DELAYMS 5
    PINS = G
    PORTA = 4
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = C
    PORTA = 1
    DELAYMS 5
    PINS = A
    PORTA = 2
    DELAYMS 5
    PINS = R
    PORTA = 4
    DELAYMS 5
    PINS = G
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = I
    PORTA = 1
    DELAYMS 5
    PINS = C
    PORTA = 2
    DELAYMS 5
    PINS = A
    PORTA = 4
    DELAYMS 5
    PINS = R
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = A
    PORTA = 1
    DELAYMS 5
    PINS = I
    PORTA = 2
    DELAYMS 5
    PINS = C
    PORTA = 4
    DELAYMS 5
    PINS = A
    PORTA = 8
    DELAYMS 5
    Next
   
    For B0 = 0 To 50
    PINS = S
    PORTA = 1
    DELAYMS 5
    PINS = A
    PORTA = 2
    DELAYMS 5
    PINS = I
    PORTA = 4
    DELAYMS 5
    PINS = C
    PORTA = 8
    DELAYMS 5
    Next
    '---------- FIN -----------------
    PORTA= $00
    DELAYMS 2300
    GoTo DAVID

Título: Re: Problema con Multiplecado y Muchos datos
Publicado por: Mario en 27 de Febrero de 2007, 03:04:13
No se dónde exactamente pero LORDLAFEBRE tiene un hilo donde empezó a colocar ejemplos para PBP y PROTON (que al parecer es lo que usas).

Busca aquí http://www.todopic.com.ar/foros/index.php?topic=3613.0
Título: Re: Problema con Multiplecado y Muchos datos
Publicado por: LordLafebre en 27 de Febrero de 2007, 11:27:03
Hola:

El lenguaje es Proton, y lo que se me ocurre que hagas es como en los ejemplos que pusimos, que hagas con vectores, de esta forma cargas los valores de las letras y en esos blucles llamas a los subindices correspondientes del vector para formar la letra.
Título: Re: Problema con Multiplecado y Muchos datos
Publicado por: quodigital en 27 de Febrero de 2007, 21:32:32
Hola, gracias por sus contestaciones, voy a tratar de hacerlo, mucho no se, pero voy haber los ejemplos.

Gracias y Suerte..!!!!  :-/ :-/ :-/ :-/ :-/
Título: Re: Problema con Multiplecado y Muchos datos
Publicado por: pablotuc en 15 de Marzo de 2007, 15:52:44
lo que puede hacer es usar un 74LS138 que es un integrado bastante util con el cual con 3 bits de entrada puedes controlar 8 a la salida, yo hice un par de cosas con multiplexado y displays de 7 segmentos y funciona genial, lo unico es que debes aprender a usarlo correctamente. Una forma de hacer lo que quieres es solo declarar las letras que vas a usar, de esa manera se achica el programa en cuanto a eso, y para hacer que desplace (creo que eso es lo que quieres) puede cargar en registros diferentes cada letra, y por medio del 74LS138 controlar el turno de cada display e ir desplazando de display en display el dato de la letra que sigue, si no me entendiste preguntame por PM y te explico, o si te resulta mas facil otra forma intentalo con esa, pero esta es una opcion mas.

Pablo
Título: Re: Problema con Multiplecado y Muchos datos
Publicado por: quodigital en 15 de Marzo de 2007, 18:52:28
Hola, no sabia eso del 74LS138,es bastante bueno porque ahorras mucho programa, que bueno muchas gracias, traqto de hacer algo lindo y lo posteo, espero que salga,
Saludos a todos
Gracias
 :-/ :-/
Título: Re: Problema con Multiplexado y Muchos datos
Publicado por: Mario en 16 de Marzo de 2007, 13:08:54
Lo único es que (si recuerdo bien) debes tener displays de cátodo común para hacer eso. Comento porque por acá donde vivo ya no he visto que manejen cátodo común, solo ánodo.
Título: Re: Problema con Multiplexado y Muchos datos
Publicado por: pablotuc en 18 de Marzo de 2007, 01:26:08
se soluciona con los transistores que usas, o PNP o NPN, o haciendo que las salidas del pic en vez de 1 sean 0 o viceversa
Título: Re: Problema con Multiplexado y Muchos datos
Publicado por: quodigital en 26 de Marzo de 2007, 14:42:11
hola chicos, he visto que para achicar el codigo guardan todo las letras en una variable o en la instruccion "data" y despues escriben entre comillas ej."quo" y sale directamente en el display.. pero no se como se `programa eso es lo que estoy aberiguando hace bastante...

Saludos a todos  Gracias
 :-/ :-/ :-/