Close or Esc Key

Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

8051 and 8051 Microcontroller

Written By: 

RoseMary

A microcontroller is an economical computer-on-a-chip built for dealing with specific tasks, such as displaying or receiving information through LEDs or remote controlled devices. The most commonly used set of microcontrollers belong to 8051 Family. 8051 Microcontrollers continue to remain a preferred choice for a vast community of hobbyists and professionals. Through 8051, the world became witness to the most revolutionary set of microcontrollers.

 

8051 Microcontroller, 8051 Family

Fig. 1: An Image of 8051, 8052, 8031 Microcontroller

8051 Family

Intel fabricated the original 8051 which is known as MCS-51. The other two members of the 8051 family are:
i.     8052 – This microcontroller has 256 bytes of RAM and 3 timers. In addition to the standard features of 8051, this microcontroller has an added 128 bytes of RAM and timer. It has 8K bytes of on chip program ROM. The programs written for projects using 8051 microcontroller can be used to run on the projects using 8052 microcontroller as 8051 is a subset of 8052.
 
ii.    8031 – This microcontroller has all the features of 8051 except for it to be ROM-less.  An external ROM that can be as large as 64 K bytes should be programmed and added to this chip for execution. The disadvantage of adding external ROM is that 2 ports (out of the 4 ports) are used. Hence, only 2 ports are left for I/O operations which can also be added externally if required for execution.
 
Comparison of 8051 family members:
Features 8051 8052  8031 
RAM(bytes)
128
256
128
ROM
4K
8K
0K
Timers
2
3
2
Serial port
1
1
1
I/O pins
32
32
32
Interrupt sources
6
8
6
Fig. 2: Comparison of 8051 family members

 

Various 8051 microcontrollers

 

8051 microcontrollers use two different kinds of memory such as UV- EPROM, Flash and NV-RAM. Hence 8051 will not be seen in the part number even though it is the most popular member of the 8051 family.
        i.            8751 – This microcontroller is the UV-EPROM version of 8051. This chip has only 4K bytes of UV-EPROM. It is required to have access to the PROM burner and the UV-EPROM eraser to erase the contents inside the chip before it is programmed again. The disadvantage of using this memory is the waiting time of around 20 minutes to erase the contents in order to program it again. Due to this limitation, manufacturers fabricated flash and NV-RAM versions of 8051.
 
      ii.            AT89C51 from Atmel Corporation – Atmel fabricated the flash ROM version of 8051 which is popularly known as AT89C51 (‘C’ in the part number indicates CMOS). The flash memory can erase the contents within seconds which is best for fast growth. Therefore, 8751 is replaced by AT89C51 to eradicate the waiting time required to erase the contents and hence expedite the development time. To build up a microcontroller based system using AT89C51, it is essential to have ROM burner that supports flash memory. Note that in Flash memory, entire contents must be erased to program it again. The contents are erased by the ROM burner. Atmel is working on a newer version of AT89C51 that can be programmed using the serial COM port of IBM PC in order to get rid of the ROM burner.
            
Part Number ROM  RAM I/O pins  Timer  Interrupt

Vcc

Packaging 
4K
128
32
2
6
5V
40
8K
256
32
3
8
5V
40
AT89C1051
1K
64
15
1
3
3V
20
AT89C2051
2K
128
32
3
8
3V
20
AT89LV51
4K
128
32
2
6
3V
40
AT89LV52
8K
128
32
3
8
3V
40
Fig. 3: Versions of 8951 from Atmel (All ROM Flash)
 
There are different versions of packaging and various speed of the products mentioned in the above table.
Part Number Speed  Pins  Packaging  Use 
AT89C51-12PC
12MHz
40
DIP Plastic
Commercial
AT89C51-16PC
16MHz
40
DIP Plastic
Commercial
AT89C51-20PC
20MHz
40
DIP Plastic
Commercial
Fig. 4: Various Speeds of 8051 from Atmel
 
Note: The part number AT89C51-16PC where AT – Atmel, C - CMOS (consumes less power), 12 - Speed as 12 MHz, P – Plastic DIP packaging, C - Commercial use. AT89C51-12PC is favourably used by students for their projects.
 
iii.   DS5000 from Dallas Semiconductor – Dallas Semiconductor fabricated the NV-RAM version of the 8051 which is known as DS5000. The PC serial port is utilized to load the program onto the in-built ROM. The advantage of NV-RAM memory is the facility to erase the contents one byte at a time.
      v.             
