TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: darck_khronos en 18 de Diciembre de 2009, 20:24:31

Título: Algun Ejemplo con la 74ls165 y un pic
Publicado por: darck_khronos en 18 de Diciembre de 2009, 20:24:31
Disculpen de casualidad alguien tiene algun ejemplo usando el convertidor paralelo serial con algun pic ??
Título: Re: Algun Ejemplo con la 74ls165 y un pic
Publicado por: AKENAFAB en 18 de Diciembre de 2009, 21:04:40

Que problemas tienes con el registro??

Solo tienes tus 8 bits en las entradas , cargas el registro con SH/LC, luego haces clock para obtener el dato serialmente.

Para entenderlo mejor pruebalo en proteus es muy sencillito .

Saludos compa!
Título: Re: Algun Ejemplo con la 74ls165 y un pic
Publicado por: AKENAFAB en 18 de Diciembre de 2009, 21:57:18
Hola pana Kronos!

Aqui te dejo este pequeño programita , lo acabo de realizar , ya lo simule y funciona bien.

NO agregue ningun retardo entre camios e clock de ALto a Bajo y esas cosas , ya que son de ns(nanosegundos), si eso no te sirve solo tendria sque agegarlos por si cada instruccion va mas de 20ns.

EL pin Ser lo conecto a la entrada A , lo que seria el bit mas bajo.

(http://img697.imageshack.us/img697/1885/74hc165.jpg)

http://img697.imageshack.us/img697/1885/74hc165.jpg

Código: [Seleccionar]

#include <16f88.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,MCLR
#use delay(clock=8000000)

#use fast_io(A)
#use fast_io(B)


#Define Clock  Pin_A0
#Define INH    Pin_A1
#Define SH_LD  Pin_A2
#Define Ser_In Pin_A3


int registro=0;

void paralelo_serie();

void main(){

         output_a(0x07);       //latch
         output_b(0);           //latch
        
         set_tris_a(0x08);     //RA3 es esntrada
         set_tris_b(0);

      while(1){
      paralelo_serie();
      }
        

}//end main


void paralelo_serie(){

int x;
         Output_low(SH_LD);      //Cargamos Datos
         Output_high(SH_LD);     //Habilitamos desplazamiento de datos
         Output_low(INH);        //Habilitamos Clock

         for(x=8;x>=1;x--){      
         if(input(Ser_In))bit_set(registro,x-1);      //Si el dato es 1 , s epone a 1 el bit correspondiente
         else bit_clear(registro,x-1);                //Caso contrario se pone a 0 el bit
         output_low(Clock);                  
         output_high(Clock);                          //Clock para desplazar siguiente bit
         delay_ms(10);                                //retardo solo para visualizacion , no necesario
         }
        
         output_high(INH);                            //deshabilitamos clock
         output_b(registro);                          //Visualizamos en el puerto B
         delay_ms(1000);
}//funcion  
Título: Re: Algun Ejemplo con la 74ls165 y un pic
Publicado por: MGLSOFT en 19 de Diciembre de 2009, 09:37:09
Porque no usas el ejemplo de CCS??
Se llama EX_EXPIO.C. :mrgreen:
Título: Re: Algun Ejemplo con la 74ls165 y un pic
Publicado por: alexysar en 19 de Diciembre de 2009, 23:44:21
Ejemplo (http://www.picbasic.co.uk/forum/showthread.php?t=10713)