MANEJO DEL C.I. 74HC164 Y DISPLAY
2 participantes
PICELECTRONICA :: Inicio :: Microcontroladores :: Microchip :: CCS
Página 1 de 1.
MANEJO DEL C.I. 74HC164 Y DISPLAY
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 . 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.
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.
Espero que les sirva y nos sufran como yo al querer entenderlo http://www.4shared.com/rar/bUmLl-eo/74hc164.html
- 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);
}
}
}
Espero que les sirva y nos sufran como yo al querer entenderlo http://www.4shared.com/rar/bUmLl-eo/74hc164.html
FREDDYQT- Usario Nuevo
- Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru
Re: MANEJO DEL C.I. 74HC164 Y DISPLAY
Buen ejemplo fredy, espero poder utilizarlo en proton para ver si logro mis objetivos, en estos días si me da tiempo lo intentare
Temas similares
» Manejo del Display de 7 Segmentos en CCS
» PIC Y DISPLAY A.C.-MANEJO BASICO
» Manejo de Leds en CCS
» Manejo de LCD 16x2
» Manejo de LCD 20x4
» PIC Y DISPLAY A.C.-MANEJO BASICO
» Manejo de Leds en CCS
» Manejo de LCD 16x2
» Manejo de LCD 20x4
PICELECTRONICA :: Inicio :: Microcontroladores :: Microchip :: CCS
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.