Part Number RAM ROM Timers I/O pins Interrupts VccPackaging 
DS5000-8
128
8K
2
32
6
5V
40
DS5000-32
128
32K
2
32
6
5V
40
DS5000T-8
128
8K
2
32
6
5V
40
DS5000T-8
128
32K
2
32
6
5V
40
Fig. 5: Versions of 8051 from Dallas Semiconductor
 
Note: ‘T’ signifies the real time clock (RTC) which is different from the timer. Even though the power is turned off, the real – time clock generates and displays the date and the time of day.
 
The variety range of speed and packaging versions of DS5000 which is shown in the Table 1.5
Part Number NV-RAM  Speed 
DS5000-8-8
8K
8MHz
DS5000-8-12
8K
12MHz
DS5000-32-8
32K
8MHz
DS5000-32-12
32K
12MHz
DS5000T-8-12
8K
12MHz
DS5000T-32-8
32K
8MHz
Fig. 6: Versions of 8051 Dallas Semiconductor
 
Note: The part number DS5000-8-8 where 8 - 8K NV-RAM, 8 – Speed of 8MHz. DS5000-8-12 is favourably used by students for their projects.
 
iv.    One - Time - Programmable (OTP) versions of the 8051 – This version of microcontroller is cheaper and available from various manufacturers. The manufacturers use OTP microcontroller for mass production because the price per unit is very cheap.
 
 

Features of 8051


The main features of 8051 microcontroller are:
        i.            RAM – 128 Bytes (Data memory)
      ii.            ROM – 4Kbytes (ROM signify the on – chip program space)
    iii.            Serial Port – Using UART makes it simpler to interface for serial communication.
    iv.            Two 16 bit Timer/ Counter
      v.            Input/output Pins – 4 Ports of 8 bits each on a single chip.
    vi.            6 Interrupt Sources
 vii.            8 – bit ALU (Arithmetic Logic Unit)
viii.            Harvard Memory Architecture – It has 16 bit Address bus (each of RAM and ROM) and 8 bit Data Bus.
    ix.            8051 can execute 1 million one-cycle instructions per second with a clock frequency of 12MHz.
This microcontroller is also called as “System on a chip” because it has all the features on a single chip. The Block Diagram of 8051 Microcontroller is as shown in Figure 1.1
8051 Block Diagram, 8051 Architecture
Fig. 7: General Architecture Of A 8051 Microcontroller
 
 Memory Architecture
The 4 discrete types of memory in 8051 are:
        i.            Internal RAM – This memory is located from address 0 to 0xff.  The memory locations from 0x00 to 0x7F are accessed directly. The bytes from 0x20 to 0x2F are bit-addressable. Loading R0 and R1 the memory location from 0x80 to 0xFF can easily accessed.
      ii.            Special Function Registers (SFR) – Located from address 0x80 to 0xFF of the memory location. The same instructions used for lower half of Internal RAM can be used to access SFR’s. The SFR’s are bit addressable too.
    iii.            Program Memory – This is read only memory which is located at address 0. With the help of 16 bit Special Function Register DPTR, this memory can also save the tables of constants.
    iv.            External Data Memory – Located at address 0. The Instruction MOVX (Move External) should be used to access the external data memory.
 
 

History & Developments

History of 8051 and Key Developments
Intel Corporation fabricated the 8 – bit microcontroller which was referred as MCS-51 in 1981. This microcontroller was also referred as “system on a chip” because it has 128 bytes of RAM, 4Kbytes of ROM, 2 Timers, 1 Serial port, and four ports on a single chip. The CPU can work for only 8bits of data at a time because 8051 is an 8-bit processor. In case the data is larger than 8 bits then it has to be broken into parts so that the CPU can process conveniently. Most manufacturers have put 4Kbytes of ROM even though the quantity of ROM can be exceeded up to 64 K bytes.
 
Intel permitted other manufacturers to fabricate different versions of 8051 but with the limitation that code compatibility should be maintained. This has added advantage that if the program is written then it can be used for any version of 8051 despite of manufacturer.
 
As years passed by, the quality of technology surpassed the expectation of the greatest minds, with gadgets becoming smaller, sleeker and more efficient. Microcontrollers were seen as the answer to the requirements raised in advanced electronics. This is the reason why manufacturers have now focused their production around the following main developmental aspects:
i.                    Ease-of-use
ii.                  Market availability
iii.                Less power usage
iv.                Smaller processing power
v.                  More integrated features like RF and USB
vi.                Smaller form factors
   
 

Application

The 8051 has been in use in a wide number of devices, mainly because it is easy to integrate into a project or build a device around. The following are the main areas of focus:
i.             Energy Management:Efficient metering systems help in controlling energy usage in homes and industrial applications. These metering systems are made capable by incorporating microcontrollers.
 
