TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Leon Pic en 21 de Febrero de 2007, 03:32:56

Título: mostrar datos en display
Publicado por: Leon Pic en 21 de Febrero de 2007, 03:32:56
Hola a los usuarios de este foro. Tengo el siguiente problema: estoy empezando a programar las series pic y no se demasiado. Necesito si alguien puede pasarme en codigo asambler un programa para mostrar en tres display (ánodo o cátodo común, es indistinto). Esto es lo que quiero: supongamos que adquiero por el puerto a del 16f84a un valor comprendido entre 0 y 255 (o sea, los 8 bit que posee una pocisión de memoria RAM) y estos mostrarlos en tres display como se menciono antes.
Mi primer intento fue leer desde el bit menos significativo y saber que número mostrar en el port b del micro, pero me vi imposibilitado de hacer que el programa discrimine el nro 9 al 10; y el 99 y 100, para poder darme cuenta en que momento encender el display correto. Aquí va una foto de como me gustaría que sea la conección (si es necesario modificarlo se hará)

Este cicuito lo pongo a modo de ejemplo. Lo saque de www.pablin.com.ar es un reloj para la casa o para el coche. (consejo, visiten esta página).

Bueno, espero haberme esplicado y espero respuestas. Desde ya muchas gracias. Como nota final, si es posible y no mucho pedir, explicar cada linea. Gracias.
Título: Re: mostrar datos en display
Publicado por: PalitroqueZ en 21 de Febrero de 2007, 11:35:44
Hola leon_pic . mira este post (http://www.todopic.com.ar/foros/index.php?topic=8427.0) a ver si te sirve.

Salu2
Pedro
Título: Re: mostrar datos en display
Publicado por: microcom en 21 de Febrero de 2007, 15:25:44
caballero lo que tendrias es que decodificar el valor que obtienes del puerto.

o sea b'00100000'= 32
0 centenas
3 decenas
2 unidad


DECODIFICAR   CLRF   DECENAS
     DECODI                MOVLW   .100
      SUBWF   RESULTADO,1
      BTFSC   STATUS,0
      GOTO   CENTENA
      MOVLW   .100
      ADDWF   RESULTADO
YYY      MOVLW   .10
      SUBWF   RESULTADO,1
      BTFSC   STATUS,0
      GOTO   DECENA
      ADDWF   RESULTADO,0
      MOVWF   UNIDAD
                                CALL   VISUALIZACION
      GOTO   CAPTURA

CENTENA      INCF   CENTENAS,1
      GOTO    DECODI
      
DECENA   INCF   DECENAS,1
      GOTO   YYY


VISUALIZACION      NOP
         MOVF UNIDAD,W
         CALL    TABLA
         CLRF   PORTB
         MOVWF   PORTC
         MOVLW   B'00010000'
         MOVWF   PORTB
         CALL   RETARDO
   
         MOVF    DECENAS,W
RR         CALL   TABLA
         CLRF   PORTB
         MOVWF   PORTC
         MOVLW   B'00100000'
         MOVWF   PORTB
         CALL   RETARDO
                                   MOVF    CENTENAS,0
         CALL   TABLA
         CLRF   PORTB
         MOVWF   PORTC
         MOVLW   B'01000000'
         MOVWF   PORTB
         CALL   RETARDO
         CLRF   PORTA
         CLRF   PORTC
         CLRF    PORTB

         RETURN
saludos
Título: Re: mostrar datos en display
Publicado por: Leon Pic en 24 de Febrero de 2007, 17:14:59
Muchas gracias por la información. Está muy buena. no lo había visto. Salu2. Leo
Título: Re: mostrar datos en display
Publicado por: fartet en 24 de Febrero de 2007, 18:09:20
Solo una salvedad, el puerto A del 16F84 solo tiene implementados 5 bits por lo que el valor máximo que podrás leer en él es 31