TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado 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.
-
Hola leon_pic . mira este post (http://www.todopic.com.ar/foros/index.php?topic=8427.0) a ver si te sirve.
Salu2
Pedro
-
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
-
Muchas gracias por la información. Está muy buena. no lo había visto. Salu2. Leo
-
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