Professional Development Centre

Hands-on Introduction to Embedded Electronic Control and Firmware Development

Course Overview

This 8 session mini-course is a practical, hands-on introduction to microcontrollers, embedded electronic control, and firmware development. 

Discover how microcontrollers are responsible for the operation, safety, and functionality of all kinds of devices including digital watches, thermostats, automobile engines, and industrial machines.

Learn how to apply microcontroller hardware to old and new designs, while learning to program a versatile experimenter's board developed by the course instructor.


This course includes a versatile
experimenter's board designed
by the instructor to demonstrate
several different practical
applications of microcontrollers.

Objectives of this course are:

  • To instill in students a fundamental understanding of microcontroller architectures and microcontroller-based electronic control with comparisons of parts from leading manufacturers (including Motorola and Microchip Technologies).
  • To provide a working knowledge of microcontroller programming with simple hands-on excercises using the Microchip PIC16 assembly-language instruction set and Microchip MPLAB development software.
  • To provide students with everything they need to continue learning on their own after the course is completed. Each student keeps a complete firmware development system. The instructor provides follow-up email support.
  • To illustrate the advantages of good design technique using labels, subroutines, and macros to keep programming code readable and transportable.


Upon completion of the course, students will have a fundamental understanding of what microcontrollers do, the tools used for development, and the nature of assembly-language programming.

Students will be familiar with analog-to-digital and digital-to-analog conversion, power output, keypad scanning, using LED and LCD displays, and powering motors and lamps.

Who Should Attend

  • Mechanical, civil, aeronautical, chemical, and manufacturing engineers. 
  • Industrial process planners and industrial electricians. 
  • Managers and administrators of technical programs. 
  • Patent attorneys, medical personnel, and budget officers.
  • Other professionals working outside electrical engineering who need a basic understanding of the subject field. 
  • Anyone who is interested in knowing more about embedded control, including those with a hobby interest.


Although this is an introductory course, students should be familiar with:

  • binary counting (000,001,010,011,100)
  • boolean logic (AND, OR, NOR, XOR, etc.)
  • basic electrical principles (AC, DC, current, voltage, etc.)
  • MS-DOS and Microsoft Windows basic operation and file management

Students should possess reasonable keyboard skills. Experience with any programming or scripting language is helpful but not mandatory. No advanced mathematics skills are required.

Hands-on sessions will include installation and troubleshooting of development software on PDC computer lab machines running WindowsNT. This software runs under Windows95/98/NT and does NOT require a fast processor or lots of memory.

This is not a ladder-logic programming co
urse and does not involve PLCs (Programmable Logic Controllers).   Because PLCs are internally based on microntroller technology, this course will still provide valuable insight into the inner workings of this kind of industrial equipment.

Each student will receive:

  • A Microchip In-Circuit Debugger (MPLAB-ICD) kit:

    MPLAB software on CD and an in-circuit debugger for the PIC16F87x series of microcontroller facilitates easy programming and debugging in realtime without the need for a UV eraser or other cumbersome hardware. (Computer not included).

    PIC16F components feature flash memory and on-chip debugging to speed the development process.

  • A versatile experimenter's board:

    Designed by the course instructor specifically for this course.

    This board can sense temperature and light and includes a matrixed keypad, LED display, relay, and a pulse-width-modulated MOSFET power output circuit capable of driving small 12V lamps, motors, etc.

  • Complete documentation of the experimenter's board, including schematics, PCB layouts, and sample software. The board features multiple channels of analog-to-digital conversion, a simple digital-to-analog output for controlling lamps, motors, etc., and various other popular features.

  • A list of recommended books and online resources.

  • Email and Internet technical support from the course instructor after the course is completed (some limitations apply).

Course Outline

Session 1
A brief history of the computer.
What is a "microprocessor"?
Common architectures: Harvard vs. Princeton.
What is a "peripheral"?
What is a "port"? What is a "pin"?
Modern day microcontroller architectures from Motorola and Microchip Technologies.
Details of the PIC16 mid-range family of processors from Microchip.

Session 2
Create a specification for an experimenter's board.
Choose a microcontroller.
A closer look at the Microchip PIC16F877.
Creation of a real design: power supply, master oscillator, etc.
Creation of a schematic, printed-circuit layout, etc.
Presentation of the final manufactured product.
What can be accomplished with the final experimenter's board.

Session 3
Introduction to the PDC computer lab, network, and login.
Introduction to the Microchip ICD kit and a review of the contents.
Installation of the ICD kit.
creation of a firmware project using files supplied by the instructor to test the experimenter's board.
Class closes with all software installed and hardware tested, ready to start programming.

Session 4
The remaining four sessions will focus on:
- programming environment directives (MPLAB and MPASM)
- the instruction set (PIC16 mid-range RISC language)
- troubleshooting techniques.
The instruction set is introduced through a series of simple exercises.

Session 5
Instruction set exercises continue with the creation of simple flow-control routines:
jump if greater-than, less-than, or equal.
- time delays.
Common programming errors to watch out for.

Session 6
A closer look at software provided by the instructor, including the "Shell Application" servicing the LEDs, keypad, analog-to-digital converter, and other peripherals on experimenter's board, all running in the background under interrupt control.

Session 7
The class will define a sophisticated application for the experimenter's board, divide the project spec into manageable subroutines, and start coding.

Session 8
Coding continues from the previous session.

The instructor will help students troubleshoot problems and learn more about the development software.

Following completion of the course, the instructor will accept additional questions via email from class participants.


James David Smith is the president and chief designer for Soundsculpture Incorporated, a Toronto-based developer of electronics and machines for entertainment and industry.

Mr. Smith is an accredited member of the Microchip consultant program, providing technical support for users of Microchip components. Products designed by Mr. Smith include:

  • PLS (programmable limit switch) technology used in Magna auto-parts plants.
  • The SwingPro consumer golf-swing analyzer.
  • The Soundsculpture RC4 Radio Control System used in high-profile theatrical productions around the world (including productions of Beauty and the Beast and The Phantom of the Opera).
  • Various custom-designed control devices used at Ontario Place, the CN Tower, and various film and theatrical productions.

Mr. Smith has written various application notes including "Managing Variations Between In-Circuit Emulators and Real Components in Critical Designs", and "Successful Microcontroller Emulation in High Static Environments".


All required materials are provided in the course, including manuals for the development system, PDF files and/or manuals for selected components, and complete documentation for the experimenter's board.

The instructor will provide course notes on PIC16 assembly language instructions, programming code for common structures (including testing for greater-than, less-than, and equal), and a verbosely commented advanced application for the supplied experimenter's board.

Return to James David Smith Home