// calculadora 1.c - Criado pelo studio UNO 2.3
// 19 October 2022 5:28:06 pm
#include <uno.h>
// Declaracao das Variaveis
unsigned char numero1;
unsigned char numero2;
unsigned char operacao;
unsigned int resultado;
// Prototipos
void segundo(void);
void final(void);
void primeiro(void);
void operacaoum(void);
//Funcoes do Usuario
void segundo(void)
{
while(!(__ENTER_KEY)) {
if (__UP_KEY) {
if ((numero2 != 255)) {
numero2++;
}
__delay_us(50); while (__UP_KEY) { }; __delay_us(50);
}
if (__BOTTOM_KEY) {
if ((numero2 != 255)) {
numero2--;
}
__delay_us(50); while (__BOTTOM_KEY) { }; __delay_us(50);
}
__lcd_goto(0x7f, 5);
__lcd_puts("%c", numero2);
}
__delay_us(50); while (__ENTER_KEY) { }; __delay_us(50);
}
void final(void)
{
while(!(__ENTER_KEY)) {
if ((operacao == 0)) {
resultado = (numero1 + numero2);
}
if ((operacao == 1)) {
resultado = (numero1 - numero2);
}
if ((operacao == 2)) {
resultado = (numero1 * numero2);
}
if ((operacao == 3)) {
resultado = (numero1 / numero2);
}
__lcd_goto(0x7f, 9);
__lcd_puts("%u", resultado);
}
__delay_us(50); while (__ENTER_KEY) { }; __delay_us(50);
numero1 = 0;
numero2 = 0;
resultado = 0;
operacao = 0;
__lcd_goto(0x7f, 1);
__lcd_puts("000+000=00000");
}
void primeiro(void)
{
while(!(__ENTER_KEY)) {
if (__UP_KEY) {
if ((numero1 != 255)) {
numero1++;
}
__delay_us(50); while (__UP_KEY) { }; __delay_us(50);
}
if (__BOTTOM_KEY) {
if ((numero1 != 255)) {
numero1--;
}
__delay_us(50); while (__BOTTOM_KEY) { }; __delay_us(50);
}
__lcd_goto(0x7f, 1);
__lcd_puts("%c", numero1);
}
__delay_us(50); while (__ENTER_KEY) { }; __delay_us(50);
return;
}
void operacaoum(void)
{
while(!(__ENTER_KEY)) {
if (__UP_KEY) {
operacao++;
}
__delay_us(50); while (__UP_KEY) { }; __delay_us(50);
if (__BOTTOM_KEY) {
operacao--;
}
__delay_us(50); while (__BOTTOM_KEY) { }; __delay_us(50);
if ((operacao == 0)) {
__lcd_goto(0x7f, 4);
__lcd_puts("+");
}
if ((operacao == 1)) {
__lcd_goto(0x7f, 4);
__lcd_puts("-");
}
if ((operacao == 2)) {
__lcd_goto(0x7f, 4);
__lcd_puts("*");
}
if ((operacao == 3)) {
__lcd_goto(0x7f, 4);
__lcd_puts("/");
}
if ((operacao == 4)) {
operacao = 0;
}
if ((operacao == 255)) {
operacao = 3;
}
}
__delay_us(50); while (__ENTER_KEY) { }; __delay_us(50);
return;
}
//Funcao Principal
void main(void)
{
__inicializa;
numero1 = 0;
numero2 = 0;
resultado = 0;
operacao = 0;
__backlight(__ON);
__lcd_goto(0x7f, 1);
__lcd_puts("000+000=");
while(TRUE) {
primeiro();
operacaoum();
segundo();
final();
}
while(TRUE) { }
}