What is the difference between a microprocessor and a microcontroller? Give one product where you would choose each.
Show hints
Think about what is on the chip besides the CPU.
Show the explanation
Model answer.
A microprocessor is essentially a CPU on a chip. To build a working system you add external RAM, non-volatile storage, timers and I/O controllers. A microcontroller puts a CPU together with RAM, flash memory, timers, ADCs, GPIO and serial peripherals (UART, SPI, I²C) on a single chip.
Key differences
- Integration: A microprocessor needs many external chips. A microcontroller is a near-complete computer on one chip.
- Purpose: Microprocessors are built for general-purpose, high-performance computing (laptops, servers). Microcontrollers are built for dedicated control tasks (a washing-machine controller, a sensor node).
- Performance and memory: Microprocessors run at GHz speeds with GBs of external RAM and usually run a full operating system. Microcontrollers typically run at tens to a few hundred MHz with KBs to a few MBs of on-chip memory, often bare-metal or with a small RTOS.
- Power and cost: Microcontrollers are cheaper and consume much less power, with sleep modes in the microamp range, which suits battery devices.
- Real-time behaviour: Microcontrollers respond to interrupts with short, predictable latency, which is important for control loops.
Examples
- Microcontroller: A digital thermostat, a motor-speed controller, or an energy-meter front end. An 8051, AVR (as in Arduino Uno) or ARM Cortex-M part is typical.
- Microprocessor (or application processor): A device that runs Linux with a display and networking stack, such as a smart-TV box or an industrial HMI.
Nuance worth mentioning. Modern SoCs blur the line: a Raspberry Pi uses an application processor SoC with integrated peripherals, yet it still relies on external RAM and storage and runs a full OS, so it behaves more like a microprocessor system.
Likely follow-up. "What is the difference between Harvard and von Neumann architecture?" Harvard uses separate buses for program and data memory (common in microcontrollers); von Neumann shares one memory and bus.
Original UniCircle question. Last reviewed 28 Oct 2026.
