TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: andres9415 en 06 de Abril de 2013, 23:19:09
-
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
-
bueno jajajjaa me autorespondo y ya pude hacer eso ahora si alguien puede algua idea de como si por ejemplo salo 5 este prenda un led rojo GRACIAS
-
no entiendo muy bien tu ultima pregunta pero segun te entiendo es si sale el numero 5 o alguna operacion da 5 enceder un led no lo podrias hacer con un if y mandar un 1 logico al pin correspondiente donde esta el led . :lol: