#include <18F452.h>
#device ADC=16

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)

#use delay(crystal=4000000)

#include<stdlib.h>
#include<STRING.h>
#include<LCD_420.c>
#include <math.h> 
#define RTC_SDA  PIN_C4
#define RTC_SCL  PIN_C3
#include<ds1307.c>
//int h1=1,f1=1,h2=1,f2=1,h3=1,f3=1,h4=1,f4=1,h5=1,f5=1,h6=1,f6=1,h7=1,f7=1,h8=1,f8=1,h9=1,f9=1,h10=1,f10=1,ha;
//int tr=0;

float pesocal=0.0,zero=0.0;

int teclado(){
int  valor=50;
do{
output_low(PIN_B3);
output_high(PIN_B0);
if(input(PIN_B4)==1)valor=14;
if(input(PIN_B5)==1)valor=0;
if(input(PIN_B6)==1)valor=15;
if(input(PIN_B7)==1)valor=13;
output_low(PIN_B0);
output_high(PIN_B1);
if(input(PIN_B4)==1)valor=7;
if(input(PIN_B5)==1)valor=8;
if(input(PIN_B6)==1)valor=9;
if(input(PIN_B7)==1)valor=12;
output_low(PIN_B1);
output_high(PIN_B2);
if(input(PIN_B4)==1)valor=4;
if(input(PIN_B5)==1)valor=5;
if(input(PIN_B6)==1)valor=6;
if(input(PIN_B7)==1)valor=11;
output_low(PIN_B2);
output_high(PIN_B3);
if(input(PIN_B4)==1)valor=1;
if(input(PIN_B5)==1)valor=2;
if(input(PIN_B6)==1)valor=3;
if(input(PIN_B7)==1)valor=10;
}while(valor==50);
return valor;
}

void Date(int x, int y){
int dia;
int mes;
int ano;
int dow;
ds1307_get_date(dia,mes,ano,dow);
   lcd_gotoxy(x,y);
   printf(lcd_putc, "        ");
   lcd_gotoxy(x,y);
   printf(lcd_putc,"%d/%d/%d",dia,mes,ano); //Primera Fila
}

void Hora(int x,int y){

int minuto;
int segundo;
int hora;
ds1307_get_time(hora,minuto,segundo);
   lcd_gotoxy(x,y);
   printf(lcd_putc, "        ");
   lcd_gotoxy(x,y);
   printf(lcd_putc,"%d/%d/%d",hora,minuto,segundo); //Primera Fila


}

int menu(){

int var,men=1;
  
      printf(lcd_putc, "\f");
   Date(8,3);
   lcd_gotoxy(9,4);
   printf(lcd_putc,"MENU");
do{

switch(men){
case 1:
   
    lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Comercializacion "); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"2. Dosificacion     "); //Segunda Fila

break;
case 2:

   lcd_gotoxy(1,1);
   printf(lcd_putc,"3. Config Reloj     "); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"4. Creditos         "); //Segunda Fila
 
break;

}
var=teclado();
delay_ms(400);
switch(var){
case 10:men=men+1;if(men==3)men=1;break;
case 11:men=men-1;if(men==0)men=2;break;
}
}while(var>4);
return var;
}

int menu2(){

    printf(lcd_putc, "\f");
   lcd_gotoxy(5,4);
   printf(lcd_putc,"DOSIFICACION");
int var=50;
do{
   lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Desparasitante"); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"2. Antibioticos"); //Segunda Fila
   lcd_gotoxy(1,3);
   printf(lcd_putc,"3. Suplementos"); //Tercera Fila

var=teclado();
}while(var>3);
return var;
}

int menu3(){

int var;
do{

   lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Albendazol"); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"2. Ivermentina"); //Segunda Fila
   lcd_gotoxy(1,3);
   printf(lcd_putc,"3. Levamisol"); //Tercera Fila
   lcd_gotoxy(1,4);
   printf(lcd_putc,"4. Febendazol");

var=teclado();
}while(var>4);
return var;
}

