Course Syllabus

CP316: Microprocessor II - Course Syllabus
Department of Physics and Computer Science
Faculty of Science
Waterloo Campus
Winter 2020
Instructor Information: Mr. Terry Sturtevant
E-mail: []
Office: N2092A
Ext: 2049
Office Hours: By appointment
Course Information: Calendar Description: Interfacing a microprocessor or microcontroller with external devices for real-time hardware control. Microcontroller hardware and software in real time applications; serial and parallel I/O; timing generation; priority interrupt structures and servicing; bus timing. Interpretation and use of industry documentation and data sheets.

Prerequisites: CP216, CP/PC320
Lecture MWF 12:30 p.m.-1:20 p.m. in N1058

  The lecture periods will include active learning activities, and so participation will be much more effective than attempts to catch up after the fact. In addition, some lectures will contain material vital to the lab immediately following, so absence will make the lab more difficult.

Labs (in N2082) Tuesday 8:30 a.m.-10:50 a.m.

Lab attendance is mandatory.
The labs build upon each other. If you miss a lab, you will have to make it up before you do the next lab.
Course Overview and Approach: This is much like a lab course. That means that most of your learning will happen through your hands-on experiences in the lab. The on-line documents have been chosen to give you the background you will need to prepare you for the labs. Since this is an independent study, you'll be learning from these resources on your own.

This course requires previous assembly language programming and electronics experience. PC/CP320 will have already made you familiar with data sheets, sensors, and actuators, and CP216 will have introduced you to assembly language programming. This course will refer often to that previous knowledge and success will depend on it.

At the end of this course you will get a detailed, anonymous evaluation to fill out, where you can indicate your opinion on many aspects of the course. This is one of the most important resources to help me improve the course each time I teach it.
Course Goals and Learning Outcomes: By the end of this course, you should be able to:
  • Identify timing-sensitive sections of programs which interract with hardware
  • Write programs incorporating both high and low level techniques
  • Use microcontroller features such as parallel and serial I/O ports, timers, analog-to-digital converters, etc.
  • Read data sheets for sensors and actuators in order to interface them to a microcontroller
  • Create real-time programs which interact with the external world and use interrupts
  • Employ good coding practices to make programs which are easy to read and maintain
Course Tools and Learning Materials: All of the information for this course and all of the available electronic resources are on the course website. I've tried to make it as complete as possible, so that you only have to look in one place for anything relevant to the course. If you find any other resources that are particularly useful, let me know.

You'll need to get a lab notebook for this course. This is very common in science and engineering disciplines, since it develops the habit of keeping all of your observations, thoughts, data, and other information in one place. You'll use notebooks for several electronics labs, and you can re-use notebooks if they have empty space in them since real-life information isn't split into courses. If you want to use the notebook for notes in the lecture, you're welcome to do so.

Recommended Text: None

Web Page:

Student Evaluation:
Active Learning Exercises 10%
Lab demonstrations 30%
Lab notebook and postlabs 20%
Integration Project 25%
Exploration Project 15%
Total 100%

Learning Activities, Assignments, Tests, Quizzes and Examinations: There are several different types of assessment that will happen in this course; some of them are individual and some of them will be collective; i.e. you will work with a partner or in a group and you will all get the same mark. No single method of assessment is best for contributing to your learning, so the variety reflects that.

Active Learning Exercises (group)
These will vary from week to week; some will be exercises which are to be completed before the lab.

Lab demonstrations (groups of two)
  • work demonstrated at every lab
  • every lab will indicate what is to be demonstrated
  • all labs weighted equally
  • see Lab Demonstrations for requirements
  • Each lab will have points at which you have to show me that you have accomplished the required task(s). Usually they also require you to explain something you have learned in your own words to verify that you've understood the key points.
Lab notebooks and postlabs (individual)
There are different types of post-lab requirements for different labs.
  Lab notebook summaries (individual)
  • all work for every lab including prelab exercises, lab notes and results, postlab exercises, and summaries
  • all labs weighted equally
  • see Lab Notebook for requirements
  • The notebook is the vehicle for you to record all of what you learn for future reference. You'll be able to use it for quizzes, so it should be your most vital resource. The questions and summaries that you hand in ensure that what you have recorded for your own reference is useful and correct.

Integration Project (groups of two)

The lab project is a real-life test of your ability to bring together things you have learned. Previous students have suggested that a high percentage of marks in the course should be for projects, which suggests the students have found the projects valuable and reasonable.

Exploration Project (groups of two)

The lab project is a real-life test of your ability to explore something new.

Weekly Schedule:
(week of)
January 6 lab 1 Hardware timing
January 13 lab 2 Timers
January 20 lab 3 Pulse width modulation
January 27 lab 4 Interrupts
February 3 lab 5 I²C displays
February 10 lab 6 Bit-banging
February 17 READING WEEK
February 24 lab 7 Counters and input capture
March 3 lab 8 Serial Interfaces: I²C, SPI
March 10 project TBA
March 17 project TBA
March 24 project TBA
March 31 project demonstration TBA

Communication techniques:
  • maintain a research lab notebook
  • design and execute formal demonstrations of circuits and software
  • documentation standards for circuit designs
  • on-line project documentation (web based)
Accessible Learning Students: Students with disabilities who require classroom and/or laboratory accommodations should identify themselves to the course instructor as soon as possible; preferably before their first lab period. We assume all students requiring academic accommodations will have all accommodations approved by the Accessible Learning Office.


To view pdf documents, you can download Adobe Acrobat Reader .
get Acrobat Reader
If you need to update a browser, you might try Firefox which is Get Firefox!
Since this page uses cascading style sheets for its layout, it will look best with a browser which supports the specifications as fully as possible.

If you are looking for an office package, with a word processor, spreadsheet, etc., you might try LibreOffice which is Get LibreOffice!

Go to the main page for the Department of Physics and Computer Science.

Valid XHTML 1.1

Valid CSS!

(Level AA)

Wilfrid Laurier University