main()
{
float limite,temp,temp2,resultado1,resultado2,lsb=5.12/512.0; //Variables para el resultado de la conversión AD
int tecla,tecla2,b,c=0,teclas_presionadas;//Aqui declaras las variables que utilizaras para guardar tecla,c y
//teclas presinadas (que se encarga de contar cuantas veces has presinado teclas)
float tare,kg;
output_bit( PIN_C0, 0);
output_bit( PIN_C1, 0);
SETUP_ADC_PORTS(NO_ANALOGS);//Puerta A Digital
set_tris_a(0xFF); //RA0-RA5 entradas
set_tris_b(0x00); //RB0-RB7 salidas
set_tris_c(0x00); //Puerta C salida
set_tris_e(0xff);
output_c(0x00); //Borra salidas
output_bit( PIN_C1, 1);
delay_ms(500);
output_bit( PIN_C1, 0);
lcd_init(); //Inicia la pantalla LCD
lcd_putc(" BIENVENIDOS");
delay_ms(3000);
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
lcd_putc("ESCRIBA EN Kg EL\nPESO DE LA CAJA");
delay_ms(3000);
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
printf(lcd_putc, " INGRESE PESO...\n Kg"); //Mensaje en el LCD
tonny: {
do {tecla=kbd_getc();} //Lee el teclado
while(tecla==0); //Espera que haya alguna pulsada
delay_ms(100);
lcd_gotoxy(8,2); //Posiciona el cursor
switch (tecla){
case '*':
delay_us(500);
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
printf(lcd_putc, " INGRESE PESO...\n Kg"); //Mensaje en el LCD
c=0;
goto tonny;
case '#':
delay_us(500);
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
printf(lcd_putc,"%i kg ",c); //Visualiza el resultado
delay_ms(2000);
goto tonny2;
default:
if(teclas_presionadas=2)goto tonny; //Si se han presionado mas de 2 teclas, saltar a la etiqueta tonny
lcd_putc(tecla); //Visualiza la tecla pulsada
c=c*10+tecla-'0'; //Cada vez que presionamos una tecla le restamos el valor
//ascii de '0' (48) al valor de la tecla, a esto le sumamos
//el valor que estaba guardado anteriormente en la variable c
//(el primer valor de c siempre es 0),multiplicmos c por 10,
//con lo que guardaremos el valor de las teclas presionadas.
teclas_presionadas++;
goto tonny;
}
}