int menu4(){

int var;
do{

   lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Oxitetraciclina"); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"2. Estreptomicina"); //Segunda Fila
   lcd_gotoxy(1,3);
   printf(lcd_putc,"3. Pen-Procainica");
   lcd_gotoxy(1,4);
   printf(lcd_putc,"4. Pen-Benzatinica"); //Primera Fila

var=teclado();
}while(var>4);
return var;
}

int menu5(){

int var;
do{

   lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Complejo B (inye)"); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"2. Complejo B (oral)"); //Segunda Fila

   lcd_gotoxy(6,3);
   printf(lcd_putc,"Suplementos"); //Tercera Fila

var=teclado();
}while(var>4);
return var;
}

/*
void enviar(int d, int dd, int m, int mm, int ao, int aoa){
int d1,dd1,m1,mm1,ao1,aoa1;
 
      d1=d;
      dd1=dd;
      if(d==0){
      d1=10;
      }
      if(dd==0){
      dd1=10;
      }
      
      sci_PutByte(d1*16+dd1);
      __delay_ms(100);
      __delay_ms(200);
      
      m1=m;
      mm1=mm;
      if(m==0){
      m1=10;
      }
      if(mm==0){
      mm1=10;
      }   
      
      sci_PutByte(m1*16+mm1);
      __delay_ms(100);
      __delay_ms(200);
      
      
      ao1=ao;
      aoa1=aoa;   
      
      if(ao==0){
      ao1=10;
      }
      if(aoa==0){
      aoa1=10;
      }   
      
      sci_PutByte(ao1*16+aoa1);
      __delay_ms(100);
      __delay_ms(200);   

}
*/
/*
void esc_eeprom(int h, int hh, int m, int mm, int s, int ss){

   EEPROM_WRITE(0,h);
   EEPROM_WRITE(1,hh);
   EEPROM_WRITE(2,m);
   EEPROM_WRITE(3,mm);
   EEPROM_WRITE(4,s);
   EEPROM_WRITE(5,ss);

}
*/

int tabla_cinco(float peso){
int  valor=0;
if(peso<51){
valor=1;
}else if(peso<101){
valor=2;
}else if(peso<151){
valor=3;
}else if(peso<201){
valor=4;
}else if(peso<251){
valor=5;
}else if(peso<301){
valor=6;
}else if(peso<351){
valor=7;
}else if(peso<401){
valor=8;
}else if(peso<451){
valor=9;
}else if(peso<501){
valor=10;
}else if(peso<551){
valor=11;
}else if(peso<601){
valor=12;
}else if(peso<651){
valor=13;
}else if(peso<701){
valor=14;
}else if(peso<751){
valor=15;
}else if(peso<801){
valor=16;
}else if(peso<851){
valor=17;
}else if(peso<901){
valor=18;
}else if(peso<951){
valor=19;
}else if(peso<1001){
valor=20;
}else if(peso<1051){
valor=21;
}else if(peso<1101){
valor=22;
}else if(peso<1151){
valor=23;
}else if(peso<1201){
valor=24;
}else{
valor=25;
}
return valor;
}

int tabla_diez(float peso){
int  valor=0;
if(peso<101){
valor=1;
}else if(peso<201){
valor=2;
}else if(peso<301){
valor=3;
}else if(peso<401){
valor=4;
}else if(peso<501){
valor=5;
}else if(peso<601){
valor=6;
}else if(peso<701){
valor=7;
}else if(peso<801){
valor=8;
}else if(peso<901){
valor=9;
}else if(peso<1001){
valor=10;
}else if(peso<1101){
valor=11;
}else{
valor=12;
}
return valor;
}


