Sunteți pe pagina 1din 5

#include <16f877a.

h>
#device adc=10
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT,NOPROTECT
#USE DELAY (CLOCK=4000000)
#use standard_io (a)
#use standard_io (b)
#use standard_io (c)
#use standard_io (d)
#include <lcd.c>
void main(){
float a=0;//Se declara la flotante a para el voltaje 1
float b=0;//Se declara la flotante b para el voltaje 2
float c=0;//Se declara la flotante c para el voltaje 3
float a1=0;//Se declara la flotante a1 para el voltaje 1
float b1=0;//Se declara la flotante b1 para el voltaje 2
float c1=0;//Se declara la flotante c1 para el voltaje 3
int segundos;//Se declara el entero segundos para el reloj
int minutos;//Se declara el entero minutos para el reloj
int horas;//Se declara el entero horas para el reloj
int contador=1;//
int contador1=0;//
lcd_init();//Se inicializa la LCD
setUP_adc(ADC_CLOCK_INTERNAL);//
setup_adc_ports(AN0_AN1_AN3);//
while (true){//Se le pone un While
if(input(PIN_A4)==0 & input(PIN_A5)==0){
//PROCESO 1
set_adc_channel(0); //lea el canal 0
a=read_adc(); // valor es tomado del voltaje del puerto
a1=5.0*a/1023.0; //convercion analogo digital
lcd_gotoxy(1,1); //donde se imprime para mostrar en la LCD
printf(lcd_putc,"Vo1=%1.2f ",a1);//Lo que queremos que salga en la LCD
//PROCESO 4
output_high(PIN_C0);/////
delay_ms(20);///////////Esto es para lo que queremos que salga en el osciloscopi
o segun la configuracion el cual le dimos 20%
output_low(PIN_C0);////
delay_ms(80);/////////
}
//PROCESO 2
switch (contador){///////////////////
case 1://////////////////////////////
output_B(0B00000001);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 2: /////////////////////////////
output_B(0B00000011);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 3://////////////////////////////
output_B(0B00000111);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////

case 4: /////////////////////////////
output_B(0B00001111);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 5://////////////////////////////
output_B(0B00111111);////////////////Se hacen casos para hacer la secuencia de l
eds segun los numeros binarios
contador=contador+1;/////////////////
break;///////////////////////////////
case 6://////////////////////////////
output_B(0B01111111);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 7://////////////////////////////
output_B(0B11111111);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 8://////////////////////////////
output_B(0B00000000);////////////////
contador=1;//////////////////////////
break;///////////////////////////////
default://///////////////////////////
break;///////////////////////////////
}
if(input(PiN_A4)==0 & input(PIN_A5)==1){
//PROCESO 1
set_adc_channel(1); //Lea el canal 1
b=read_adc();// Valor es tomado del voltaje del puerto
b1=5.0*b/1023.0;
//convercion analogo digital
lcd_gotoxy(1,1); //donde se imprime para mostrar en la LCD
printf(lcd_putc,"Vo2=%1.2f
",b1);//Lo que queremos que salga en la LCD
//PROCESO 4
output_high(PIN_C0);//////
delay_ms(50);/////////////
output_low(PIN_C0);///////Esto es para lo que queremos que salga en el oscilosco
pio segun la configuracion el cual le dimos 50%
delay_ms(50);/////////////
}
//PROCESO 2
switch (contador){///////////////////
case 1://////////////////////////////
output_B(0B00000001);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 2://////////////////////////////
output_B(0B00000010);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 3://////////////////////////////
output_B(0B00000100);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 4://////////////////////////////
output_B(0B00001000);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////

case 5://////////////////////////////
output_B(0B00010000);////////////////
contador=contador+1;/////////////////Se hacen casos para hacer la secuencia de l
eds segun los numeros binarios
break;///////////////////////////////
case 6://////////////////////////////
output_B(0B00100000);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 7://////////////////////////////
output_B(0B01000000);////////////////
contador=contador+1;/////////////////
break;///////////////////////////////
case 8://////////////////////////////
output_B(0B10000000);////////////////
contador=1;//////////////////////////
break;///////////////////////////////
default://///////////////////////////
break;///////////////////////////////
}
if(input(PiN_A4)==1 & input(PIN_A5)==0){
//PROCESO 1
set_adc_channel(3); //Lea el canal 3
c=read_adc();// Valor es tomado del voltaje del puerto
c1=5.0*c/1023.0;
//Convercion analogo digital
lcd_gotoxy(1,1); //Donde se imprime para mostrar en la LCD
printf(lcd_putc,"Vo3=%1.1f
",c1);//Lo que queremos que salga en la LCD
//PROCESO 4
output_high(PIN_C0);//////
delay_ms(80);/////////////Esto es para lo que queremos que salga en el oscilosco
pio segun la configuracion el cual le dimos 50%
output_low(PIN_C0);///////
delay_ms(20);/////////////
}
//PROCESO 2
switch (contador){////////////////////
case 1:///////////////////////////////
output_B(0B00011000);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 2:///////////////////////////////
output_B(0B00100100);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 3:///////////////////////////////
output_B(0B01000010);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 4:///////////////////////////////
output_B(0B10000001);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 5:///////////////////////////////
output_B(0B01000010);/////////////////Se hacen casos para hacer la secuencia de
leds segun los numeros binarios
contador=contador+1;//////////////////
break;////////////////////////////////

case 6:///////////////////////////////
output_B(0B00100100);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 7:///////////////////////////////
output_B(0B00011000);/////////////////
contador=contador+1;//////////////////
break;////////////////////////////////
case 8:///////////////////////////////
output_B(0B11111111);/////////////////
contador=1;///////////////////////////
break;////////////////////////////////
default://////////////////////////////
break;////////////////////////////////
}
if(input(PIN_A4)==1 & input(PIN_A5)==1){
//PROCESO 1
lcd_gotoxy(1,1); //Donde se imprime para mostrar en la LCD
printf(lcd_putc,"Vo4=No hay Senal ");//Lo que queremos que salga en la LCD
//PROCESO 4
output_high(PIN_C0);//////
delay_ms(90);/////////////Esto es para lo que queremos que salga en el oscilosco
pio segun la configuracion el cual le dimos 50%
output_low(PIN_C1);///////
delay_ms(10);/////////////
//PROCESO 2
switch (contador){////////////////
case 1:///////////////////////////
output_B(0B00011000);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 2:///////////////////////////
output_B(0B00111100);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 3:///////////////////////////
output_B(0B01111110);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 4:///////////////////////////
output_B(0B11111111);/////////////Se hacen casos para hacer la secuencia de leds
segun los numeros binarios
contador=contador+1;//////////////
break;////////////////////////////
case 5:///////////////////////////
output_B(0B01111110);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 6:///////////////////////////
output_B(0B00111100);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 7:///////////////////////////
output_B(0B00011000);/////////////
contador=contador+1;//////////////
break;////////////////////////////
case 8:///////////////////////////

output_B(0B00000000);/////////////
contador=1;///////////////////////
break;////////////////////////////
default://////////////////////////
break;////////////////////////////
}
}
//delay_ms(95);
contador1=contador1+1;/////
if (contador1==10){////////
segundos=segundos+1;///////
contador1=0;///////////////
}//////////////////////////
if (segundos==60){/////////
minutos=minutos+1;/////////
segundos=0;////////////////Esta es la configuracin del reloj
}//////////////////////////
if (minutos==60){//////////
horas=horas+1;/////////////
minutos=0;/////////////////
}//////////////////////////
if (horas==12){////////////
horas=0;///////////////////
}
lcd_gotoxy(1,2); ////////// Donde se imprime para mostrar en la LCD
printf(lcd_putc"Reloj=%2u:%2u:%2u",horas,minutos,segundos);//Lo que queremos que
salga en la LCD
}
}

S-ar putea să vă placă și