ii.           Touch screens:A high number of microcontroller providers incorporate touch-sensing capabilities in their designs. Portable electronics such as cell phones, media players and gaming devices are examples of microcontroller-based touch screens.
 
iii.         Automobiles: The 8051 finds wide acceptance in providing automobile solutions. They are widely used in hybrid vehicles to manage engine variants. Additionally, functions such as cruise control and anti-brake system have been made more efficient with the use of microcontrollers.
 
iv.         Medical Devices:Portable medical devices such as blood pressure and glucose monitors use microcontrollers will to display data, thus providing higher reliability in providing medical results.
          
Programming environment and programmer
Formerly, programmers used machine language for coding. A machine language is a program that consists of 0s and 1s which was very dreary for the humans to 8031, 8051 Microcontroller Pin Diagram/PinOut
Fig. 8: Pin Diagram Of Atmel 8051 Microcontroller 
 
program any computer. In due course of time, assembly language was developed in order to speed up the programming and make it error-free.  Assembly language is a low level language which uses an assembler to translate the program into machine code. The high level programming languages such as BASIC, Pascal, Forth, C, C++, and Java are available to code the program for 8051. These high level languages make use of a Compiler to translate into machine code. For example, when a program is written in C, the program needs to be translated into machine language using C compiler. Usually, Assembly and C language is widely used for 8051 programs as compared to the other high level languages.
 
The 8051 provides a total of four ports for I/O operations. 8051 has 40 pins, of which 32 pins are set aside for the four ports. PO, P1, P2, and P3 each have 8 pins and can be used for either input or output. The remaining pins are designated as Vrt, GND, XTAL1, XTAL2, RST, EA, ALE/PROG and PSEN.
 
8051 allows you to manipulate one or all of the bits of a port, thus providing programmers with a unique and powerful feature. 8051 provides the programmer with the ability to read, write and modify each port to customize applications as much as possible.

 

 

Comments

so amazing

I really love to read articles that have good information and ideas to share to each reader. I hope to read more from you guys and continue that good work that is really inspiring to us.

yap too much amazing

 

It's very good fundamental about microcontroller..

REALY VERY NICE INFORMATION....

AMAZING

THANK YOU

thanks for giving a complete knowledge of 8051

i wont to know about at89s52

it is advanced controller it has 3 intrupt. and progaram burning is easy in thise just download ace.isp softwear and se dia. in it

SANDEEP, CAN YOU POST THE LINK OF THE SOFTWARE THAT CAN BE USED TO PROGRAM THE PIC8051 OR WHERE CAN I FIND THE SOFTWARE?...THANKS

 

it is just like 80c51 , having a pin compatibility with 80c51, but having 8k on chip ROM and having 256 bytes RAM, 3 timers, 8 interrupt sources, one serial port, 32 I/O pins

If YOU WANT PROTEUS SOFTWARE SIMULATION VISIT

 

MINUTEENG.BLOGSPOT.COM

 

YOU WILL LIKE THIS

could u please tell me abt proteus software......

 Nice info, though i would like to know where are interrupts used in the applications.

I have just read about it but haven't seen them in action in any of the books or applications.

Can you give some info on that? It'll be great help.

thankyou for for useful information 

 what software can I use for programming the 8051?

RIDE

KEIL

 

keil uv3 or uv4

thanks a lot for providing detail information about project

will you provide me program with assembly language on project LCD BASED ELECTRONIC VOTING MACHINE.

If so please email me the same at siddheshsarvankar92@gmail.com

 

Maraming salamat po.(Tagalog)

 

It means "thank you so much."

 

It fills me with great joy, it really be of great help for our project.

Thank you so much for nice information.

Thank you so much for nice information.

NICE ! THANKS

very usefull,explained briefly thanks

Thanks to Engineers Garage for giving students ample opportunity to learn from this website, indeed it is empowering the people with knowledge, i sincerely appreciate your good work.

Thanks and keep doing the good work

The information is very useful. Please provide more info on C programming 89C51 microcontroller focussing on headers , initialization , i/p and o/p configuring methods, interupt initialization,...etc. This will greatly help in starting a project.

nice

 best site! 

thnx!  

hi very member of the excelent page.

I want somes examples simples about  all interrupt please.

thank for read me.

Thanks so much for this! This is exactly what I was looking for.

Existance this summery in front page allowes programmer newer to this 8051 MC, program without use of any other information.

Really awesome

 After reading these information one must say really awesome !!!!!!!

Than a Lot man

 I like this site...its very useful to make new projects! :)

this is the good site for the engeneers

 

 super 

 super website i got many details from this.