int tabla_dos(float peso){
int  valor=0;
if(peso<21){
valor=1;
}else if(peso<41){
valor=2;
}else if(peso<61){
valor=3;
}else if(peso<81){
valor=4;
}else if(peso<101){
valor=5;
}else if(peso<121){
valor=6;
}else if(peso<141){
valor=7;
}else if(peso<161){
valor=8;
}else if(peso<181){
valor=9;
}else if(peso<201){
valor=10;
}else if(peso<221){
valor=11;
}else if(peso<241){
valor=12;
}else if(peso<261){
valor=13;
}else if(peso<281){
valor=14;
}else if(peso<301){
valor=15;
}else if(peso<321){
valor=16;
}else if(peso<341){
valor=17;
}else if(peso<361){
valor=18;
}else if(peso<381){
valor=19;
}else if(peso<401){
valor=20;
}else if(peso<421){
valor=21;
}else if(peso<441){
valor=22;
}else if(peso<461){
valor=23;
}else if(peso<481){
valor=24;
}else if(peso<501){
valor=25;
}else if(peso<521){
valor=26;
}else if(peso<541){
valor=27;
}else if(peso<561){
valor=28;
}else if(peso<581){
valor=29;
}else if(peso<601){
valor=30;
}else if(peso<621){
valor=31;
}else if(peso<641){
valor=32;
}else if(peso<661){
valor=33;
}else if(peso<681){
valor=34;
}else if(peso<701){
valor=35;
}else if(peso<721){
valor=36;
}else if(peso<741){
valor=37;
}else if(peso<761){
valor=38;
}else if(peso<781){
valor=39;
}else if(peso<801){
valor=40;
}else if(peso<821){
valor=41;
}else if(peso<841){
valor=42;
}else if(peso<861){
valor=43;
}else if(peso<881){
valor=44;
}else if(peso<901){
valor=45;
}else if(peso<921){
valor=46;
}else if(peso<941){
valor=47;
}else if(peso<961){
valor=48;
}else if(peso<981){
valor=49;
}else if(peso<1001){
valor=50;
}else{
valor=51;
}
return valor;
}

int tabla_tres(float peso){
int  valor=0;
if(peso<31){
valor=1;
}else if(peso<61){
valor=2;
}else if(peso<91){
valor=3;
}else if(peso<121){
valor=4;
}else if(peso<151){
valor=5;
}else if(peso<181){
valor=6;
}else if(peso<211){
valor=7;
}else if(peso<241){
valor=8;
}else if(peso<271){
valor=9;
}else if(peso<301){
valor=10;
}else if(peso<331){
valor=11;
}else if(peso<361){
valor=12;
}else if(peso<391){
valor=13;
}else if(peso<421){
valor=14;
}else if(peso<451){
valor=15;
}else if(peso<481){
valor=16;
}else if(peso<511){
valor=17;
}else if(peso<541){
valor=18;
}else if(peso<571){
valor=19;
}else if(peso<601){
valor=20;
}else if(peso<631){
valor=21;
}else if(peso<661){
valor=22;
}else if(peso<691){
valor=23;
}else if(peso<721){
valor=24;
}else if(peso<751){
valor=25;
}else if(peso<781){
valor=26;
}else if(peso<811){
valor=27;
}else if(peso<841){
valor=28;
}else if(peso<871){
valor=29;
}else if(peso<901){
valor=30;
}else if(peso<931){
valor=31;
}else if(peso<961){
valor=32;
}else if(peso<991){
valor=33;
}else if(peso<1021){
valor=34;
}else if(peso<1051){
valor=35;
}else if(peso<1081){
valor=36;
}else if(peso<1111){
valor=37;
}else if(peso<1141){
valor=38;
}else if(peso<1171){
valor=39;
}else{
valor=40;
}
return valor;
}


