Project brief
This project implements a small arithmetic calculator around an 8086 microprocessor and an 8255 programmable peripheral interface. The source combines a Proteus circuit, a program-control flowchart and an assembly listing to explain the path from keypad input to a displayed result. The documented code reads the first operand, checks the selected operation, reads the second operand and branches to addition, subtraction, multiplication or division. Input and display functions use explicitly assigned port addresses, while status bits are inspected as part of the I/O sequence. A lookup table translates keypad positions into digits or operator selections. Results are stored in a byte and the display logic separates one-digit and two-digit cases, illustrating the connection between arithmetic instructions and peripheral control. The circuit brings together the processor, support logic, keypad interface and two seven-segment displays. The report also discusses single-step debugging with EMU8086 and register inspection as a way to diagnose the program. The evidence supports an educational microprocessor and assembly-integration case, with two single-digit operands as the stated implementation scope. Several prose descriptions go beyond the supplied listing, and some screenshot captions contain arithmetic mistakes. Accordingly, advanced scientific functions, comprehensive error handling and benchmark accuracy are not treated as demonstrated outcomes. The public visuals preserve the actual circuit and source-code structure without repeating those unsupported claims.
The engineering challenge
Coordinate keypad entry, operator selection, arithmetic execution and display output using low-level register and port operations.
Engineering approach
- Connect the 8086, interface devices, keypad and seven-segment displays in a Proteus schematic.
- Define the data variables, keypad lookup table and 8255 port addresses in assembly.
- Poll status bits and read the operand–operator–operand sequence.
- Dispatch arithmetic operations and format one-digit or two-digit display output.
- Use the report’s flowchart and described single-step debugging process to trace program behavior.
Results & observations
The implementation description and byte-based operand variables establish this bounded calculator scope.
ADD, SUB, MUL and DIV branches are present in the supplied assembly listing.
PORTA, PORTB, PORTC and the control-word register are assigned 200h, 202h, 204h and 206h respectively.
The listing selects separate output routines according to the stored result’s size.
Features & capabilities
- Assembly-language arithmetic
- 8255 peripheral interfacing
- Keypad lookup table
- Status-bit polling
- Seven-segment display control
- Instruction-level debugging discussion
Software & engineering tools
8086 assembly, Proteus, 8255 PPI, EMU8086


