This is a book about the Intel 8051 microcontroller and its large family of descendants. It is intended to
give you, the reader, some new techniques for optimizing your 8051 projects and the development
process you use for those projects. It is not the purpose of this book to provide various recipes for
different types of embedded projects.
Wherever possible, I have included code examples to make the discussion clearer. There are points in
the book where projects are discussed as a means of illustrating the point of the given chapter. Much of
this code is available on the companion disk, to use it you will need to be familiar with C and 8051
assembler since this book is not intended to be a tutorial in C or 8051 assembler. There are many fine
books you can buy to learn about ANSI C. As for 8051 assembler, the best source is the Intel data book
which is free from your 8051 vendor or the manual that comes with your particular assembler.
The code on the companion diskette contains the code I wrote and compiled for the book you hold in
your hands. It is fully functional and has been tested. This is not to say that that the code on the diskette
is ready to go into your system and be delivered as part of your projects. Some of it will require change
before it can be integrated into your system.
This book will help you learn how to make the best out of the tools you have. If you only have an 8051
assembler, you can still learn from this book and use the examples, but you will have to decide for
yourself how to implement the C language examples in assembler. This is not a difficult task for anyone
who understands the basics of C and the 8051 assembler set.
If you have a C compiler for the 8051, then I congratulate you. You have made an excellent decision in
your use of C. You will find that your project development time using C is lower and that your
maintenance time using C is also lower. If you have the Keil C51 package, then you have made an
excellent decision in 8051 development tools. I have found that the Keil package for the 8051 provides
the best support. The code in this book directly supports the Keil C extensions. If you have one of the
other development packages such as Archimedes or Avocet, you will find that this book is still of great
service to you. The main thing to be aware of is that you may have to change some of the Keil specific
directives to the appropriate ones for your development tools.
In many places in this book are diagrams of the hardware on which the example code runs. These are
not intended to be full schematics, but are merely block diagrams that have enough information to allow
you to understand how the software must interface to the hardware.
You should look upon this book as a learning tool rather than a source of various system designs. This is
not an 8051 cookbook, but rather an exploration of the capabilities of the 8051 given proper hardware
and software design. I prefer to think that you will use this book as a source of ideas from which your
designs springboard and grow in a marvelous world of sunshine and roses! Seriously, though, I think you
will gain useful knowledge from this book that will help you greatly improve your designs and make you
look like your company’s 8051 guru.