Está en la página 1de 3

/*

* File: SENSOR HC-SR04.c

* Author: JHON CASTIEL

* Created on 19 de julio de 2020, 04:14 PM

*/

#include <xc.h> // incluye los registros de nuestro pic16f877a

#include <stdio.h> // permite usar la funcion "printf"

#include "ZLCD.h" // libreria del lcd

#pragma config CP = OFF // proteccion del codigo apagado

#pragma config DEBUG = OFF // modo de depuracion apagado

#pragma config WRT = OFF // protege la memeoria del programa

#pragma config CPD = OFF // protege la epron

#pragma config LVP = OFF // programacaion a bajo voltaje apagado

#pragma config BOREN = OFF // habilita el reset

#pragma config PWRTE = ON //temporizaion de espera de inicio

#pragma config WDTE = OFF // perro guardian

#pragma config FOSC = XT // oscilador

void main(void)

unsigned int distancia;

unsigned int medicion;

TRISDbits.TRISD0 =0; //RD1 ENTRADA PIN (ECHO)

TRISDbits.TRISD1=1; // RD0 PIN (TRIGGER)

lcd_init();// inicializa el LCD

lcd_gotoxy(1,1);// se escribe en el eje x1 y Y1


printf(" JHON VALLEJOS");// printf sirve para Realizar la preparación de la información, es
decir le da un formato a los datos para que estos

lcd_gotoxy(2,2); //sirve para escribir en el x2 y y2

printf("DISTANCIA:");

//lcd_putc(LCD_CLEAR_DISPLAY );

//__delay_ms(1000);//

while(1)

TMR1H = 0; // Establece el valor inicial del temporizador

TMR1L = 0; // Establece el valor inicial del temporizador

RD0 = 1; //TRIGGER EN ALTO

__delay_us(10); //TIEMPO DE ESPERA

RD0 = 0; //TRIGGER EN BAJO

while(RD1 == 0);

TMR1ON = 1;

while(RD1 == 1);

TMR1ON = 0;

medicion = ((TMR1H << 8) | TMR1L);

distancia = medicion/58;

lcd_gotoxy(2,2);

printf("DISTANCIA: %.5d", distancia);

// __delay_ms(3000);

//lcd_putc(LCD_CLEAR_DISPLAY );
}

return;

void putch(char dato) // se utiliza esta funcion para enviar la informacion al dispositivo de
salida

lcd_send_byte(1, dato);

También podría gustarte