Usando el CD4094 para manejar displays 7 segmentos

De Ucontrol
Saltar a: navegación, buscar

<keywords content="TTL 74Ls164N, electronica, circuito, pic, NE555, PIC BASIC, PIC SIMULATOR IDE, esquema, circuito impreso, proyecto, gratis, download, programa, CMOS, pin, e/s, i/o, ucontrol, PIC, 16F628a, 16f84a" /> <center>


Inicio Foro Revista uControl Circuiteca Microcontroladores Electrónica Básica Herramientas y Software Tutoriales Colaboradores Enlaces
¿Ya descargaste los ejemplares GRATUITOS de la Revista uControl? ¡No te los pierdas!.
<linkedimage>

wikipage=Dado electrónico con PIC tooltip=Dado electrónico con PIC img_src=Image:dado100.jpg img_width=150px img_alt=Dado electrónico con PIC </linkedimage>

Dado electrónico
<linkedimage>

wikipage=Como trucar un servo tooltip=Como trucar un servo img_src=Image:trucaservo150.jpg img_width=150px img_alt=Como trucar un servo </linkedimage>

¿Como trucar un servo?
<linkedimage>

wikipage=Comunicación inalámbrica entre PICs tooltip=Comunicación inalámbrica entre PICs img_src=Image:TXRX150.jpg img_width=150px img_alt=Comunicación inalámbrica entre PICs </linkedimage>

Comunicación inalámbrica
<linkedimage>

wikipage=CCS - Libreria de gráficos para GLCD K0108 tooltip=CCS - Libreria de gráficos para GLCD K0108 img_src=Image:GLCD-100.gif img_width=150px img_alt=CCS - Libreria de gráficos para GLCD K0108 </linkedimage>

Gráficos con CCS
<linkedimage>

wikipage=Funcionamiento de una matriz de LEDs tooltip=Funcionamiento de una matriz de LEDs img_src=Image:GNUxx.jpg img_width=150px img_alt=Funcionamiento de una matriz de LEDs </linkedimage>

Carteles de LEDs
Foroizq.jpg
Todos los articulos y proyectos de uControl tienen su lugar en el foro. Si tienes dudas o comentarios, busca o crea el hilo correspondiente, y tendrás una rapida respuesta.
Foroder.jpg
Usando el CD4094 para manejar displays 7 segmentos.

Introducción

Usando el CD4094

Siguiendo con el análisis comenzado en el artículo Registros de desplazamiento publicado en este mismo número, se estudiará el circuito integrado CD4094, de Fairchild semiconductor, que posee prestaciones similares al 74HC164N.


NOTA: Este artículo forma parte de la Revista uControl Numero 1.

Contenido


El CD4094

El CD4094 es un registro de desplazamiento de 8 bits, con salida tri-estado. Esto significa que disponemos de un mecanismo para aislar sus 8 pines de salida del resto del circuito. Los datos son desplazados serialmente con cada flanco de subida del reloj (CLOCK) y cada bit es transmitido al latch correspondiente con cada flanco de bajada del pin STROBE


200px
Diagrama de Conexión del CD4094.


Las características más destacables de este circuito integrado son:

  • Rango de voltaje: 3.0 V a 18.0 V
  • Compatibilidad con la familia TTL
  • Salida tri-estado


¿Por qué usar un registro de desplazamiento para un display 7-segmentos? Es muy sencillo: nos ahorramos varias líneas de entrada/salida. En el caso de usar un solo display se ahorran 5 pines, ya que se necesitan solo 3 líneas para controlar los 7 segmentos y el punto decimal. Y si necesitamos controlar un número mayor de display, el ahorro es mayor: las mismas tres líneas usadas para el control de un display permiten controlar todos los que necesitemos. ¿Interesante, verdad?

Para que el CD4094 pueda manejar un display 7 segmentos, tienen que haber unas señales de control establecidas, que podemos gestionarla con un microcontrolador. En este artículo usaremos el PIC16F84A.

Diagrama de tiempos

Para establecer las señales de control en el CD4094, es necesario estudiar su diagrama de tiempos:


Mapa tiempos.gif
Diagrama de tiempos.


La primera señal de control es DATA, que es el dato que enviaremos serialmente. Enviamos un flanco ascendente y luego un flanco descendente. En el instante que el CLOCK esté subiendo, el estado del DATA será reconocido como un dato válido por el CD4094

La señal de control STROBE se usa en caso de que queramos tener en los latch de salida los bits enviados por el PIC a medida que se van recibiendo.

Como se usará un display 7 segmentos, lo mejor es ver el dato completo una vez finalizada la transferencia. Entonces STROBE en un nivel alto mientras enviamos los datos. Con ello garantizamos que el display no muestre valores “extraños” hasta que no pongamos STROBE en bajo, instante que se transferirán los 8 bits completos a los latches de salida.

