Uso compartido del portB de un 16F84A..¿es posible esto?

Hola a todos.
Vamos a ver si esto se puede hacer:

A un 16F84A le configuro el portB como entrada (las 8 lineas); a estas lineas me llega un byte procedente de un conversor A/D (ADC0804).

Mi programa convierte este byte en BCD (unidades,decenas).

Ahora quiero hacer lo siguiente:

Configuro el portB como salida y las 4 lineas bajas (RB0..RB3) las llevo a un SN74LS47 para las unidades y las 4 lineas altas (RB4..RB7) las llevo a otro SN74LS47 para las decenas.

Esto implicaria que a los pines del portB llegarian 2 cables (o pistas) unos son atendidos cuando el portB es de entrada y las otras cuando el portB es de salida.

¿ Esto es tecnicamente viable o es una alucinación mía?

Me imagino que me direis que cambie de PIC a uno con mas patas de E/S incluso a uno que tenga conversor integrado, pero ahora mismo no lo tengo.

Saludos.
 
Eso que tu describes se realiza con mucha frecuencia, si observas algun esquema que incorpore un display Lcd y pulsadores veras que hay pines que van conectados al mismo tiempo a los 2 elementos.

Incluso rizando el rizo puedes dar 3 funciones a un mismo pin:
Como entrada
Como salida activando por 1
Como salida activando por 0
 
Solo como información adicional, asegura que durante la lectura de tu dato proveniente del conversor A/D coloca el pin BI del 7447 a nivel bajo para que tu display este en off, por otro lado seria muy bueno que coloques un tristate en el bus de datos del conversor A/D (74245 o similar) para evitar que si tu conversor A/D tiene algun tipo de latch a la salida esto afecte tu lectura en el display al mezclarse las señales provenientes del puerto B cuando es salida y la salida misma del conversor.

Saludos
 
Hola de nuevo.
Sigo ultimando detalles de mi termometro.
Ya tengo hecho el programa para pasar de binario a BCD y funciona perfecto.
Voy a usar la tecnica que he comentado en este hilo de compartir el portB para entrada como salida.
Pero me ha surgido una duda.

Como estoy usando un LM35 como sensor de temperatura, éste devuelve 10mV/ºC, es decir a 0 grados me daria 0 mV, pero que pasa con las temperaturas negativas?, es decir, a -2ºC me devuelve -20mV?, ¿que byte me retornaria el A/D (quizas 253) ?

Saludos.
 
por que no lees la hoja de datos del lm35, segun recuerdo para que te de 0mv es cuando se encuentra en alguna temp por debajo de cero y requieres de un arreglo particular para usarlo de 0 grados a 100 grados. checalo
 
Atrás
Arriba