A simple 2-bit calculator using the AT89C51 Microcontroller with Assembly Language Programming.
This project demonstrates a Basic Calculator using the AT89C51 Microcontroller, part of the 8051 MCU family. The calculator performs basic arithmetic operations and displays results on an LCD. It is controlled via a 4x4 keypad, making it a practical example for educational purposes and embedded systems projects.
The program is written in Assembly language, optimized for efficiency and speed, and the circuit is simulated using Proteus (Version 8.9). This repository includes:
The project has been successfully tested on both simulation and real hardware setups, ensuring reliability and accuracy.
AT89C51 Microcontroller | 8051 | Assembly Language | Simulation | Proteus | Microcontroller Programming | Basic Calculator
The LCD displays the results of the calculations, while the microcontroller processes inputs from the 4x4 keypad to perform arithmetic operations. The LCD provides a clear readout, making it easy for users to view results.
Each control component, such as the keypad, is connected to input pins on the microcontroller. Resistors ensure proper current control, preventing damage to the microcontroller and display.
git clone https://github.com/gmostofabd/AT89C51_Basic_Calculator.git
Compile the Assembly Code:
Open the AT89C51_Basic_Calculator.asm
file in MIDE-51 or any compatible IDE, and compile it to generate the HEX file.
Simulate in Proteus: Open Proteus Design Suite, load the provided simulation file, and run the simulation to observe the calculator’s functionality.
Program the Microcontroller: For real hardware applications, upload the HEX file to the AT89C51 microcontroller using a compatible programmer.
The 16x2 LCD displays the calculation results processed by the microcontroller. The data is updated in real time, providing immediate feedback on calculations.
For a deeper understanding of the circuit and code, explore the Proteus simulation and review comments within the assembly source file for explanations of specific code sections.
We welcome contributions! If you have suggestions for improvements or additional features, feel free to submit pull requests or open issues regarding any bug fixes, feature enhancements, or optimizations to the assembly code.
For any inquiries, feedback, or assistance, please reach out at mostofa.melab@gmail.com.
If you found this project helpful, please give it a ⭐ on GitHub! ```