Autor Tema: Algun Ejemplo con la 74ls165 y un pic  (Leído 6685 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Algun Ejemplo con la 74ls165 y un pic
« en: 18 de Diciembre de 2009, 20:24:31 »
Disculpen de casualidad alguien tiene algun ejemplo usando el convertidor paralelo serial con algun pic ??

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Algun Ejemplo con la 74ls165 y un pic
« Respuesta #1 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!

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Algun Ejemplo con la 74ls165 y un pic
« Respuesta #2 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

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  
« Última modificación: 18 de Diciembre de 2009, 21:59:43 por AKENAFAB »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Algun Ejemplo con la 74ls165 y un pic
« Respuesta #3 en: 19 de Diciembre de 2009, 09:37:09 »
Porque no usas el ejemplo de CCS??
Se llama EX_EXPIO.C. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: Algun Ejemplo con la 74ls165 y un pic
« Respuesta #4 en: 19 de Diciembre de 2009, 23:44:21 »