martes, 7 de abril de 2015

Conexión de shift register 74LS595 a 16F676

Cuando utilizamos un micro como el 16F676 los puertos disponibles deben aprovecharse al máximo, ya que su  número es reducido.
En este proyecto queremos medir una señal analógica (fotodiodo) y mostrar el valor en un display cuadruple de 7 segmentos.
Para ahorrarnos puertos podemos utilizar un registro de desplazamiento serial a paralelo (shift register) , en este caso el 74LS595, con el objeto de controlar los siete segmentos del display. La información se envia en modo serial al 74LS595 y este lo distribuye a los 7 segmentos. De esta forma en lugar de utilizar 7 pines utilizamos 3.

Los cuatro primeros pines del puerto C del micro se utilizan para seleccionar el display que corresponda, ya que vamos a utilizar multiplexado, es decir , seleccionamos un display y enviamos el dígito  respectivo, y asi en un ciclo sin fin.

A continuación tenemos el  programa en PICBASIC PRO:

 
 
La señal analógica proveniente del fotodiodo se lee diez veces para obtener un valor promedio.
Es importante comentar que se llama a la subrutina display en el lazo de lectura analógica ya que tenemos que refrescar el display.

La subrutina look determina que pines se encienden/apagan dependiendo del dígito a mostrar. Luego se utiliza la instaruccion Shifout para enviar el byte con la información al 74LS595. Los valores presentes en la instrucción Lookup corresponden a las conexiones entre las salidas del 74LS595 y los pines de los siete segmentos del display para cada dígito 0,1,2,3...9.

En la imagen el proyecto en protoboard: