Microcontrolador Calculadora
// configuração dos fusiveis
#fuses xt,nowdt,noprotect,put,brownout,nolvp,nocpd,
// xt = tipo oscilador
// wdt = watch dog time
// noprotect = proteção contra uplcad do programa
// put = timer up ligado
// brownout = reset por brown-out ligado
//nolvp = programação por baixa tensão desligada
// nocpd = libera a flash para gravar dados
// Neste bloco estão definidas as variáveis globais do programa.
// Este programa não utiliza nenhuma variável de usuário
// definção e inicialização dos port's
#use delay(clock=4000000,restart_wdt)
int calculadora = 0; int x = 0; int y = 0; int z = 0;
#use fast_io(a)
#use fast_io(b)
//0x hexadecimal e 0b binario
#byte porta = 0x05
#byte portb = 0x06
#bit botao_1 = porta.1
#bit botao_2 = porta.2
#bit botao_3 = porta.3
// segmento q vai acender
#bit g= portb.0
#bit f= portb.1
#bit a= portb.2
#bit b= portb.3
#bit c= portb.5
#bit d= portb.6
#bit e= portb.7
//as entradas devem ser associadas a nomes para facilitar a programação
void main()
{
set_tris_a (0b11111111); set_tris_b (0b00000000);
porta = 0x00; //limpa porta portb = 0x00; //limpa portb
while (true)
{
if (!botao_1)
{
calculadora = calculadora + 1;
while(!botao_1);
{}
} if (calculadora ==1)
{ a=0, b=0, c=0, d=0, e=0, f=0, g=0; a=0, b=1, c=1, d=0, e=0, f=0, g=0;
}
if (calculadora ==2)
{ a=1, b=1, c=0, d=1, e=1, f=0, g=1;
}
if (calculadora ==3)
{ a=1, b=1, c=1, d=1, e=0, f=0, g=1;
}
if (calculadora ==4)
{ a=0, b=1, c=1, d=0, e=0, f=1, g=1;
}
if (calculadora ==5)
{ a=1, b=0, c=1, d=1, e=0, f=1, g=1;
}
if (calculadora ==6)
{ a=1, b=0, c=1, d=1, e=1, f=1, g=1;
}
if (calculadora ==7)
{ a=1, b=1, c=1, d=0, e=0, f=0, g=0;
}
if (calculadora ==8)
{ a=1, b=1, c=1,