void config_relog(){
   
   int d,dd,m,mm,ao,aoa,h,hh,mi,mmi,s,ss;
   
   printf(lcd_putc, "\f");
   lcd_gotoxy(1,4);
   printf(lcd_putc,"Configuracion Reloj");
   delay_ms(500);
   lcd_gotoxy(9,2);
   printf(lcd_putc,"Fecha");
   delay_ms(500);
   lcd_gotoxy(1,1);
   printf(lcd_putc,"dd/mm/aa");
   
   d=teclado();
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%d",d);
   delay_ms(500);
   dd=teclado();
   lcd_gotoxy(2,1);
   printf(lcd_putc,"%d",dd);
   delay_ms(500);
   
   m=teclado();
   lcd_gotoxy(4,1);
   printf(lcd_putc,"%d",m);
   delay_ms(500);
   mm=teclado();
   lcd_gotoxy(5,1);
   printf(lcd_putc,"%d",mm);
   delay_ms(500);
     
   ao=teclado();
   lcd_gotoxy(7,1);
   printf(lcd_putc,"%d",ao);
   delay_ms(500);
   aoa=teclado();
   lcd_gotoxy(8,1);
   printf(lcd_putc,"%d",aoa);
   delay_ms(500);
   
   lcd_gotoxy(10,1);
   printf(lcd_putc,"OK");
   delay_ms(2000);
   
   printf(lcd_putc,"\f");
   lcd_gotoxy(1,4);
   printf(lcd_putc,"Configuracion Reloj");
   lcd_gotoxy(7,2);
   printf(lcd_putc,"24 Horas");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"hh/mm/ss");
   
   h=teclado();
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%d",h);
   delay_ms(500);
   hh=teclado();
   lcd_gotoxy(2,1);
   printf(lcd_putc,"%d",hh);
   delay_ms(500);
   
   mi=teclado();
   lcd_gotoxy(4,1);
   printf(lcd_putc,"%d",mi);
   delay_ms(500);
   mmi=teclado();
   lcd_gotoxy(5,1);
   printf(lcd_putc,"%d",mmi);
   delay_ms(500);
     
   s=teclado();
   lcd_gotoxy(7,1);
   printf(lcd_putc,"%d",s);
   delay_ms(500);
   ss=teclado();
   lcd_gotoxy(8,1);
   printf(lcd_putc,"%d",ss);
   delay_ms(500);
   
   ds1307_set_date_time((d*10)+dd,m*10+mm,ao*10+aoa,5,h*10+hh,mi*10+mmi,s*10+ss);
   lcd_gotoxy(10,1);
   printf(lcd_putc,"OK");
   delay_ms(2000);
   
}

void msjs(){
   
   output_low(PIN_B0);
   output_high(PIN_B2);

printf(lcd_putc, "\f");
   lcd_gotoxy(5,1);
   printf(lcd_putc,"Universidad"); //Primera Fila
   lcd_gotoxy(3,2);
   printf(lcd_putc,"Santo Tomas Tunja"); //Segunda Fila
   lcd_gotoxy(8,3);
   printf(lcd_putc,"Diego"); //Tercera Fila
   lcd_gotoxy(6,4);
   printf(lcd_putc,"Silva Pico"); // Cuarta Fila
   delay_ms(2500);

printf(lcd_putc, "\f");
   lcd_gotoxy(9,2);
   printf(lcd_putc,"Fecha");
   Date(7,1);
   lcd_gotoxy(9,4);
   printf(lcd_putc,"Hora");
   for(int i=1;i<100;i++){
   Hora(7,3);
   delay_ms(50);
   }


}
   
float calpeso(){


//peso=8000.0*pow(((10000.0*((327675.0)-(5.0*read_adc())))/(5.0*read_adc())),(-1.288)); //Se guarda en la Variable Valor en valor convertido de Analogico en Digital  delay_ms(1); //para que se estabilice
//peso=(peso*1.6379)+0.0193;
pesocal=read_adc()*0.00213459;
pesocal=(85.753*pesocal) - 930.75-zero;
if(input(PIN_B5)==1){
if(pesocal>2){
zero=pesocal+zero;
}
if(pesocal<-2){
zero=pesocal+zero;
}
}
delay_ms(100);
return pesocal;
}