Thank you sir...it is great job! am enjoying it...LONG LIVE SIR....

amazing site......... thanks for such very useful info.

This is really fascinating, You are a very professional blogger. I have joined your feed and sit up for in search of extra of your wonderful post. Also, I've shared your web site in my social networks

Nice Information...

pls provide (how to program a 8051 chip with the help of C language)...... 

Hi !

I am working as Embedded Developer. I really find all the articles and tutorials very useful for the reference.

Thanks for your efforts for providing such valuable information.

I hope you will try to make this website more effective in future.

All the very best!!!

XLLENT WEBSITE.

THANK 2 U

At Table 1.2, AT89C52 appears to have a typo at the RAM which should be 256 and not 128.

Just a 2 cent worth opinion. Nevertheless, great information.            

it's good information fundamental abaut microcontroller.

Thank for useful information about microcontroller 8051...It is clear and nice

Is there a burner for 8051 that can  be use to transfer the program to the 8051?

Greetings! This is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us beneficial information to work on. You have done a extraordinary job!

Wow... Great Analysis of providing an information in a better way... Nice to acquire... yes

 

Articles like this are an exalmpe of quick, helpful answers.

can any one help me to choose  software for burning code in AT89c51 and how to choose a burner

hi i am doing a project on ivrs based industrial controlled system. can you please sent me required circuit diagram alongwith source code written in c language

 

which compiler is used in 8051 microcontroller programming (KEIL oR OTHER) ?

thanks to Engineers Garage team it is very useful.

 

it's very very valuable information

I'm novice to micro controller field .I referred most of the articles,circuits and programs from Engineers Garage.It is an excellent guide for the learners like me.Thanks to your team.

 

Gr8 Effort :)

It is very helpful..

thank u

I'm extremely impressed with your writing skills as well as with the layout on your blog. Is this a paid theme or did you modify it yourself? Either way keep up the nice quality writing, it is rare to see a great blog like this one today.. wesdf

really i m impressed by the blog

thank u very much

please give me the information of 8051 micro controller

very nice site n it is very useful for the students...smiley

how i can download it?????

 

Thanks for giving such an nice experience to us.your way of presentation is superb.just add some 3diamensonal pictures of microcontroller which will understand about your ideas more easier

add some 3diamensional pictures of microcontrollr which will helpfull us to capture  your ideas more easily 

yes this site usu full to education

by:- Happy Kathrotiya

smiley

     sad

           cool

this is much good...

wah wah kadkina..........makhi

 

Sir,

i am working in a company so don't have sufficient knowledge for this project.

I want full led board 12*12 matrix with led controller,drivers etc

and the other things is that i want to operate this led by remote control.

 

will it be possible to interface 8051 microcontroller?


just provide me

1. types of components that are used in my project.

2. cost of that components.

3. circuit diagram.

4. layout

5. specification of that project.
 

hii its a nice website it helps all the trainees in embedded......

can you please help me??

i want the program source code for the printing of ascii characters on lcd display in 8051 by using keil software

 

Nice effort and I appreciate it. 


I have included this on my blog as a reference tutorial so my readers can benefit from this. I also have started writing about the 8051 microcontroller as I simply love working on it.

 

thanks 4 good knowledge abt 8051

i want 8051 development board from where i can get that

 

very good info.. thank u..

I found this site really very useful and helpful .

But ,couldnt find appropriate software for programming.

Can anybody suggest me software for 8051 programming (Embedded C). 

I have tried the code using Keil but it generates the following error inspite of having license copy 

 

FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

 

Regards ,

Sayali

 

 

 

nice effort...............good site

 

A very useful site...nice...

very superb site

 

can u give post the flowchat of project of electronic voting machine usine using ic AT89c51 with

led display

 

really this is amazing but some of the details i'm expecting in PDF

HarryteepePM
HarryteepePM
origami crane meaning peace origami pig twitter.com/origamilesson origami flower kawasaki
Hello. And Bye.
Georgeevids
WEBPILOT is one of the leading Digital advertising agency in Dubai UAE, specialised in delivering full-service web solutions and digital marketing campaigns throughout UAE. Some of our most popular services include innovative web design, technical web development, search engine optimisation (SEO), content creation, eCommerce builds and social media strategy.
Hello. And Bye.
WEBPILOT is one of the leading Digital advertising agency in Dubai UAE, specialised in delivering full-service web solutions and digital marketing campaigns throughout UAE. Some of our most popular services include innovative web design, technical web development, search engine optimisation (SEO), content creation, eCommerce builds and social media strategy.
Hello. And Bye.
Hello. I need to contact admin. Thank you.
Hello. I need to contact admin. Thank you.