Por último tenemos el pin OUTPUT ENABLE. Este pin cumple la función del tercer estado del latch, el estado de alta impedancia. En este caso no lo usaremos. Generalmente se emplea en sistemas de buses, donde se conectan varios integrados a las mismas señales, permitiendo aislar un circuito de otro. Así que mantendremos este pin en un nivel alto.



El software

Una vez comprendido el funcionamiento del esquema de tiempos del CD4094, se procederá a escribir un programa para el microcontrolador PIC16F84A usando el compilador de lenguaje C de la empresa CCS:

// Usando el CD4094 para manejar 1 display 7 segmentos


#include <16F84A.h>
#fuses XT,NOPROTECT,NOWDT,PUT
#use delay(clock=4000000)

// Definición de pines de control
#define DATA PIN_A0
#define CLOCK PIN_A1
#define STROBE PIN_A2

// tabla de numeros constantes que contienen el correspondiente valor
// en 7 segmentos
int   const segmentos[16]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,
                           0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

// declaración de la función escribir_4094
void escribir_4094(int caracter);

// programa principal
void  main(){
   output_a(0x0);
   output_b(0x0);
   set_tris_a(0x0);
   set_tris_b(0x0);

  while(true){
      for(t=0;t<16;t++){
         escribir_4094(t);          // envía el números en hexadecimal al display 7-seg
         delay_ms(1000);
      }
   }
}

//**************************************************************
// Función escribir_4094
//
// Descripción: envía serialmente el datode 8 bits de acuerdo al 
// argumento caracter y activa las señales de control establecidas
// en el mapa de tiempos del CD4094
//
// datos de entrada: caracter un número entero
// datos de salida: ninguno
//**************************************************************
void escribir_4094(int caracter){
int contador_8;
   output_low(PIN_A0);
   output_low(STROBE);
   output_low(CLOCK);
   for(contador_8=0;contador_8<8;contador_8++){
      output_bit(DATA,bit_test(segmentos[caracter],contador_8));
      output_high(CLOCK);
      delay_cycles(1);
      output_low(CLOCK);
   }
   output_low(CLOCK);
   output_high(STROBE);
   delay_cycles(1);
   output_low(STROBE);
}



El esquema eléctrico

CD4094 1.gif
Esquema del circuito eléctrico.

Lista de componentes

Esta es la lista de componentes necesarios para el montaje:

  • 1 PIC16F84A
  • 1 CD4094
  • 1 Cristal de 4Mhz
  • 1 DISPLAY HD-H103
  • 2 Condensadores ceramicos de 22pF
  • 2 Condensadores ceramicos de 100nF
  • 1 Resistor de 100 ohms


Notas

Hay que tomar en cuenta la velocidad de operación del CD4094 y que las señales de control no deben ser menores al especificado por la hoja técnica (datasheet). En nuestro ejemplo estamos trabajando con una frecuencia de oscilación de 4MHz, esto es, 1uS por cada paso del contador de programa del microcontrolador, suficientes para los 0,666 uS mínimos que exige el CD4094 a 5V de alimentación.

Esto hay que considerarlo si se va a trabajar a niveles de tensión ó frecuencias muy altas.

Bibliografía consultada

  • Fairchild Semiconductor (1987). CD4094BC 8-Bit Shift Register/Latch with 3-STATE Outputs. Datasheet. Disponible en www.fairchildsemi.com

Glosario

  • Latch: Especie de buffer o memoria intermedia que almacena un estado binario y no cambia a menos que se le indique.
  • Tri-Estado: Tres estados lógicos permitidos por una compuerta digital estado alto, estado bajo y alta impedancia
  • Dash Point: Punto decimal que traen los displays 7 segmentos.


Este articulo forma parte de la Revista uControl #1
<linkedimage>

wikipage=Revista_Numero_0001 tooltip=uControl Revista #1 img_src=Image:RU-TAPA001.jpg img_width=100px img_alt=uControl Revista #1

</linkedimage>

NOTA DE TAPA : Construye tus circuitos impresos
Todo aficionado a la electrónica tarde o temprano se topa con la necesidad de fabricar sus propios circuitos impresos o PCB (por "Printed Circuit Board"). En general, esta tarea es vista como algo muy complicado, pero la podemos llevar a buen término, siguiendo los pasos explicados en el artículo.

Ademas: El relojito, Uso Practico del Pic12F675, PIC BASIC (PSI), Temporizadores programables, Herederos del LM386N, Fundamentos de la Transmisión Síncrona y mucho más.

Puedes descargar la Revista uControl desde aqui, de forma totalmente gratuita.


Autor

Palitroquez.jpg Datos del Autor
Nombre: Pedro (PalitroqueZ)
email: palitroquez@gmail.com
Ver los artículos de este autor. Página con el perfil del autor.

</center>
Cclicence.png

Este contenido se rige por la licencia de Creative Commons "Licencia Creative Commons Atribución-No Comercial-Sin Obras Derivadas 3.0". Para más información, véase la licencia en su forma reducida y completa.

Herramientas personales