The 8051 is an 8 bit microcontroller made by intel. It's been around since just slightly after the last ice age. It is also one of the most common controllers around. In fact, there is probably one within 6 inches of your hands right now ... yes, in your keyboard. Of course, they've probably found cheaper alternatives by now, though up through the 90's 8051's had a stranglehold on the market.

The 8051 is a Harvard Architecture chip, meaning it expects separate code and data memory spaces. The 8051 has 4K (IIRC) of internal PROM for code, but can also use an external program store. It accesses that store as well as up to 64K of external RAM on a 16 line bus. The lower 8 address bits are multiplexed with the data in order to save pins, so an external latch like a 74LS373 is required.

The 8051 features two internal timers, an internal UART, and two external interrupts, for a grand total of 5 interrupts. They are all maskable with two interrupt priority levels. Though it can be hacked to do so with relative ease, the 8051 does not have native memory mapped IO. It is also lacking BUSREQ and BUSACK pins, so DMA would be a dangerous proposition.

One thing about the 8051 is that because it's so damned cool, lots of universities use it to teach about microprocessors ... and not surprisingly, lots of recent EECS grads know how to program 8051's and nothing else. This creates somewhat of a "If the only tool you have is a hammer, then everything looks like a nail" type situation.

The 8051 has two close relatives: the 8031, which has no internal code memory, and the 8751, which has internal EPROM code memory. There are also millions of 8051 copies made by other companies, many of which feature niceties like internal ADC's and such.

8051 fun facts:
* The reason 8051's often have funny crystal frequencies like 3.6864 MHz or 11.0592 MHz is that those can be neatly divided into popular baud rates like 19200 or 57600 for the internal UART
* Features assembly code mnemonics ORL and ANL.