The intel 8051 series 8bit microcontroller, originally introduced in 1980, remains popular and has had perhaps the longest product life of all such devices. It has become the industry standard for real-time and Boolean control applications.
While some (who should know better) have said that the 8051 is dead, it continues to be a viable choice for both design upgrades and new applications as faster, more advanced versions appear. Most engineering students study this device in order to round out their education. It is generally programmed in assembly code rather than compiled from high level languages. As a result, the speed is optimized and it can often outperform modern devices that are programmed only in high level languages.
Only the also very popular Microchip PIC microcontrollers can touch the 8051 series features and performance etc. –these were introduced some 13years later, but are essentially limited to one vendor and have not caught on as an industry standard.
This is the first of a series of tutorials on these devices. While understanding the basics, I realize the limitations of my knowledge –while I can write code, make things work and pride myself on routine optimization, I freely admit that I am no expert. As a result, there will be some shortcomings in my presentation –it will be from my (perhaps myopic) point of view.
Manufacturers (not an exhaustive list –also some have already discontinued this series –perhaps too many players to corner sufficient market share)
The following vendors have either licensed or cloned the intel 8051 microcode:
Initial 8051 versions
“8051” is simply the generic name given to the entire series because it was the first single chip microcontroller solution of the series. Following are six basic intel versions with which the reader should be familiar –other vendors generally construct part numbers from their own prefix and the last two digits of the these intel versions. The physical package is subsequently denoted by the suffix. Beyond this there are numerous differences, so it is necessary to study the specific datasheets.
The initial devices were power hungry NMOS technology –later, more efficient CMOS devices were introduced –some have various power shutdown modes to further conserve power, but in no way can they match modern “flea power” devices that are designed for long-life battery applications.
Types of memory –FYI
Note that the larger microcontroller devices (e.g. 40pin or larger) can access either internal or external code memory via an external data bus –the smaller devices (e.g. 20pin) access only internal code memory and cannot manage a tri-state data bus.
Atmel –best for experimenters
Of the many vendors who offer these devices, Atmel shines brightest. While other vendors have added features, flash program memory, increased the clock rate and reduced the number of clock cycles per instruction, Atmel has both doubled the speed and blown the bottom out of the price with many devices selling for approximately $1 each. Very popular is the bare bones Atmel 89C2051 in a DIP-20 package. It must be programmed in a programmer. Also very popular is the AT89S52 in either a DIP-40 or PLCC-44 package. It may be programmed in a programmer, but also has provision for in-circuit programming via the ISP serial programming interface feature that uses a simple 10pin connector –no, it cannot bootload like the AVR devices. Both devices are very inexpensive and great for the experimenter –software and programmers will also be chosen for minimum cost. Future tutorials will focus on these two Atmel devices.
For more reading
Someone, pick up the gauntlet of writing a tutorial on the PIC microcontroller.
For the future (partial list)
Undocumented words and idioms –for our ESL friends