TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Myto en 13 de Diciembre de 2007, 13:55:03

Título: Varios DISPLAY 16F84A
Publicado por: Myto en 13 de Diciembre de 2007, 13:55:03
Hola a todos! =D

Ando queriendo manejar VARIOS DISPLAY (supongamos,  4), con el PIC16F84A.

Ahora bien, utilizando sus librerias, conectas directo el Display a los 8 salidas del puerto B, por lo que no puedo colocr mas displays.

COmo hago para usar, con un solo micro, varios display?

Desde ya, gracias.
Título: Re: Varios DISPLAY 16F84A
Publicado por: navaismo en 13 de Diciembre de 2007, 14:00:01
Multiplexando. Conectas un controlado r de tu display ya sea anodo o catodo al 16f84 -hablo de los chip 7447 y el otro- con ello controlas las salidas de la tabla de verdad del display.

Las salidas del 7447 -por ejemplo- las conectas a todos los displays y con los otros pines controlas la activacion de los mismos.

Desconozco el lenguaje que uses pero este ejemplo y diagrama te pueden ayudar (http://www.todopic.com.ar/foros/index.php?topic=3613.msg62408#msg62408)
Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 13 de Diciembre de 2007, 14:18:53
Buenisimo gracias!

Uso assembler.

A ver si entendi.

Con los 8 puertos de PORTB, por ejemplo, controlo el codigo del display, y con alguno de los otros, del puerto A, controlo que display voy a modificar?
Título: Re: Varios DISPLAY 16F84A
Publicado por: navaismo en 13 de Diciembre de 2007, 14:24:08
Si asi es, con los del PORTA mandas que Display se activa
Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 13 de Diciembre de 2007, 15:44:56
Y una vez que active uno, y paso a otro para activarlo, el anterior mantiene "guardado" el dato que le envié?

Debo estar constantemente renovando esa info?
Título: Re: Varios DISPLAY 16F84A
Publicado por: navaismo en 13 de Diciembre de 2007, 16:04:18
asi es generalmente el refresco es de 5 milisegundos por lo cual el ojo humano no percibe este cambio
Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 13 de Diciembre de 2007, 21:46:26
Buenisimo, muchas gracias por todo =D
Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 14 de Diciembre de 2007, 15:47:11
Listo, lo hice, y no utilize ningún integrado aparte...

En realiad, el 7447 servía para decodificar y nada mas, logicamente.

Pero como yo ya lo sacaba del PIC decodificado, no lo necesitaba.

Y como vos me dijiste, use las lineas del Puerto A, para seleccionar el Display a escribir.

Lo comico es que yo no te habia entendido, porque pense que decias que el 7447 tmb podia elegir que display escribir.


Ahora bien, lo que hice fue: Agarre 4 displays de Catodo Comun, y cada catodo digamos, lo conecte a una linea del Puerto A.

Entonces, constantemente iba actualizando cada display, llendo de una linea a la otra, y en el medio leía que habia en puerto B y lo escribia.
Título: Re: Varios DISPLAY 16F84A
Publicado por: navaismo en 14 de Diciembre de 2007, 16:16:22
Exacto eso tambien es muy valido, yo comentaba lo del uso del 7447 por aquello del ahoro de pines en el PIC pero si no necesitas mas pines asi esta mas que excelente
Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 15 de Diciembre de 2007, 04:20:16
Claro...

Cuando necesite SI o SI pines, utilizaré ese deco, sino, me tomo la libertad de facilitar el PCB xD

Obviamente, en realidad al Catodo Comun va con un transistor, el cual en su base tiene conectado el pin del puerto A, pero para la simulacion todo bien xD

Título: Re: Varios DISPLAY 16F84A
Publicado por: Cryn en 15 de Diciembre de 2007, 13:25:32
talvez te sirva: http://www.todopic.com.ar/foros/index.php?topic=19435.0
Título: Re: Varios DISPLAY 16F84A
Publicado por: PalitroqueZ en 15 de Diciembre de 2007, 15:14:13
Te puedes ahorrar mas pines incluso con un convertidor serial-paralelo. ej cd4094

un ejemplito (http://www.todopic.com.ar/foros/index.php?topic=16648.msg110341#msg110341)

claro eso depende si te sale mas caro comprar chips adicionales o hacerlo todo con el uC PIC.






Título: Re: Varios DISPLAY 16F84A
Publicado por: Myto en 16 de Diciembre de 2007, 11:59:29
Buenisimo, garcias ^^

Ahora bajo el datasheet del convertidor y lo examino un rato ^^
Título: Re: Varios DISPLAY 16F84A
Publicado por: Enigma en 02 de Enero de 2008, 02:08:05
Hola.... Disculpen mi atrevimieto.... Pero no tienen un ejemplito de refrescamiento para 4 displays???.... es que he hecho ya dos, y pues no me funciona.... Si es en C, del CCs mejor, pero si lo tienen en asembler pues no importa, me encargaré de analizarlo y entenderlo... Gracias! y disculpe mi atrevimiento!!!

Atte: Enigma... La llanerita de Guayana :shock:
Título: Re: Varios DISPLAY 16F84A
Publicado por: Enigma en 02 de Enero de 2008, 15:11:00
?? nadie tiene??? :(

Atte: Enigma... La llanerita de Guayana :oops:
Título: Re: Varios DISPLAY 16F84A
Publicado por: todopic en 02 de Enero de 2008, 16:51:52
Hola Enigma, aqui tienes un ejemplo de visualizacion de 4 digitos
http://www.todopic.com.ar/asm/_PRINCIPIANTES/contador4dig.TXT (http://www.todopic.com.ar/asm/_PRINCIPIANTES/contador4dig.TXT)

espero te sirva....

Suerte!

Norberto
Título: Re: Varios DISPLAY 16F84A
Publicado por: Enigma en 02 de Enero de 2008, 18:10:52
Hola... Gracias Todopic... lo revisaré!!!! :mrgreen:

Atte: Enigma... La llanerita de Guayana :D
Título: Re: Varios DISPLAY 16F84A
Publicado por: Cryn en 02 de Enero de 2008, 23:46:13
aca hice como un algoritmo de lo que siempre hago y me va mbien con los displays, he manejado hasta 5 con ello y sin problema, y creo qeu pudiera usarse talvez mas displays

aca el link, talvez ya lo leiste, pero por si acaso :mrgreen: http://www.todopic.com.ar/foros/index.php?topic=19435.msg140323#msg140323
Título: Re: Varios DISPLAY 16F84A
Publicado por: Enigma en 02 de Enero de 2008, 23:58:58
Si le estaba echando una ojeada a ese precisamente ayer, y vi el hardware y así es que lo pense, pero cuando lo hago en software, no me da, mando a rotar los nibbles, y pues bueno no lo hace, ha de ser una mala codificación... seguiré intentando!!! Gracias amigo cryn

Atte: Enigma... La llanerita de Guayana :D
Título: Re: Varios DISPLAY 16F84A
Publicado por: Cryn en 03 de Enero de 2008, 00:29:18
bueno pues mira, haber para que le des otra ojeada :mrgreen:

esta es la funcion que me hice para manejar 4 displays conectados a RB1-7 y los transistores de C0 a C3 (mas o menos como la imagen que te mostre en un otro post creo, sobre la conexion con transistores, en el mismo hilo del anterior link, creo :mrgreen:)

antes la definicion de los datos:
#byte port_b=6
unsigned int CONST LED [10]={0x7E,0x0C,0xB6,0x9E,0xCC,0xDA,0xFA,0x0e,0xfe,0xde}; // para catodo
//unsigned int CONST LED [10]={0x80,0xF2,0x48,0x60,0x32,0x24,0x04,0xF0,0x00,0x20}; // para anodo

void mux()              // función de multiplexación
{
   port_b=LED[unit];    // se despliega dato correspondiente a unidades
   output_high(PIN_C0); // displays de anodo común, se activa anodo correspondiente
   delay_us(250);       // retardo para observación contínua
   output_low(PIN_C0);  // apagamos display, para pasar al siguiente

   port_b=LED[dec];     // se despliega dato correspondiente a decenas
   output_high(PIN_C1); // displays de anodo común, se activa anodo correspondiente
   delay_us(250);       // retardo para observación continua
   output_low(PIN_C1);  // apagamos display, para pasar al siguiente

   port_b=LED[cen];     // se despliega dato correspondiente a centenas
   output_high(PIN_C2); // displays de anodo común, se activa anodo correspondiente
   delay_us(250);       // retardo para observación contínua
   output_low(PIN_C2);  // apagamos display, para pasar al siguiente

   port_b=LED[mil];     // se despliega dato correspondiente a los miles
   output_high(PIN_C3); // displays de anodo común, se activa anodo correspondiente
   delay_us(250);       // retardo para observación continua
   output_low(PIN_C3);  // apagamos display, para pasar al siguiente
}

y bueno aca en mi ejemplo unit, dec, cen y mil son variables que teinen un valor diferente y ese valor eqeuivale a la posición el en arreglo led que corresponde al numero que se mostrara en el dislpay correspondiente

tb aclarar que el puerto C, o al menos los bits de C0 a C3 se inician en este caso en bajo (osea en '0' logico) se mantendran asi siempre y solo en la rutina del mux cambian de estado para habilitar el display correspondiente y otra vez vuleven al estado inicial

este codigo para displays de catodo comun, ya que para anodo cambia la liena comentada de arriba y se usaran transistores pnp, de lo cual tb hay un esquema en alguna parte, jeje :mrgreen: creo que en el mismo hilo de link que deje antes, porque lo vi no hace muhco tiempo, bueno un salute, espero te sirva :mrgreen:
Título: Re: Varios DISPLAY 16F84A
Publicado por: PalitroqueZ en 04 de Enero de 2008, 15:32:37
Hola.... Disculpen mi atrevimieto.... Pero no tienen un ejemplito de refrescamiento para 4 displays???.... es que he hecho ya dos, y pues no me funciona.... Si es en C, del CCs mejor, pero si lo tienen en asembler pues no importa, me encargaré de analizarlo y entenderlo... Gracias! y disculpe mi atrevimiento!!!

Atte: Enigma... La llanerita de Guayana :shock:

mira aquí (http://www.todopic.com.ar/foros/index.php?topic=4847.msg36612#msg36612)

la aplicación es mostrar el resultado del cad y llevarlo a voltios medidos dc, revisa la parte de multiplexaje de los 7-seg

Título: Re: Varios DISPLAY 16F84A
Publicado por: Enigma en 04 de Enero de 2008, 17:01:48
Beeerrrro!!!! :lol: Gracias Palitroquez.... Eres el mejor!, te agradezco un montón.... ahora si entendi claramente.... jejejeje Con los otros ejemplos tenia la idea y me había hecho unos pensamientos en la cabeza, pero con este ejemplo termine de entender!.... Voy a probar un ejemplito y luego publico resultados! jejeje :g)


Atte: Enigma... La llanerita de Guayana :g)
Título: Re: Varios DISPLAY 16F84A
Publicado por: PalitroqueZ en 04 de Enero de 2008, 17:07:15
es el mismo método que explica el amigo Cryn acá (http://www.todopic.com.ar/foros/index.php?topic=19435.msg140323#msg140323) y que lo llevé al C



Título: Re: Varios DISPLAY 16F84A
Publicado por: Cryn en 04 de Enero de 2008, 17:22:26
 :mrgreen: si me di cuenta la ver tu codigo :lol:

tb lo plsame al CCS en uno de mis anteriores post en este hilo: http://www.todopic.com.ar/foros/index.php?topic=19663.msg145414#msg145414

pero nose talvez no estaba muy entendible, y yo aca directamente usaba una variable para cada digito, unidades, decenas, centenas y miles; muy interesante lo de las estructuras (struct) hay de eso en el manual de ccs??

y tb me parece muy interesante la idea de los negadores para que el proteus no se vuelva demasiado lento, pero ello creo es debido a los retardos que usas, yo utilice 250us en la realida, pero para simular el ponia hasta 10ms o un poco mas, y se veia algo mejor, intentare colocarle los negadpores a ver si va mejor al velocidad

un saludo
Título: Re: Varios DISPLAY 16F84A
Publicado por: PalitroqueZ en 04 de Enero de 2008, 17:52:09
...muy interesante lo de las estructuras (struct) hay de eso en el manual de ccs??

...

eso fué una vez que me dió por practicar con lenguaje c  :z), busca en la página 51 de Compiler Manual for PCB, PCM, PCH, PCW, & PCWH (http://www.ccsinfo.com/downloads/CReferenceManual.pdf)



Título: Re: Varios DISPLAY 16F84A
Publicado por: Cryn en 04 de Enero de 2008, 18:05:20
ok, buscando, gracias, un saludo :mrgreen: