🛒 Arduino, ESP32 & modules
Microchip PIC16F84: Mikroprosessorların qədim dastanı
4 HR AGOEmbedded

Microchip PIC16F84: An Epic from the Early Age of Microcontrollers

How a tiny 8‑bit PIC with 1K words of Flash became the "people’s microcontroller" of the late 1990s and quietly shaped the culture that later produced Arduino, STM32 and ESP32.

September 6, 20265 min read25 tags

In the late 1990s the Microchip PIC16F84 was not the fastest, the richest in peripherals, or the most elegant architecture. Yet for an entire generation of engineers and hobbyists it became the microcontroller – the first chip they blinked an LED with, the first one they accidentally bricked, and the first that made them feel they were programming "real hardware".

Why PIC16F84 was created

Before the 16F84, Microchip’s popular devices were the PIC16C5x and PIC16C84 families – OTP and EPROM-based parts. Development was painful:

  • OTP devices could only be programmed once; any firmware bug meant throwing the chip away.
  • EPROM devices had to be erased under a UV lamp for 15–20 minutes before reprogramming.

The industry was clearly moving toward electrically erasable Flash. Atmel was preparing its AVR line, but 8051 derivatives and many small MCUs were still stuck on EPROM/OTP.

PIC16F84 was Microchip’s answer: keep the familiar PIC16C84 architecture, but replace the program memory with Flash so it could be erased and reprogrammed in seconds. Combine that with a friendly DIP‑18 package and you get a perfect teaching and prototyping part.

Specs in the context of its era

By today’s standards the PIC16F84 looks tiny, but in the mid‑to‑late 90s it hit a sweet spot between cost, capability and simplicity:

  • Core: 8‑bit Harvard RISC architecture
  • Instruction set: about 35 instructions
  • Clock: up to 20 MHz oscillator (core executes at Fosc/4, so up to ~5 MIPS)
  • Program memory: ~1K × 14‑bit words of Flash
  • Data RAM: 68 bytes of SRAM (banked)
  • Data EEPROM: 64 bytes on-chip
  • I/O: around 13 programmable I/O pins (PORTA + PORTB) in a DIP‑18 package
  • Timers: 1×8‑bit Timer0 with prescaler
  • Watchdog: on-chip watchdog timer
  • Process node: around 0.8 µm CMOS (typical for that generation; Microchip did not emphasize the node)
  • Transistor count: on the order of tens of thousands of transistors (exact figure not published)

Crucially, it had Flash program memory at a time when that still felt premium on low‑end controllers. Compared to EPROM‑based 8051 clones or OTP PICs, the 16F84 dramatically shortened the edit–compile–program–test loop.

Why it became iconic

Several factors made the PIC16F84 the "people’s microcontroller" of its time:

  • Availability: it was sold everywhere – from official distributors to street electronics markets.
  • Package: through‑hole DIP‑18 meant you could plug it straight into a breadboard, no fancy PCB needed.
  • Learning curve: the architecture was quirky but small enough to fit in your head:
  • only 35 instructions,
  • banked RAM and file registers,
  • explicit TRIS registers for direction control.
  • Documentation and books: Microchip’s datasheet and application notes were clear, and dozens of books and magazine articles used the 16F84 as their main example.
  • Tooling: cheap parallel‑port programmers and later in‑circuit solutions appeared quickly; entire cottage industries sprang up around DIY PIC programmers.

For many students this was the first time they saw how a while(1) loop turns into toggling a PORTB bit and making a real LED blink.

The dark side: limitations that aged badly

The 16F84 also had severe limitations that became hard to ignore as applications evolved:

  • No hardware UART, SPI or I²C. Any serial protocol had to be bit‑banged.
  • Very small memory. 1K words of Flash and 68 bytes of RAM limited protocol stacks, user interfaces and complex state machines.
  • Banked memory model. Switching banks via the STATUS register’s RP0 bit was a source of endless bugs.
  • No ADC, no PWM. Many real‑world sensor and motor applications needed extra glue logic or more advanced PICs.

Microchip responded by releasing improved parts like PIC16F628, PIC16F628A and PIC16F88, which added UART, more RAM/Flash, comparators, and sometimes ADC – often at similar or lower prices. These devices gradually displaced the 16F84 from new designs.

Cultural impact: from PIC to Arduino and beyond

Even if you never touched a PIC, you’ve likely felt the cultural impact of the 16F84:

  • The idea that you can buy a cheap MCU in a DIP package, plug it into a breadboard and follow a magazine tutorial – that was normalized by chips like the 16F84.
  • The "blink first" tradition – every new platform starting with a simple LED blink example – was already standard practice in the PIC era.
  • Many of the engineers who later designed Arduino, STM32 dev boards, and ESP32 modules cut their teeth on PICs, including the 16F84 and its successors.

In a sense, the 16F84 helped shift the mindset from "microcontrollers are for appliance manufacturers" to "microcontrollers are for anyone with a soldering iron and curiosity".

Lessons from an old legend

The PIC16F84 is obsolete for serious new designs, and Microchip itself recommends newer devices. Yet its story still matters for today’s embedded community:

  • A successful chip is not always the most powerful – it’s the one that is affordable, well‑documented and easy to experiment with.
  • A small, slightly awkward architecture can be an excellent teaching tool.
  • A strong ecosystem of books, examples and community projects can turn a modest part into a legend.

When you drop an STM32, RP2040 or ESP32 onto a breadboard today, you’re standing on the shoulders of that little PIC16F84 that once convinced a generation that microcontrollers could be personal, hackable and fun.