0 Usuarios y 1 Visitante están viendo este tema.
#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_A3int 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 mainvoid 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