1st Edition

Microcontroller Programming
An Introduction

ISBN 9781439850770
Published November 3, 2011 by CRC Press
546 Pages 229 B/W Illustrations

USD $155.00

Prices & shipping based on shipping country


Book Description

Microcontroller Programming: An Introduction is a comprehensive one-stop resource that covers the concepts, principles, solution development, and associated techniques involved in microcontroller-based systems. Focusing on the elements and features of the popular and powerful Motorola 68HC11 microcontroller IC as a representative example, this book is unlike others, which are often too broad in scope, delving into every topic of concern regarding microcontroller programmers. Instead, this text concentrates on design, architecture, and development, giving developers the tools to develop solid, effective embedded applications.

Packaged with helpful examples, projects, and illustrations, this book gives an in-depth assessment of microcontroller design programming in both assembly and C. By illustrating the relatively sophisticated 8-bit 68HC11 microcontroller, the author—who is a consultant for NASA—provides a firsthand exploration and demonstration of the languages, tools, and techniques needed to build embedded applications. Readers can then apply their newly acquired skills to program other 8/16/32-bit microcontrollers.

For readers who want to do more than just scrape the surface, this book is an enjoyable and immensely beneficial tool to help them cultivate a deeper understanding of microcontroller-based application development. An extensive supplements package is available free of charge to instructors who use the book for a course.

Table of Contents

Number Systems, Operations, and Codes

Digital versus Analog Quantities

Digital Numbering System (Base 10)

Binary Numbering System (Base 2)

Octal Numbering System (Base 8)

Hexadecimal Numbering System (Base 16)

Binary-Coded-Decimal System

Binary Conversions

Binary Operations

Octal Conversions

Hexadecimal Conversions

Hexadecimal Operations

1’s and 2’s Complements of Binary Numbers

Signed Numbers

The ASCII Code

Semiconductors and Digital Logic

Diode Logic

The Inverter

The AND Gate

The OR Gate

The NAND Gate

The NOR Gate

The Exclusive-OR Gate

The Exclusive-NOR Gate

Microcontroller Hardware

A Transistor as a Switch

The TTL Integrated Circuit

The CMOS Integrated Circuit

Using Integrated-Circuit Logic Gates

Seven-Segment Displays

Liquid-Crystal Displays


The 68HC11/68HC12 Microcontroller


Microcontroller Software

Programming Concepts

System Software

Developing a Program

Flow and State Diagrams

HC11 Programming Model

HC11 Memory-Addressing Modes


Data Movement



Shifting and Rotating

Multiplication and Division

CCR (Flag) Manipulation

Bit-Level Operations

Control Structures and Subroutines

Indexed Addressing Mode

Jumping and Branching

Compare Instructions

Conditional Flow and Program Loops

Stack Operation


BUFFALO Subroutine

Hello, World!

Creating Source Code Files

Assembling Programs

Ten Useful Programs

Input/Output (I/O) Ports

Data Transfer Mode

Port A

Port B

Port C

Port D and Port E

I/O Using Handshaking

A Project Using Port B


Basics of an Interrupt

Servicing an Interrupt

Interrupt Control

Maskable Interrupts

Output Compare

Nonmaskable Interrupts

Interrupts on the EVBU

A Project with Interrupts

Analog Capture

Analog-to-Digital Conversion

A/D Tools

A/D Operation

A Project with Analog Capture

Input Capture

Basic Modules of Input Capture

Input-Capture Registers

Input Edge Detection Logic

Interrupt Generation Logic

A Project with Input Capture

Higher-Level Programming

Levels in Programming Languages

C Programming


A Project with C


Appendix 1—Supplemental Website

Appendix 2—States and Resolution for Binary Numbers

Appendix 3—Basic Boolean Theorems and Identities

Appendix 4—The Resistor Color Code

Appendix 5—Waterfall Software Development Lifecycle Model

Appendix 6—Loading Your Program into the EEPROM

Appendix 7—Pulse-Width Modulation

Appendix 8—HC11 Instruction Set

Appendix 9—Comprehensive Glossary

View More



Syed R. Rizvi develops advanced technologies primarily for NASA Langley Research Center. He is the software consultant for the Environmental Management Information Systems at NASA LaRC. He maintains the web site Microcontroller Guide (www.microcontrollerguide.com), which contains hands-on tutorials, discussions, and interesting microcontroller-based projects for both students and hobbyists.


"... a good framework to the tools and techniques through the assembly and C languages for building embedded applications. There are discussions on the fundamental concepts of microcontroller programming along with the embedded applications like LCD devices. The approach in the book is a simplified one which is targeted to beginning undergraduate students in computer science/electrical engineering with little programming and hardware experience. ... covers all the essential topics in a typical microcontroller programming. ... plenty of exercises, examples and hands-on codes that complement the discussed concepts, and these items definitely help the students."
—Shaharuddin Salleh, Universiti Teknologi Malaysia,