Obtener más puertos de un mismo PIC

Soy estudiante de ingeniería y para un proyecto de prácticas que estoy realizando en una empresa tengo la siguiente duda:
He realizado un diseño de un emulador de sondas de temperatura, el sistema tiene que enviar los códigos equivalentes que darían las sondas de temperatura digitales a un microcontrolador.
Mi problema es que empleo para esta aplicación un 16f84, y no tengo puertos suficientes para la aplicación. No quiero emplear un expansor de puertos como el pcf8574, busco una solución más barata. Tampoco puedo cambiar de micro a uno más grande, por lo que la solución que se me ocurrió fue la siguiente:
Los displays para representar la temperatura se me comen 8 patillas del micro, por lo que pensé en enviarlos vía serie y con un lach convertidor serie-paralelo hasta los displays. El integrado en el que pensé es 74ls164. Pero mi duda es como tengo que sincronizar el clock del micro y del convertidor o cuantas veces tiene que ser superior la frecuencia del convertidor. Bueno en general mi problema es que no he utilizado convertidores serie-paralelo con micros y desconozco como funcionan.
Os agradecería que alguien me explicara como sería el esquema o bien que solución tengo para obtener o librar más puertos.

1 Respuesta

Respuesta
1
Tengo una duda en tu pregunta, si me lo aclaras quizás pueda ayudarte.
¿Qué tipo de display estas usando? Son de 7 segmentos (Led'¿s) o LCD?
Aguardo respuesta.
Cgf.
Creo que estas usando dígitos de 7 segmentos, usas 4 bits (puertos) para enviarle el dato binario a un decodificador (posiblemente un 4051), y otros 4 bits para seleccionar el display que va a ser mostrado. Por eso es que ocupás 8 puertos.
Una vez construí para una empresa un reloj de 4 dígitos que además de mostrar la hora, mostraba la temperatura, cada 6 o 7 segundos cambiaba de hora para temp. Y viceversa, usaba un F84, y no usaba el decodificador de BCD a 7 segmentos, entonces usaba 7 bits para el dato, 4 bits para seleccionar el dígito a mostrar, un bit para los dos puntos de separación de horas y minutos, 3 bits para colocar el reloj en hora y un bit para la leer la temperatura, todo eso me da 16 bits, el F84 tiene solamente 13 puertos.
Lo que hice fue simple: la lectura de la temperatura y del teclado para colocar la hora, la controlaba por la interrupción, ahí (en la rutina de intrrup) cambiaba el modo de trabajo de algunos puertos, o sea, en el momento de mostrá el reloj eran salidas y en el momento de lectura eran entradas. Las interrup eran controladas por overflow del registro W, con eso y algunos diodos solucioné mi problema y el relojito quedó bárbaro.
Bueno ahora depende de ti ver como lo solucionas, con un poco de ingenio y algunas horas de insomnio lo vas a conseguir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas