#include "C:\Librerias MikroC\74164_MikroC.h"
// Pines intercambiables según necesidades del usuario.
#define ena_ser PORTA.F3 // Pin HABILITACIÓN.
#define ckl_ser PORTA.F4 // Pin RELOG.
#define dat_ser PORTA.F5 // Pin DATOS.
// Declaramos la función.
char lee_entradas();
char lee_entradas() {
char contador,ei,resultado;
ckl_ser = 1; // Pone el pin de ckl a nivel bajo.
ena_ser = 0; // Guarda el estado de las entradas.
ena_ser = 1; // Habilita al 74165 para recibir nuevos datos.
ei = 0;
for(contador=1;contador<=8;++contador) { // Genera clock para hacer el corrimiento de bits de la estructura.
if(dat_ser==1){ei+=1;}
ei<<1;
ckl_ser = 0; // Pone a nivel bajo el pin de ckl.
ckl_ser = 1; // Pone a nivel alto el pin de ckl.
}
resultado = ei;
return(ei);
ena_ser = 0;
}
void main() {
int i;
TRISA = 0b10000;
TRISB = 0x00;
while(1) {
i = lee_entradas();
output_74164(i);
}
}