pues como dice mi titulo es hacer una calculadora con el pic 18f4550 yo se hacer las operaciones matemáticas y todo eso, el problemas es que necesito poder que al accionar un botón este de el resultado de la suma luego vuelva a presionar y aparesca la multiplicación y vuelva accionar y muetre la resta cabe decir que todo esto se hace con un mismo boton
les voy a dejar mi programacion
#include "C:\Users\User\Desktop\calculadora\main.h"
#include <LCD.c>
void main()
{
int a=0;
int b=0;
int c=0;
int opcion;
set_tris_b(0x00);
set_tris_a(0x01);
set_tris_c(0x00);
set_tris_d(0x00);
lcd_init();
while(TRUE)
{
if (input(PIN_A0)==0&&input(PIN_A1)==0)
{
a=a+1;
lcd_gotoxy(2,3);
printf (lcd_putc,"%d",a);
delay_ms(300);
lcd_putc('\f');
}
if (input(PIN_A0)==0&&input(PIN_A1)==1)
{
b=b+1;
lcd_gotoxy(5,3);
printf (lcd_putc,"%d",b);
delay_ms(300);
lcd_putc('\f');
}
opcion=1+opcion;
switch (input(PIN_A2)==0)
{
case 1 :
if (input(PIN_A2)>=20)
{
output_high(PIN_C1);
delay_ms(100);
output_low(PIN_C1);
delay_ms(100);
}
c=a+b;
lcd_gotoxy(1,1);
printf (lcd_putc,"%d",c);
delay_ms(100);
lcd_putc('\f');
opcion=0;
case 2:
c=a*b;
lcd_gotoxy(1,1);
printf (lcd_putc,"%d",c);
delay_ms(90);
lcd_putc('\f');
opcion=1;
case 3:
opcion=3;
c=a-b;
lcd_gotoxy(1,1);
printf (lcd_putc,"%d",c);
delay_ms(200);
lcd_putc('\f');
opcion=2;
}
}
}
basicamente la calculadora hace ya todo esto pero cuando presiono el boton me aparecen los tres resultado a la vez obviamente se que a los case les falta el break pero si lo coloco solo me muestra el resultado de la operacion
utilizo pic c por si acaso
les agradesco infinitamente y si el tema no va aquí perdon es que soy nuevo