Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <16F877a.H>
#device ADC=10
#fuses XT, NOWDT, NOPROTECT, PUT, NOLVP
#use delay(clock = 4000000)
#use fast_io(c)
void BINBCD();
#include <lcd.c>
#include <kbd1.c>
char T,cont=2,TECLA[2];
float LT,PT;
Void main()
{
setup_adc(ADC_CLOCK_INTERNAL);
lcd_gotoxy(7,2);
loop: T=kbd_getc();
if (T=='\0')
goto loop;
else
lcd_putc('\*'); //Muestra * en vez de los digitos.
TECLA[cont-1]=T;
--cont;
if(cont!=0)
goto loop;
else
cont=2;
if ((TECLA[1]=='8')&&(TECLA[0]=='7'))
goto TX;
else
DELAY_MS(1000);
PRINTF(LCD_PUTC,"\fClave Incorrecta");
delay_ms(2000);
goto Inicio;
TX: setup_adc_ports(AN0_AN1_AN3);
delay_ms(500);
set_adc_channel(1);
delay_us(20);
LT=read_adc();
setup_adc_ports(AN0_AN1_VSS_VREF);
delay_ms(500);
set_adc_channel(0);
delay_us(20);
PT=read_adc()/2;
PRINTF(LCD_PUTC,"\fNIVEL=%1.1f cm\n",LT);
PRINTF(LCD_PUTC,"\PRESION=%1.1f psi",PT);
if (LT>=50)
{
output_high(ALARMA);
goto TX;
}
else
output_low(ALARMA);
goto TX;