TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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 ??
-
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!
-
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
#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
-
Porque no usas el ejemplo de CCS??
Se llama EX_EXPIO.C. :mrgreen:
-
Ejemplo (http://www.picbasic.co.uk/forum/showthread.php?t=10713)