• Domingo 29 de Septiembre de 2024, 03:37

Autor Tema:  Problema Con 16f877  (Leído 1653 veces)

Eduard Mauricio

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema Con 16f877
« en: Martes 29 de Marzo de 2005, 05:14 »
0
:lightsabre: Hola a todos, espero por favor me ayuden a multiplexar un display siete segmentos conun solo codificador 7447, no entiendo como empezar, con un recorrido general o con un recorrido propio de cada numero.
Agradezco su ayuda

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Problema Con 16f877
« Respuesta #1 en: Martes 29 de Marzo de 2005, 19:41 »
0
si lo que se quiere es mostrar el numero en 1 solo display no veo la necesidad de "multiplexar" simplemente envias el numero en binario y ya.

Ahora si se tienen más de 1 display y se quiere ahorrar la mayor cantidad de pines se puede hacer declarando un puerto para que ubique el numero y otro para seleccion del display.

la idea es que mientras se muestra un numero  en un display especifico los demas estan apagados. esto es sencillo de hacer si conectas el anodo o el catodo comun al pin del  puerto que se debe utilizar para hacer el barrido. obviamente todos los display reciben el mismo numero es decir, estan conectados al mismo 7447.

Si se desea escribir el numero "123" la secuencia seria la siguiente:
PORTA = puerto de barrido
PORTA.0= Unidades
PORTA.1= Decenas
PORTA.2= Centenas
PORTB = Puerto de numero (4 bits del puerto representan el numero)

1) se selecciona el pin de las unidades
2) se envia el numero "3".
3) se emplea un retardo para visualizar el numero
4) se cambia al pin de las decenas.
5) se envia el numero "2"
6) se emplea un retardo.
7) el pin de las centenas
8) envia "1"
9) retardo.
10) vuelve al paso 1 y realiza todo otra vez.

 En la mayoria de ocaciones es mejor utilizar una interrupcion mediante un temporizador (TICK)  para realizar los retardos. Algo asi como un servicio de visualización. el servicio se programa para que en cada interrupcion evalue su estado actual y según eso muestre el siguiente numero. cabe decir que para que para que el ojo humano no detecte parpadeos los display deben actualizarse al menos 30 veces por segundo. es ademas conveniente que el tiempo de retardo sea
suficientemente mayor al tiempo que demora el cambio de display (1 o 2 ciclos) ya que si no se deja un tiempo de retardo suficiente existe un instante en el que el display muestra al dato anterior mientras el puerto de datos cambia el valor, esto hace que el ojo no reconozca claramente el patron y el ojo "superpone" combinando el valor de los dos numeros en una figura poco reconocible. si el tiempo de retardo es suficientemente alto, el ojo no percibe que el valor anterior fue escrito en el display y portanto reconoce correctamente el numero actual.

Suerte...

Oldkami