In 1980 Intel introduced a microcontroller standard MCS-51 also known as 8051. This standard provided a base for microcontrollers and ease of development for microcontroller based applications. This is simplest microcontroller with less but most widely used peripherals that are enough for majority of applications. Less peripherals in a microcontroller make it simple to learn and reduce learning time and efforts while more peripherals and features in a microcontroller make it complex to learn and increase learning time and efforts. Standard 8051 microcontroller has less peripherals and so best suits for newbies and students as compared to other microcontrollers like PIC, AVR or ARM that are complex to understand (due to more features and peripherals). Most of the developers easily learn and develop 8051 based applications. So, it’s simplicity attracts developers. It has not just a microprocessor but has important resources and peripherals on a single chip that makes design simple, low cost in terms of money, time and efforts as compared to microprocessor design that becomes complex and costly. Although external resources and peripheral can also be attached like in microprocessor based design. All peripherals can be mapped in memory address space of 8051 and this feature is also not available in most or all of other microcontrollers like PIC and AVR (however some of them may have this feature but not all). Because of this feature we can design Single Board Computer (SBC) system on 8051 microcontroller. Tools and IDEs are easily available for the development of 8051 microcontroller. Ability to develop 8051 based application is necessary to acquire degrees of various disciplines of engineering. Due to these characteristics 8051 microcontroller is one of the most widely used microncontroller today. After Intel different companies are now producing variants of 8051 standard microcontroller. All of these are based on 8051. Some of these companies are Atmel, Philips, Dallas, Infineon.
8051 based micontroller have the following major parts in it
- Memory
- Program Memory
- Data Memory
- Special Function Registers (SFRs)
- Bit Addressable Memory
- IO Ports
- Interrupts
- Timers
- Serial Port
Memory
There are 4 types of memory in standard 8051 microcontroller.
Program Memory
In standard 8051 microcontroller there is 4KB of on-chip or internal memory where program to be executed resides. This program is executed when microcontroller power is applied in the target circuit. This program is transferred using a programmer/burner device from PC to 8051 microcontroller.
Data Memory
In standard 8051 based microcontroller there is 128 bytes of data memory. Data memory is the place where our program data or variables reside. Stack also occupies space in this area of memory. This area belongs to address space from 0x00 (0 decimal) to 0x7f (127 decimal).
Special Function Registers
These are the registers that control or store status of specific behavior or data related to a function of 8051 microcontroller. SFRs belong to address space from 0x80 (128 decimal) to 0xff (255 decimal). But there are only 21 SFRs in standard 8051 microcontroller. Remaining 107 locations may be used by other derivatives of 8051 but not in standard 8051 microcontroller.
Bit Addressable Memory
As it’s name shows this is a memory area in which single bit can be addressed or accessed. There is no need of reading or writing whole byte to access a single bit. However we can also access whole byte as well. There are 16 bytes memory for this purpose and belongs to address space from 0x20 (32 decimal) to 0x2f (47 decimal).
IO Ports
Standard 8051 has 4 IO ports of 8 pins each. These ports are Port 0, Port 1, Port 2 and Port 3. These ports are used to communicate with external world. Some pins of ports have more than one function.
Interrupts
Interrupt is the signal to CPU for an event that requires immediate attention of CPU. An interrupt may be a hardware or software generated. Standard 8051 microcontroller has 5 Interrupts sources. These sources are
- External Interrupt 0 (INT0)
- Timer 0 Overflow Interrupt (TF0)
- External Interrupt 1 (INT1)
- Timer 1 Overflow Interrupt (TF1)
- Serial Port Interrupt
Serial port interrupt is further divided into- Receive Interrupt (RI)
- Transmit Interrupt (TI)
Timers
Timer is resource that is used to count events or to calculate time duration of an event or to simply calculate delay. In standard 8051 microcontroller there are 2 timers called Timer 0 and Timer 1. Both of these timer can be configured and run independently. Timers also generate overflow interrupt during counting.
Serial Port
Serial port is a hardware resource in 8051 microcontroller that convert serial stream of bits on receive pin “RxD” and convert it into parallel data and convert parallel data into serial stream of bits that is transmitted through transmit pin “TxD” (each bit one by one). Serial port is also called UART (Universal Asynchronous Receiver Transmitter). Serial port also uses a timer for calculation of baud rate or duration of a single bit. Serial port has receive and transmit interrupts associated with it. Using this serial port we can connect our 8051 microcontroller with PC, some other microcontroller, mobile or modem.