ECE 340/341 Microcontrollers and Lab (Spring 2018)


All assignments are collected at the start of class on the specified due date. Each assignment should have your name, the course number, the date, and the assignment designation (e.g., HW1, etc.). Attendance is mandatory. Students who miss five or more class periods will receive a final grade of F for the course. (Arriving late or leaving early is considered absent.)

Course Description

The primary goal of this course is to give you the fundamental skills needed to understand, use, and design microcontroller-based systems. This includes the following: (1) What is a microcontroller? (2) What can it do (and not do)? (3) How does one design (and program) a microcontroller-based system? Note: In addition to the listed prerequisites, ECE 340/341 required junior-level standing in EE or CompE. (e.g., You must have passed both Digital Logic and Circuits II with a C or better.)


Programming 32-bit Microcontrollers in C, Lucio Di Jasio, 2008. ISBN: 978-0-7506-8709-6. Author's web site  Text Errata

Reading Assignments

Please complete the reading assignments in a timely manner so that you may contribute in the class discussions. The following abbreviations are used below, with # identifying the chapter or section: LD - Day # from the class text by Lucio Di Jasio; FRM - PIC32 Family Reference Manual (separate PDF file per section); DS - PIC32MX Datasheet (single PDF file); PLIB - PIC32 Peripheral Library Guide; MX - MPLAB X User Guide ; and XC - XC32 Compiler User Guide.

Homework and Quizzes (20%)

There will be homework and quizzes, possibly unannounced, throughout the semester. 

  1. Jan 12 - HW1
  2. Jan 19 - HW2
  3. Jan 26 - (1) Write a short C program that uses the two methods shown on Slide 11 of the PIC32 IO PowerPoint and verify using the Disassembly window of MPLAB that using PORTAINV requires fewer processor instructions; (2) extend or modify your program to repeat the same comparison for shifting versus addition as a method of doubling the value of a C variable. Submit as a brief report with screenshots supporting your findings.
  4. Feb 12 - HW4
  5. Feb 21 - HW5
  6. Mar 23 - (1) Which I2C bus is the EEPROM attached to on the Cerebot board; (2) what is the slave address of the EEPROM; and what type of devices are used as pull-ups on I2C1? (Please be specific and cite your sources)
  7. Mar 30 - I2C homework
  8. Apr 2 - Labeled screen captures on white background of I2C single byte write and read using I2C triggering/serial decode and waveform display with the Agilent 7000B. (Lab 8, Part I)  (No phone pics!!)
  9. Apr 30 - Engineering Expo Expedition (in lieu of class on Friday, April 27)

    Exams (80%)

    Each exam is worth 100 points and will be closed book, closed notes. Semester exams are 50 minutes long; the final exam will be two hours long and comprehensive. Please bring paper, calculator, pencil(s) and eraser to the exam.

    1. Jan 31. Topics
    2. Feb 28. Topics
    3. Apr 4. Topics
    4. May 11, Fri, 7:30-9:30 am (!!!) Topics


    Grades (and other information) will be distributed electronically to student UI e-mail addresses periodically throughout the semester. Grades will be calculated using the traditional scale (90%=A, 80%=B, etc.).

    Reference Material