medidor de distancia

Download Medidor de Distancia

If you can't read please download the document

Upload: anitayey

Post on 16-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Interesante codigo ccs

TRANSCRIPT

#include #FUSES NOWDT, NOPUT, INTRC_IO, NOMCLR, NOPROTECT, NOBROWNOUT, NOWRT#USE DELAY(internal = 8MHZ)#INCLUDE #DEFINE TRIG PIN_B1#DEFINE ECHO PIN_B2#DEFINE IMAN PIN_B3#DEFINE CALIBRACION 0INT START=0;INT16 TEMP=0, DIST=0;INT DISTANCIA(){/*LCD_PUTC("\f");LCD_GOTOXY(1,1);LCD_PUTC("CALCULANDO");LCD_GOTOXY(1,2);LCD_PUTC("DISTANCIA");DELAY_MS(1000);*/OUTPUT_HIGH(TRIG);DELAY_US(10);OUTPUT_LOW(TRIG);WHILE(INPUT(ECHO)==0){}SET_TIMER1(0);WHILE(INPUT(ECHO)==1){}TEMP=GET_TIMER1();DIST=(TEMP*0.017)+CALIBRACION;/*LCD_GOTOXY(1,1);LCD_PUTC("DISTANCIA ");LCD_GOTOXY(1,2);LCD_PUTC("CALCULADA ");DELAY_MS(1000);*/LCD_GOTOXY(1,1);LCD_PUTC("DISTANCIA ");LCD_GOTOXY(1,2);PRINTF(LCD_PUTC,"=%2LU CM ", DIST);DELAY_MS(500);RETURN DIST;}FLOAT TIEMPO(){RETURN TEMP;}#INT_EXT VOID COMIENZO(){IF (INPUT(PIN_B0)==0) START=1;}#INT_RBVOID LED(){ IF (INPUT(PIN_B7)==0) OUTPUT_TOGGLE(PIN_B4);}VOID MAIN (){LCD_INIT();PORT_B_PULLUPS(0B10000001);SET_TRIS_B(0B10001101);DELAY_MS(10);ENABLE_INTERRUPTS(INT_EXT);ENABLE_INTERRUPTS(INT_RB7);ENABLE_INTERRUPTS(GLOBAL);EXT_INT_EDGE(H_TO_L);SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_2);OUTPUT_HIGH(IMAN);LCD_GOTOXY(1,1);LCD_PUTC("CONSTANTE");LCD_GOTOXY(1,2);LCD_PUTC("GRAVITACIONAL");DELAY_MS(1000);LCD_PUTC("\f");LCD_GOTOXY(1,1);LCD_PUTC("INICIANDO");DELAY_MS(500);LCD_GOTOXY(1,1);LCD_PUTC("INICIANDO.");DELAY_MS(500);LCD_GOTOXY(1,1);LCD_PUTC("INICIANDO..");DELAY_MS(500);LCD_GOTOXY(1,1);LCD_PUTC("INICIANDO...");DELAY_MS(500);LCD_PUTC("\f");WHILE(TRUE){SWITCH (START) { CASE 0: LCD_GOTOXY(1,1); LCD_PUTC("PRESIONE BOTON"); LCD_GOTOXY(1,2); LCD_PUTC("PARA INICIAR"); DELAY_MS(200); BREAK; CASE 1: DIST=DISTANCIA(); //START++; BREAK; CASE 2: TEMP=TIEMPO(); START++; BREAK; /* CASE 3: CALCULO(); START=0; BREAK; */ }}}