(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Introduction to 8051==
 
==Introduction to 8051==
 +
 
{{Box|type=l_green_light|text=
 
{{Box|type=l_green_light|text=
As writing a C program starts with displaying a string hello world,
+
 
 +
As writing a C program starts with displaying a string hello world,
 +
 
 
most of the times learning about microcontrollers/embedded systems starts with 8051. It was introduced long time back, but it in terms of understanding basics of embedded systems; it still stands to the test. We will keep these tutorials less of theory and more of interfacing. And this one thing we have been glued to embedded systems so long, it is exciting when you make these small chips run and make interesting things out of them.<br />
 
most of the times learning about microcontrollers/embedded systems starts with 8051. It was introduced long time back, but it in terms of understanding basics of embedded systems; it still stands to the test. We will keep these tutorials less of theory and more of interfacing. And this one thing we have been glued to embedded systems so long, it is exciting when you make these small chips run and make interesting things out of them.<br />
 +
 
We would be doing all the hardware sessions on [http://www.xplorelabz.com Xplore Labz] development boards like [http://xplorelabz.com/product_details.php?sel_prod=10 ULTRA_X51], [http://xplorelabz.com/product_details.php?sel_prod=6 Starter_X51], however the examples presented should work for any of the 8051 microcontroller platform or development boards.<br />
 
We would be doing all the hardware sessions on [http://www.xplorelabz.com Xplore Labz] development boards like [http://xplorelabz.com/product_details.php?sel_prod=10 ULTRA_X51], [http://xplorelabz.com/product_details.php?sel_prod=6 Starter_X51], however the examples presented should work for any of the 8051 microcontroller platform or development boards.<br />
 +
 
}}
 
}}
  
 
== What makes them Powerful? ==
 
== What makes them Powerful? ==
{{Box|type=l_red_light|text=
+
 
 +
{{Box|type=l_green_light|text=
 +
 
 
Looking at the microcontroller features,
 
Looking at the microcontroller features,
 +
 
one might be question; as to what makes these controllers so powerful, that
 
one might be question; as to what makes these controllers so powerful, that
 +
 
these are part of such a wide ranging device. Right from smart phones to dumb
 
these are part of such a wide ranging device. Right from smart phones to dumb
 +
 
phones from robots to rovers, here’s what makes these devices click.
 
phones from robots to rovers, here’s what makes these devices click.
 +
 
}}
 
}}
 +
 
===Programmable!===
 
===Programmable!===
{{Box|type=l_red_light|text=
+
 
 +
{{Box|type=l_green_light|text=
 +
 
 
Making Integrated
 
Making Integrated
 +
 
Circuits which could be programmed depending on the application was
 
Circuits which could be programmed depending on the application was
 +
 
breakthrough. The array of varied applications that these microcontrollers are
 
breakthrough. The array of varied applications that these microcontrollers are
 +
 
used, only justifies the purpose. Making custom Integrated circuits with
 
used, only justifies the purpose. Making custom Integrated circuits with
 +
 
specific to a particular application is time consuming! Microcontrollers
 
specific to a particular application is time consuming! Microcontrollers
 +
 
inspired a new generation of designs which were highly scalable yet generic,
 
inspired a new generation of designs which were highly scalable yet generic,
 +
 
simply have an idea, put on the chip and run it
 
simply have an idea, put on the chip and run it
 +
 
}}
 
}}
=== Speed:===  
+
 
{{Box|type=l_red_light|text=
+
=== Speed:===
 +
 
 +
{{Box|type=l_green_light|text=
 +
 
 
Today, we have controllers from the ARM family that run at a few Giga Hertz! The basic operations that most of the controllers perform are arithmetic (binary addition, subtraction etc) and logical (simple
 
Today, we have controllers from the ARM family that run at a few Giga Hertz! The basic operations that most of the controllers perform are arithmetic (binary addition, subtraction etc) and logical (simple
NAND, NOR applications). Well, what makes these simple instructions powerful is the speed at which these can be executed.
+
 
 +
NAND, NOR applications). Well, what makes these simple instructions powerful is the speed at which these can be executed.
 +
 
 
}}
 
}}
 +
 
==What do you need to know to get started? Perquisites!==
 
==What do you need to know to get started? Perquisites!==
{{Box|type=l_red_light|text=<br />
+
 
* Basic C programming.
+
{{Box|type=l_green_light|text=<br />
 +
 
 +
* Basic C programming.
 +
 
 
*Basic understanding of electronics, we would try and clarify the basic concepts, as and when required during the tutorial.
 
*Basic understanding of electronics, we would try and clarify the basic concepts, as and when required during the tutorial.
* Justdo it! The most important thing is do the practical stuff as go through the tutorials. This will give you the much needed fuel and excitement when things really work. If they don’t you’ll learn more than what these tutorials teach and more the fun!  
+
 
 +
* Justdo it! The most important thing is do the practical stuff as go through the tutorials. This will give you the much needed fuel and excitement when things really work. If they don’t you’ll learn more than what these tutorials teach and more the fun!
 +
 
 
}}
 
}}
 +
 
=Features of 8051=
 
=Features of 8051=
[[File:BlockDiagram8051.png|200x350px|framed|Features of 8051 Microcontroller]]
+
 
{{Box|type=l_red_light|text= <br />
+
[[File:BlockDiagram8051.png|right|200x350px|framed|Features of 8051 Microcontroller]]
==='''8 bit controller:''' ===
+
 
 +
{{Box|type=l_green_light|text= <br />
 +
 
 +
===8 bit controller: ===
 +
 
 
It basically means the microcontroller handles data in sizes of 8 bits or simply a byte. In other words, the architecture of 8051 is 8-bit, meaning to say ALU, Input output Ports, most of the registers, internal bus is 8 bit, we will see more of this while discussing the architecture of the controller.
 
It basically means the microcontroller handles data in sizes of 8 bits or simply a byte. In other words, the architecture of 8051 is 8-bit, meaning to say ALU, Input output Ports, most of the registers, internal bus is 8 bit, we will see more of this while discussing the architecture of the controller.
==='''4KB of internal ROM and 128 bytes of RAM memory.'''===
+
 
The programs that are written in C or assembly get converted to hex code when compiled. This file is flashed/written to the controller and resides in the ROM. Hence 4KB of ROM determines the size of hex file or eventually the code that the controller is able to store, fetch and execute. Well it may seem very little, indeed it is. But this would more than enough for simple interfaces and even some of the commercial applications.
+
===4KB of internal ROM and 128 bytes of RAM memory.===
 +
 
 +
The programs that are written in C or assembly get converted to hex code when compiled. This file is flashed/written to the controller and resides in the ROM. Hence 4KB of ROM determines the size of hex file or eventually the code that the controller is able to store, fetch and execute. Well it may seem very little, indeed it is. But this would more than enough for simple interfaces and even some of the commercial applications.
 +
 
 
The RAM is the faster accessible volatile storage memory that gets erased when you turn off the controller. This is needed to store real time data, the data from peripherals or calculations that you do while the program is executing.
 
The RAM is the faster accessible volatile storage memory that gets erased when you turn off the controller. This is needed to store real time data, the data from peripherals or calculations that you do while the program is executing.
 +
 
Well 128 Bytes! Yes that’all we have!
 
Well 128 Bytes! Yes that’all we have!
==='''Four 8 pin I/O ports (P0,P1,P2,P3).'''===
+
 
 +
===Four 8 pin I/O ports (P0,P1,P2,P3).===
 +
 
 
** Each of the IO Pins can be configured as Input or Output. IO pins are basically used to read/write data to external peripherals and sensors
 
** Each of the IO Pins can be configured as Input or Output. IO pins are basically used to read/write data to external peripherals and sensors
==='''Two 16 timers/counters.'''===
+
 
 +
===Two 16 timers/counters.===
 +
 
 
The unit can be configured as timer when it measures time internally and configured as counter when external events are to be counted.
 
The unit can be configured as timer when it measures time internally and configured as counter when external events are to be counted.
==='''One serial port (UART).'''===
+
 
 +
===One serial port (UART).===
 +
 
 
One of the oldest most widely used communication protocols. This is used to communicate with a computer or any peripheral which has a UART interface. The protocol is very simple to learn and implement.
 
One of the oldest most widely used communication protocols. This is used to communicate with a computer or any peripheral which has a UART interface. The protocol is very simple to learn and implement.
 +
 
*'''8bit data bus and 16bit address bus hence can access 64k of external memory.'''
 
*'''8bit data bus and 16bit address bus hence can access 64k of external memory.'''
==='''Interrupts'''===
+
 
 +
===Interrupts===
 +
 
 
Interrupts basically are requests to stop current execution and serve a request, either from a internal unit of a Microcontroller or a external device.
 
Interrupts basically are requests to stop current execution and serve a request, either from a internal unit of a Microcontroller or a external device.
 +
 
Interrupts are used with numerous external peripherals as well as internal features of a microcontroller. They come in very hand to break normal sequential flow of execution and switch to a different task or request.
 
Interrupts are used with numerous external peripherals as well as internal features of a microcontroller. They come in very hand to break normal sequential flow of execution and switch to a different task or request.
 +
 
}}
 
}}
 +
[[File:8051Arch.png|right|thumbnail|x120px|link=8051_Architecture|'''''NEXT TUTORIAL...''''']]
 +
{{#seo:
 +
|title=Introduction_to_8051
 +
|titlemode=append
 +
|keywords=8051,AT89s51,at89c51,p89v51rd2,speed,programmable,prequisites,RAM,ROM,ALU,Timer,counters,Interrupts,xplorelabz,tutorials,speed,frequency,basics,ports,8051 board
 +
|description=Introduction to 8051 microcontroller
 +
}}
 +
 
{{DISQUS}}
 
{{DISQUS}}

Latest revision as of 12:27, 1 December 2014

Introduction to 8051

As writing a C program starts with displaying a string hello world,

most of the times learning about microcontrollers/embedded systems starts with 8051. It was introduced long time back, but it in terms of understanding basics of embedded systems; it still stands to the test. We will keep these tutorials less of theory and more of interfacing. And this one thing we have been glued to embedded systems so long, it is exciting when you make these small chips run and make interesting things out of them.

We would be doing all the hardware sessions on Xplore Labz development boards like ULTRA_X51, Starter_X51, however the examples presented should work for any of the 8051 microcontroller platform or development boards.

What makes them Powerful?

Looking at the microcontroller features,

one might be question; as to what makes these controllers so powerful, that

these are part of such a wide ranging device. Right from smart phones to dumb

phones from robots to rovers, here’s what makes these devices click.

Programmable!

Making Integrated

Circuits which could be programmed depending on the application was

breakthrough. The array of varied applications that these microcontrollers are

used, only justifies the purpose. Making custom Integrated circuits with

specific to a particular application is time consuming! Microcontrollers

inspired a new generation of designs which were highly scalable yet generic,

simply have an idea, put on the chip and run it

Speed:

Today, we have controllers from the ARM family that run at a few Giga Hertz! The basic operations that most of the controllers perform are arithmetic (binary addition, subtraction etc) and logical (simple

NAND, NOR applications). Well, what makes these simple instructions powerful is the speed at which these can be executed.

What do you need to know to get started? Perquisites!


  • Basic C programming.
  • Basic understanding of electronics, we would try and clarify the basic concepts, as and when required during the tutorial.
  • Justdo it! The most important thing is do the practical stuff as go through the tutorials. This will give you the much needed fuel and excitement when things really work. If they don’t you’ll learn more than what these tutorials teach and more the fun!

Features of 8051

Features of 8051 Microcontroller



8 bit controller:

It basically means the microcontroller handles data in sizes of 8 bits or simply a byte. In other words, the architecture of 8051 is 8-bit, meaning to say ALU, Input output Ports, most of the registers, internal bus is 8 bit, we will see more of this while discussing the architecture of the controller.

4KB of internal ROM and 128 bytes of RAM memory.

The programs that are written in C or assembly get converted to hex code when compiled. This file is flashed/written to the controller and resides in the ROM. Hence 4KB of ROM determines the size of hex file or eventually the code that the controller is able to store, fetch and execute. Well it may seem very little, indeed it is. But this would more than enough for simple interfaces and even some of the commercial applications.

The RAM is the faster accessible volatile storage memory that gets erased when you turn off the controller. This is needed to store real time data, the data from peripherals or calculations that you do while the program is executing.

Well 128 Bytes! Yes that’all we have!

Four 8 pin I/O ports (P0,P1,P2,P3).

    • Each of the IO Pins can be configured as Input or Output. IO pins are basically used to read/write data to external peripherals and sensors

Two 16 timers/counters.

The unit can be configured as timer when it measures time internally and configured as counter when external events are to be counted.

One serial port (UART).

One of the oldest most widely used communication protocols. This is used to communicate with a computer or any peripheral which has a UART interface. The protocol is very simple to learn and implement.

  • 8bit data bus and 16bit address bus hence can access 64k of external memory.

Interrupts

Interrupts basically are requests to stop current execution and serve a request, either from a internal unit of a Microcontroller or a external device.

Interrupts are used with numerous external peripherals as well as internal features of a microcontroller. They come in very hand to break normal sequential flow of execution and switch to a different task or request.

NEXT TUTORIAL...

{{#seo: |title=Introduction_to_8051 |titlemode=append |keywords=8051,AT89s51,at89c51,p89v51rd2,speed,programmable,prequisites,RAM,ROM,ALU,Timer,counters,Interrupts,xplorelabz,tutorials,speed,frequency,basics,ports,8051 board |description=Introduction to 8051 microcontroller }}