PICELECTRONICA
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

MANEJO DEL C.I. 74HC164 Y DISPLAY

2 participantes

Ir abajo

MANEJO DEL C.I. 74HC164 Y DISPLAY Empty MANEJO DEL C.I. 74HC164 Y DISPLAY

Mensaje  FREDDYQT Lun Abr 30, 2012 8:17 pm

Cerveza Buenas! .. bueno ahora vengo con un programa que se trata de un simple contador de 0-9 en forma ascendente, básico para explicar el funcionamiento del circuito integrado 74HC164, solo utilizaremos dos pines de el PIC el pin 8(CLOCK) y el 1,2(DATA) mirando la hoja de datos estos dos ultimos pines siempre deben ir juntos Cool . Para mandar un uno a la salida de este circuito necesitamos poner a 1 DATA, luego a 0 CLOCK y x ultimo a 1 CLOCK asi obtenemos un cero a la salida , PARA poner un 0 a la salida, hacemos lo mismo, pero ahora pones un 0 a DATA.
Código:

if(bit_test(numero[contador],i)==0)
            CERO();
            else
            UNO()

vamos a explicar lo que hacen estas lineas supongamos que numero[contador]=0b01100000 (que vendría a ser 96 en decimal) cuando i=0 compara el primer bit mas significativo(el ultimo bit de la derecha) de numero[contador]==0 como el ultimo bit es entonces ejecuta la funcion CERO(); y asi susecivamente, en el programa vemos que i se incrementa asta 8 ya que es lo maximo q se puede almacenar un byte ademas 8 son las salidas del 74HC164.

Código:

#include <16F628A.h>
#fuses MCLR,XT
#use delay (clock=4M)
#define RELOJ 48 // PIN B0
#define DATO 49  // PIN B1
void UNO();    //
void CERO();  // funciones respectivas para poner un  1 y 0  a la salida
// funcion para poner un  1 a la salida
void UNO(){
  output_high(DATO); // ponemos un  1 a DAT0
  delay_us(5);         
  output_low(RELOJ);  // ponemos un 0  RELOJ
  delay_us(5);
  output_high(RELOJ);
  delay_us(5);
            }
//funcion para poner un 0 a  la salida
void CERO(){
  output_low(DATO);
  delay_us(5);
  output_low(RELOJ);
  delay_us(5);
  output_high(RELOJ);
  delay_us(5);

}
// array de los numero del 0-9 en codigo decimal
// en la tabla vemos como conseguimos esto
int numero[10]={252,96,218,242,102,182,62,224,254,246};
//contador para incremetar el digito en el display
// variable i para hacer el recorrido es menor que  8
//porque las salidas son 8 pines
int contador,i;
void main()

  for(;;)
  {
      for(contador=0; contador<10;contador++) // del 0 al 9
    { 
       
        for(i=0; i<8;i++)
        {
            if(bit_test(numero[contador],i)==0)
            CERO();
            else
            UNO();                   
        }
        delay_ms(1000);                   
    }
  }
}


MANEJO DEL C.I. 74HC164 Y DISPLAY Scaled.php?server=402&filename=dibujoopr

MANEJO DEL C.I. 74HC164 Y DISPLAY Scaled.php?server=6&filename=cuadrou
bounce bounce bounce bounce bounce bounce bounce bounce bounce bounce bounce

Espero que les sirva y nos sufran como yo al querer entenderlo Cool http://www.4shared.com/rar/bUmLl-eo/74hc164.html
FREDDYQT
FREDDYQT
Usario Nuevo
Usario Nuevo

Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru

Volver arriba Ir abajo

MANEJO DEL C.I. 74HC164 Y DISPLAY Empty Re: MANEJO DEL C.I. 74HC164 Y DISPLAY

Mensaje  Electrobicho Lun Abr 30, 2012 8:23 pm

Buen ejemplo fredy, espero poder utilizarlo en proton para ver si logro mis objetivos, en estos días si me da tiempo lo intentare
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 35
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.