0% encontró este documento útil (0 votos)
454 vistas7 páginas

Diagrama de Flujo para Calculadora PIC

Este documento presenta un informe sobre un programa de calculadora desarrollado para un microcontrolador PIC. El programa permite ingresar dos números, seleccionar una operación matemática y mostrar el resultado en una pantalla LCD. Incluye el diagrama de flujo, código fuente en C y un circuito de simulación en Proteus. En las conclusiones, se indica que el programa traduce las instrucciones en lenguaje de humanos a secuencias binarias de 0s y 1s para que el microcontrolador pueda ejecutar los cálculos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • módulo de entrada,
  • programación embebida,
  • bucles,
  • desarrollo de software,
  • depuración,
  • tipos de datos,
  • programación C,
  • salida de datos,
  • interacción usuario,
  • circuitos electrónicos
0% encontró este documento útil (0 votos)
454 vistas7 páginas

Diagrama de Flujo para Calculadora PIC

Este documento presenta un informe sobre un programa de calculadora desarrollado para un microcontrolador PIC. El programa permite ingresar dos números, seleccionar una operación matemática y mostrar el resultado en una pantalla LCD. Incluye el diagrama de flujo, código fuente en C y un circuito de simulación en Proteus. En las conclusiones, se indica que el programa traduce las instrucciones en lenguaje de humanos a secuencias binarias de 0s y 1s para que el microcontrolador pueda ejecutar los cálculos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • módulo de entrada,
  • programación embebida,
  • bucles,
  • desarrollo de software,
  • depuración,
  • tipos de datos,
  • programación C,
  • salida de datos,
  • interacción usuario,
  • circuitos electrónicos

Informe Calculadora PIC

Nombre: Miguel Arguello

Diagrama de flujo
Programa PIC C

#include <16F877A.h>

//#fuses XT,NOWDT,NOPROTECT,NOLVP

#use delay(clock= 4000000)

#include "lcd.c"

#include "kbd_LIB.c"

#include <string.h>

#INCLUDE <stdlib.h>

#INCLUDE <math.h>

float suma(float num1,float num2);

float resta(float num1,float num2);

float multi(float num1,float num2);

float divi(float num1,float num2);

char xoper();

void main()

lcd_init();
kbd_init();

port_b_pullups(TRUE);

char nume[10];

char actual=0;

char operador;

int i=0;

float num1;

float num2;

//set_tris_b(0x00);

set_tris_c(0xff);

//output_b(0x00);

//output_c(0x00);

while(true)

inicio:

while(actual!='+' && actual!='-' && actual!='*' && actual!='/' &&actual!= '^' && actual!='t')

if(actual=='.')

lcd_putc('\f');

operador=0;

strcpy(nume, "");

actual=0;

i=0;

goto inicio;

actual=getch;

lcd_putc(actual);

nume[i]=actual;
i++;

operador=actual;

num1=atoi(nume);

if (operador == '^'||operador == 't')

goto operar;

strcpy(nume, "");

actual=0;

i=0;

//while(actual!='+' && actual!='-' && actual!='*' && actual!='/')

while(actual!='=')

if(actual=='.')

lcd_putc('\f');

operador=0;

strcpy(nume, "");

actual=0;

i=0;

goto inicio;

actual=getch;

lcd_putc(actual);

nume[i]=actual;

i++;

//prfloatf(lcd_putc,"!%s",nume);

num2=atoi(nume);

float valor;
operar:

switch(operador)

case '+':

valor=suma(num1,num2);

printf(lcd_putc,"%f",valor);

break;

case '-':

valor=resta(num1,num2);

printf(lcd_putc,"%f",valor);

break;

case '*':

valor=multi(num1,num2);

printf(lcd_putc,"%f",valor);

break;

case '/':

valor=divi(num1,num2);

printf(lcd_putc,"%f",valor);

break;

case '^':

valor=(num1*num1);

printf(lcd_putc,"\f%f^2=%f",num1,valor);

break;

case 't':

valor=(tan(num1));

printf(lcd_putc,"\ftan(%f)=%f",num1,valor);

break;

delay_ms(5000);

num1=0;
num2=0;

lcd_putc('\f');

operador=0;

strcpy(nume, "");

actual=0;

i=0;

char xoper()

if(input(PIN_C0)==1)

return '^';

if(input(PIN_C1)==1)

return 't';

return '0';

float suma(float num1,float num2)

return (num1+num2);

float resta(float num1,float num2)

return (num1-num2);

}
float multi(float num1,float num2)

return (num1*num2);

float divi(float num1, float num2)

if(num2==0)

return 0;

else

return (num1/num2);

Circuito Proteus

Conclusiones

Se concluye que para obtener el resultado es un lenguaje de 0 y 1 que el programa lo


interpreta y crea las secuencias correctas.

También podría gustarte