This project implements a digital tachometer using the AT89C51 (8051) microcontroller. The system measures rotational speed by counting input pulses over a fixed time window and displays the RPM on a 16×2 LCD.
The design is fully simulated in Proteus and the firmware is written in Embedded C using Keil µVision.
- AT89C51 (8051) microcontroller
- External interrupt based pulse counting (INT0)
- Timer-based fixed gate time measurement
- 16×2 LCD interface (8-bit mode)
- RPM calculation and display
- Proteus simulation only (no physical hardware)
- Input pulses (simulated using a Proteus CLOCK source) are applied to the INT0 pin.
- The microcontroller counts pulses over a fixed time window using Timer0.
- RPM is calculated using: RPM = (Pulse Count × 60) / Gate Time (seconds)
- The calculated RPM is displayed on the LCD.
Minor variations in RPM are expected due to pulse quantization and simulation time-step limitations of Proteus.
- Keil µVision – Firmware development
- Proteus Design Suite – Circuit simulation
- AT89C51 – 8051 microcontroller
- GitHub – Version control
firmware/→ Embedded C source and HEX filetachometer.ctachometer.hex
simulation/→ Proteus project fileDigital_Tachometer.pdsprj
images/→ Circuit diagrams, block diagrams, and resultsblock_diagram.pngcircuit_diagram.pnglcd_output.png
- Open the Proteus project file from the
simulation/folder. - Load the compiled HEX file into the AT89C51 microcontroller.
- Run the simulation.
- Adjust the CLOCK frequency to observe RPM changes on the LCD.
- This project is intended for academic and learning purposes.
- Optical sensor behavior is not physically simulated; pulse input is electrically stimulated.
- Minor RPM variations are normal due to discrete pulse counting.
This project is open-source and available for educational use.