Pages created and updated by Terry Sturtevant Date Posted: January 16, 2017

CP316: Microprocessor Systems and Interfacing

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.

Course 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
Course/Lab Instructor: Terry Sturtevant
Office: N2092A
Ext: 2049
Office Hours: by appointment
Enrollment: 4  
Learning Objectives: By the end of this course, you should be able to:
  • Understand programs written in PIC assembly
  • Write programs in PIC assembly using MPLABX
  • 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 Overview and Approach/Framework: 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.
Recommended Text: textbook

Title: PIC Microcontroller, An Introduction to Software & Hardware Interfacing
ISBN: 1-40-183967-3
Author: Han-Way Huang
Publisher: Thomson Delmar Learning

Not in book store, buy online.

Reference Text:
There won't be any readings from this one, but if you're looking for specific information about the Qwikflash board, this is the place for it.
qwikflash textbook

Title: Embedded Design with the PIC18F452 Microcontroller
ISBN: 0-13-046213-6
Author: John B. Peatman
Publisher: Prentice Hall

Not in book store, buy online.

Web Page:
Contact Hours: Discussion and Lab Demonstrations TBD

Since this is an independent study course, the Discussion period will be slightly different than a traditional lecture. It will highlight key points from the readings, rather than attempting to cover all of the material in depth.

Marking Scheme: 30 %

Lab demonstrations

  • 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.


20 %

Lab notebook and postlabs

  • 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. The questions and summaries that you hand in ensure that what you have recorded for your own reference is useful and correct.


10 % Pre-lab requirements
  • These will vary from week to week; some will be online quizzes which are to be completed before the lab, based on the pre-lab questions.


40 %


The lab project.... in a real-life test of your ability. Previous students have suggested that a high percentage of marks in the course should be for the project, which suggests the students have found the projects valuable and reasonable. That's why I have assigned the highest single component of the course grade to the lab tests.


Labs: Due Date
(week of)
  January 2 lab 1 PIC18F452 and PIC18 assembly language
  January 9 lab 2 PIC18 assembly language, I/O Ports
  January 16 lab 3 Software and hardware timers, Interrupts
  January 23 lab 4 Interrupts, Flash and EEPROM memory
  January 30 lab 5 Programming LCDs
  February 6 lab 6 Arithmetic, Digital inputs
  February 13 READING WEEK
  February 20 lab 7 Time intervals
  February 27 lab 8 Serial Interfaces: MSSP, I²C, SPI
  March 6 project USART, D/A conversion
  March 13 project TBA
  March 20 project TBA
  April 3 project demonstration TBA
Creative Commons License

Information on this site which is produced by Terry Sturtevant is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Canada License.


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!

Wilfrid Laurier University