Calculadora 32 Dígitos

Essa é uma calculadora básica de quatro operações + - x /, só que possui 32 dígitos.


O circuito principal:



Circuito dos módulos dos displays, onde foram cascateados 4 módulos:






Placa:

 





O programa principal que faz os cálculos roda num Atmega328 com cristal de 20MHz. A soma, subtração e multiplicação são baseados nas instruções do microcontrolador próprias para isto, com algoritmos simples de variáveis de 8 bits que são cascateadas utilizando o bit "vai 1", porém, para a divisão, foi eleborado um algorítmo específico a nível de bits e, consequentemente, ficou um pouco mais lento:

 



Aqui o dividendo 8 é multiplicado várias vezes por 10 até o fim da escala, logo antes de transbordar. A quantidade dos 10s multiplicados irá determinar o ponto do quociente, nesse caso 1000 ou três casas decimais. Depois o divisor é multiplicado várias vezes por 2 até o último valor logo menor que o dividendo. A quantidade de 2 como potência de uma base também de 2 vai ser um termo que será somado depois para se chegar ao quociente da divisão, sendo o primeiro termo 2 elevado a 10. Subtrai-se então o dividendo do divisor e o resultado é o novo dividendo. Novamente o divisor é multiplicado várias vezes por 2 como feito anteriormente. O ciclo pára quando o último dividendo for menor que o divisor. Soma-se então os termos citados chegando assim no resultado da divisão.

 

Vídeo:

 




Programas para o AVRStudio:

https://drive.google.com/file/d/1-4be42jfJVkqa-cdj0OTr3nKS2rTbq5l/view?usp=share_link


Muitos testes intensivos foram realizados procurando bugs e, quanto a resultados errados não foram encontrados nenhum mas encontrei uma condição na subtração onde houve um travamento.


Comentários

Postagens mais visitadas deste blog

Gerador Aleatório

MP3

HD com relês