Despite its
relatively old age, the 8051 is one of the most popular
microcontrollers in use today. Many derivative microcontrollers have
since been developed that are based on--and compatible with--the
8051. Thus, the ability to program an 8051 is an important skill for
anyone who plans to develop products that will take advantage of
microcontrollers.
I hope the
information contained in this document/web page will assist you in
mastering 8051 programming. Over the years, I've received many
requests for a hardcopy/printed version of this tutorial. As a
result of those requests, I wrote The 8051/8052 Microcontroller
which was published in September 2005. The book contains all the
information contained in these tutorials plus additional information
regarding hardware, interfacing, and detailed description of each
instruction in the 8052 assembly language. If you find these
tutorials easy-to-understand and useful, you may wish to consider
purchasing this book.
This document is both
a tutorial and a reference tool. The various chapters of the
document will explain the 8051 step by step. The chapters are
targeted at people who are attempting to learn 8051 assembly
language programming. The appendices are a useful reference tool
that will assist both the novice programmer as well as the
experienced professional developer.
his document assumes
the following:
A general knowledge
of programming.
An understanding of
decimal, hexadecimal, and binary number systems. For some background
information on these number systems, try this link.
A general knowledge
of hardware.
That is to say, no
knowledge of the 8051 is assumed--however, it is assumed you have
done some amount of programming before, have a basic understanding
of hardware, and a firm grasp on the three numbering systems
mentioned above. The concept of converting a number from decimal to
hexadecimal and/or to binary is not within the scope of this
document--and if you cant do those types of conversions there are
probably some concepts that will not be completely understandable.
This document
attempts to address the need of the typical programmer. For example,
there are certain features that are nifty and in some cases very
useful--but 95% of the programmers will never use these features. To
make this document more applicable to the general programming public
some details may be skimmed over very briefly--or not at all.