void albe(){
float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(5,1);
   printf(lcd_putc,"1. Albendazol");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");
   
    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   peso=calpeso();
    lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_cinco(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}


void inver(){
float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(5,1);
   printf(lcd_putc,"2. Ivermentina");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   peso=calpeso();
   lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_cinco(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);


}
void lev(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(5,1);
   printf(lcd_putc,"3. Levamisol");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_tres(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}
void feben(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(5,1);
   printf(lcd_putc,"4. Febendazol");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_diez(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi*5);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}


void despa(){

    int select;
printf(lcd_putc, "\f");
delay_ms(500);
   select=menu3();
   switch(select){
   case 1: albe();break;
   case 2: inver();break;
   case 3: lev();break;
   case 4: feben();break;
   }

}


void oci(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(2,1);
   printf(lcd_putc,"1. Oxitetraciclina");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_cinco(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi*5);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);
}


void estre(){

float peso=0.0;
printf(lcd_putc, "\f");

   lcd_gotoxy(2,1);
   printf(lcd_putc,"2. Estreptomicina");
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_tres(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}


void proca(){

float peso=0.0;
printf(lcd_putc, "\f");

   lcd_gotoxy(2,1);
   printf(lcd_putc,"3. Pen-Procainica");
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_dos(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}
void benza(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"4. Pen-Benzatinica"); //Primera Fila
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_dos(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}

void antibi(){

    int select;
printf(lcd_putc, "\f");
   delay_ms(500);
   select=menu4();
   switch(select){
   case 1: oci();break;
   case 2: estre();break;
   case 3: proca();break;
   case 4: benza();break;

   }

}

void cbi(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"1. Complejo B (inye)");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_cinco(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi*2);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);

}

void cbo(){

float peso=0.0;
printf(lcd_putc, "\f");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"2. Complejo B (oral)");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso (Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
peso=calpeso();
lcd_gotoxy(11,2);
   printf(lcd_putc,"%f",peso);
   delay_ms(200);
}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
int dosi=0;

dosi=tabla_diez(peso);
lcd_gotoxy(1,3);
   printf(lcd_putc,"Dosis=%dcm",dosi*10);
output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
   delay_ms(200);
   }
lcd_gotoxy(19,3);
   printf(lcd_putc,"OK");
delay_ms(500);


}

void suple(){

    int select;
printf(lcd_putc, "\f");
delay_ms(500);
   select=menu5();
   switch(select){
   case 1: cbi();break;
   case 2: cbo();break;

   }
}


void dosi(){
int select;
printf(lcd_putc, "\f");
delay_ms(500);
   select=menu2();
   switch(select){
   case 1: despa();break;
   case 2: antibi();break;
   case 3: suple();break;   
}

}


