Autor Tema: multiplexion en 16f84  (Leído 9831 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
multiplexion en 16f84
« en: 15 de Diciembre de 2006, 06:15:49 »
tengo un problemilla. estoy intentando aprender en la programacion en ensamblador y quiero hacer un temporizador programable. mi problema esta en haces activar los displays mi proposito es poner 5 displays y activarlos con transistores pero no se como hacer lo de rotar los displays para que vallan mandando los datos a casa displays.

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: multiplexion en 16f84
« Respuesta #1 en: 15 de Diciembre de 2006, 07:42:10 »
Fijate en este circuito ejemplo. Básicamente lo que haces es ir activando los transistores en forma secuencial. Mandás un 1 al 1º Transistor y a continuación sacás por el bus (fijate que todos los segmentos análogos de los displays están conectados entre sí) el dígito que queres visualizar en el primer display y luego hacés lo mismo con el segundo y los demás. Tenés que dejar un tiempo el dato en el display lo suficientemente largo como para que se vea y lo suficientemente corto como para que no demores tanto en visualizar el conjunto de dígitos.
El ojo detecta 20 imágenes por segundo, así que todos los digitos deberían visualizarse en menos de 50 ms. generalmente se usa menos tiempo, ponele unos 5 ms. eso lo haces con los delay en asembler podés usar alguno de esos programitas que calculan tiempos o si no hacete un retardo más o menos a ojo, no es tan crítico.
El otro tema es que mientras estás visualizando el valor (en principio) no podés hacer otra cosa. Bueno, eso no es tan así, en los delay podés mechear código, teniendo en cuenta el tiempo que éste demandará y en tu caso seguramente también usas interrupciones...

disculpá si fui muy redundante en algo que ya sabías o si no atiné al punto de tu cuestión, es que no tengo en este momento un programa que he hecho para pasarte, espero te sirva...

PD. El circuito lo saqué de pablin, pordés bajar el asm que es cortito y está claro como hace la rotación en un contador de 4 digitos. Acá está el link: contador 4 dig - pablin
« Última modificación: 15 de Diciembre de 2006, 07:54:46 por Menta »
     

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #2 en: 15 de Diciembre de 2006, 11:16:22 »
osea real mente lo que tengo que haces es ir activando los displays secuencialmente. mmm osea que tengo que tener guardados en todo momento los datos que cada display tiene que generar no ? bueno voy a ver si soy capaz de hacerlo aunque no creo jeje

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: multiplexion en 16f84
« Respuesta #3 en: 15 de Diciembre de 2006, 11:18:44 »
Yo hice uno pero usando el 16F877A, el principio de multiplexado es válido y te puede servir de base.


Salu2
Pedro

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #4 en: 23 de Diciembre de 2006, 15:41:30 »
YA HE ARREGLADO EL PROBLEMA GRACIAS A VOSOTROS. PERO AHORA TENGO OTRO PROBLEMA MIENTRAS SE EXTRAN DECREMENTANDO NUMEROS Y VISUALIZANDOSE EN LOS DISPLAYS (  OSEA K SE VAN ACTIVANDO SIMULTANEAMENTE LOS TRANSISTORES Y ENVIANDOSE LOS DATOS) QUIERO  QUE ME VAYA LEYENDO EL ESTADO DE DOS PULSADORES. Y NO SE DONDE PONER ESTA LECTURA SI  ENTRE EL MEDIO DE LA ACTIVACION DE LOS TRANSISTORES, SI ANTES DE QUE  PASE EL SEGUNDO ( YA QUE ES UN TEMPORIZADOR DE SEGUNDOS Y QUIERO QUE CUANDO PULSE UN PULSADOR EL TEMPORIZADOR SE PARE Y CUANDO VUELVA A ACTIVAR OTRO PULSADOR SIGA CONTANDO).   HE PENSADO EN ENVEZ DE HACER UNA RUTINA DE RETARDO DE 1 SEGUNDO IR VISUALIZANDO LOS DATOS DE LOS DISPLAYS DURANTE 1 SEGUNDO OSEA REPITIENDOLO TODO ASTA PASAR UN SEGUNDO Y DURANTE LA VISUALIZACION PONER LAS LECTURAS O NO SE SINO COMO HACERLO.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: multiplexion en 16f84
« Respuesta #5 en: 24 de Diciembre de 2006, 20:35:37 »
ah
yo lo pondria en la parte de cada pasada de los 5 displays asi no tendras q esperar todo el segundo para q el soft haga caso al pulsador.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #6 en: 27 de Diciembre de 2006, 12:45:05 »
esto ye imposible jaja, he acabo el programa le doy a copilar y 300 errores buff... todos me trae esto Address exceeds maximum range for this processor.   o este Argument out of range (040C not between 0000 and 03FF)    y no se como narices arreglar nada. he leido los pulsadores entre cada emision del dato  a los displays y va ser que ni arreglando esto va funcionar jaja. ya tengo el circuito hecho solo me falta programarlo y a este paso no lo acabo en la vida

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #7 en: 27 de Diciembre de 2006, 13:10:12 »
Que tal kudox,

Ojala te fuera posible poner el codigo y asi encontrar la mejor solucion a tu problema.

El error que estas obtneeniendo es porque tu codigo es demasiado grande y no cabe en la memoria del microcontrolador. El PIC16F84A solo tiene capacidad para almecanr un codigo de hasta 1024 lineas y tu ya has sobrepasado eso por eso te genera ese error. Tu proyecto no es muy complejo por lo que tu codigo no deberia ser tan extenso. Pero como te mencione antes si pudieras colocar tu codigo, asi te podremos ayudar mejor.

Saludos.

Elreypic.

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: multiplexion en 16f84
« Respuesta #8 en: 27 de Diciembre de 2006, 15:15:08 »
quizá lo primero que debes hacer es que se vean los números en el display y luego recién te ocupas de modificar el programa para atender los pulsadores.
suerte con tu proyecto!!
saludos
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #9 en: 27 de Diciembre de 2006, 18:09:59 »
bueno teneis razon creo que me he pasado con las lineas ( esque es mi primer programa bueno el segundo el primero era lo de encender y parpadear una led)  voy a poneros un trozo muy pequeñito que es lo mas importante del programa para que veais lo que va hacer.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: multiplexion en 16f84
« Respuesta #10 en: 27 de Diciembre de 2006, 18:29:53 »
pues no tengo tanta experiencia para entender todo tu programa con esa parte nomas, si puedes ponlo completo. :x
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #11 en: 30 de Diciembre de 2006, 09:23:17 »
jeje vale lo pongo entero pero aviso. no vais a entener nada.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: multiplexion en 16f84
« Respuesta #12 en: 30 de Diciembre de 2006, 12:57:20 »
Hombre una buena practica, incluso para ti es que pusieses algun pequeño comentario de lo que va haciendo el programa. Asi lo raro no es que nadie pueda saber el programa, lo realmente raro es que inclusso tu entiendas lo que realiza cada parte del programa y más si tienes errores lo dicficil sera encontrarlos.
fermin
Todos los días se aprende algo nuevo.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #13 en: 30 de Diciembre de 2006, 13:01:15 »
Que tal Kudox,

Efectivamente tu codigo es muy ilegible, y se nota que efectivamente no tienes experiencia en la programacion de micros ni en la electronica. Pero no te desanimes poco a poco aprenderas.
Este proyecto seria mas facil resolverlo con el timer interno del micro ya que con el puedes generar las rutinas de tiempo mientras se despliega el valor en los displays.
Ahora me quedan mas dudas.

1.- Como piensas programar el temporizador? ya que solo tienes 2 botones, uno para iniciar-continuar y otro para detener-reiniciar. Te haran falta por lo menos 2 botones mas para incrementar el valor del temporizador. O tenias otra idea en mente?

2.- Como quieres que sea el conteo? Es decir, en forma regreseiva (10,9,8,7,etc) o en forma progresiva (0,1,2,3,4,etc)? Aunque yo te sugiero que fuera en forma regresiva ya que asi es como todos entendemos los temporizadores.

Voy a tratar de hacer un codigo que te ayude con esto, pero tomara algo de tiempo ya que lo trabajaria en mis tiempos libres, que por lo general son escazos, pero vere que puedo hacer por ti.
Saludos

Elreypic

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #14 en: 01 de Enero de 2007, 18:17:18 »
muchas gracias a todos sobre todo a elreypic2 xd. bueno os cuento
como he dicho antes se trara de un reloj de ajedrez. 2 pics uno para cada temporizador. al principio nada mas arrancar hay que ingresar los tiempos  yo tenia en mente dos pulsadores uno para seleccionar pulsador (supongo que parpadearia ese display) y otro para incrementar. estos dos pulsadores irian conectados directametne a los dos pics asi al calcar cambiarian los tiempos a la vez en lso dos displays . luego os envio el esquema que tenia previsto.
cada pic tendra su boton de pausa y activo del otro contador osea del otro pic a traves de la conexion con el otro pic  y dos botones mas uno para un pausa global de los dos pulsadores para parar cuando kiera y otro para incrementar 30 segundos ( este ulto es una especie de interruptor que cuando esta activo, cada vez que se pulse el boton de parar y activar el otro temporizador, se le aumente 30 segundos es decir   ejemplo
50-49-48-46--se va decremntando el tiempo. 45-44-43  (se pulsa el boton de pausa y se pone a funcionar el otro pic)  a este ultimo k kedo en 43 +30=1min y 13seg   se para y empieza a contar el otro .. osea nada esto ye una tonteria ye cuadno se calca el boton se mira si esta activo boton y si esta activo aumenta 30 seg en la variable. si no, pues keda como esta y envia impulso al otro pic para que empiece a contar.

como he dicho os voy a madnar el esquema de la circuiteria para que entendais mejor lo que quiero hacer y me deis opiniones de como puedo programarlo o si me recomendais otra forma de conectar los botones.


 

anything