void peso(){


   float v=0;
   int p=0,pp=0,ppp=0,pppp=0;
   int ok=0;   
  

printf(lcd_putc, "\f");
   lcd_gotoxy(3,1);
   printf(lcd_putc,"COMERCIALIZACION");   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Peso(Kg)=");

    output_low(PIN_B3);
   output_high(PIN_B0);
   while(input(PIN_B7)==0){
v=calpeso();

delay_ms(100);
lcd_gotoxy(10,2);
   printf(lcd_putc,"%2.4f",v);
   delay_ms(300);

}
   lcd_gotoxy(19,2);
   printf(lcd_putc,"OK");
delay_ms(500);
   lcd_gotoxy(1,3);
   printf(lcd_putc,"Valor Kg=");
   
   
ir:   
   p=teclado();
   if(p>9){
 lcd_gotoxy(1,4);
   printf(lcd_putc,"Error");
   delay_ms(1000);
   lcd_gotoxy(1,4);
   printf(lcd_putc,"                    ");
goto ir;
}
lcd_gotoxy(10,3);
   printf(lcd_putc,"%d",p);


delay_ms(500);
ir2:   
pp=teclado();
if(pp>9){
   lcd_gotoxy(1,4);
   printf(lcd_putc,"Error");
   delay_ms(1000);
   lcd_gotoxy(1,4);
   printf(lcd_putc,"                    ");
goto ir2;
}

lcd_gotoxy(11,3);
   printf(lcd_putc,"%d",pp);

delay_ms(500);
   
ir3:
ppp=teclado();

if(ppp>9){
   lcd_gotoxy(1,4);
   printf(lcd_putc,"Error");
   delay_ms(1000);
   lcd_gotoxy(1,4);
   printf(lcd_putc,"                    ");
goto ir3;
}

lcd_gotoxy(12,3);
   printf(lcd_putc,"%d",ppp);

  delay_ms(500);


ir4:
   pppp=teclado();
  if(pppp>9){
  lcd_gotoxy(1,4);
   printf(lcd_putc,"Error");
   delay_ms(1000);
   lcd_gotoxy(1,4);
   printf(lcd_putc,"                    ");
goto ir4;
}

lcd_gotoxy(13,3);
   printf(lcd_putc,"%d",pppp);
   delay_ms(500);
   
   
   float resul=p*1000+pp*100+ppp*10+pppp;
   lcd_gotoxy(1,4);
   printf(lcd_putc,"Precio =");
   float precio=0.0;
   precio=resul*v;
   lcd_gotoxy(9,4);
   printf(lcd_putc,"%f",precio);
while(ok!=13){
 ok=teclado();
}
    lcd_gotoxy(19,2);
   printf(lcd_putc,"  ");
    lcd_gotoxy(19,4);
   printf(lcd_putc,"OK");
   delay_ms(2500);
   printf(lcd_putc, "\f");
/*
lcd_gotoxy(5,1);
   printf(lcd_putc,"Enviando Dato");
lcd_gotoxy(8,2);
   printf(lcd_putc,"......");
lcd_gotoxy(3,4);
   printf(lcd_putc,"COMERCIALIZACION");   
  delay_ms(2000);
*/
}

void main()
{
unsigned long valor=0;
lcd_init();
setup_adc(ADC_CLOCK_INTERNAL); //configura el converso
setup_adc_ports(AN0); //entrada 0 como analogica

set_adc_channel(0); // Lectura del canal 0
delay_ms(1);  //para que se estabilice
valor=read_adc(); //Se guarda en la Variable Valor en valor convertido de Analogico en Digital
delay_ms(1); //para que se estabilice

ds1307_set_date_time(27,01,17,5,23,05,0);


   lcd_gotoxy(8,1);
   printf(lcd_putc,"Inicio"); //Primera Fila
   lcd_gotoxy(3,2);
   printf(lcd_putc,"Bascula Ganadera"); //Segunda Fila
   lcd_gotoxy(6,3);
   printf(lcd_putc,"Universidad"); //Tercera Fila
   lcd_gotoxy(6,4);
   printf(lcd_putc,"Santo Tomas"); // Cuarta Fila
   delay_ms(2500);
   printf(lcd_putc, "\f");
   
   int select;
   
   while(true)
   {
   
   select=menu();
     printf(lcd_putc, "\f");
   switch(select){
   case 1: peso();break;
   case 2: dosi();break;
   case 3: config_relog();break;
   case 4: msjs();break;
   }
  /* 
valor=read_adc(); //Se guarda en la Variable Valor en valor convertido de Analogico en Digital
delay_ms(1); //para que se estabilice

printf(lcd_putc, "\f");
//int pos=teclado();
lcd_gotoxy(1,1);
printf(lcd_putc, "El valor=%d",segundo);
lcd_gotoxy(1,2);
printf(lcd_putc, "El valor=%Lu",valor);
//delay_ms(3000);
*/
   }
}
