MtE-316: Microprocessors and Microcontrollers
Announcements
- 16/11/2020: The course starts today.
Course Structure
- Credits: 3 (theory) +1 (lab), Fall 2018 Semester
- 3 hours of lecture per week and 3 hours of lab
Course Description
MtE-316 (Microprocessors and Microcontrollers) deals with microcontrollers as components in mechatronics design. It focuses on the architecture, programming, and interfacing of microcontrollers. The course is taught using the AVR family of microcontrollers (e.g., ATmega328P).
Following is the summary of topics:
Microprocessor vs microcontroller, the architecture of a microprocessor/microcontroller, programming microcontrollers in C and assembly languages, port programming, addressing modes, timers/counters, interrupts, serial communication, ADC/DAC, interfacing of different sensors and actuators.
Instructor
Dr. Muhammad Tufail, tufail@uetpeshawar.edu.pk
Office Hours: Fridays 14:00-16:00 (or by appointment)
Textbook
Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi: The AVR Microcontroller and Embedded System: Using Assembly and C, 1st Edition, Pearson, 2011. (Download ebook from here, and all its chapter-wise code from here)
Course Grading
- Theory: Class participation/quizzes: 10%, Homework 10%, Midterm Exam 30%, Final Exam 50%
- Lab: Lab tasks 25%, Lab reports 25%, Project 50%
Weekly Schedule (Tentative)
Weeks | Module | Lectures | Assigned Readings/Supplementary Material | Homework |
---|---|---|---|---|
Week 1 & 2 | Introduction |
|
|
|
Week 3 | Microcontroller Architecture and Assembly Language Programming |
|
|
|
Week 4 |
|
|
|
|
Week 5 |
|
|
|
|
Week 6 | Programming Microcontrollers in C Language |
|
|
|
Week 10, 11 | Timers and Counters |
|
|
|
Week 13,14 | ADC/DAC | |||
Week 15 | Interrupts (Read Chapter 10 and Do Homework 6) | |||
Software Tools
- Atmel Studio 7.0
- Proteus Design Suite, version 8 or later
- Arduino IDE
- Fritzing (CAD software for the design of electronics hardware)
Labs (Note: Google Classroom has updated information.)
- As guidelines for writing lab reports, see a sample report here. Please don’t send Proteus and Atmel Studio files. Rather include code directly (not as a screenshot) and a screenshot of Proteus in the report. If the code is too long, include it as an appendix in the report. Use the report title as this one. Each lab report will be marked out of 10.
- Marking sheet (rubric) for a lab report, and lab work.
-
Lab 1: Introduction to the development and simulation environments (software)
- Download and install Atmel Studio 7.0 (or get the setup file from your class CR)
- Download and install Proteus Professional 8.0 (get the setup file from your class CR)
- Here are supporting documents: (1) Getting started with Atmel Studio 7.0; (2) A tutorial on C Programming in Atmel Studio 7.0; (3) Proteus Getting Started Guide
-
Lab 2: Switch debouncing
- How to download hex code to Arduino in Atmel Studio 7? You need the AVRDude downloader (a utility program). See here.
-
Lab 3: LCD Interfacing
- Supporting material: LCD library files (zipped), ASCII codes.
- Lab 4: Keypad Interfacing
- Lab 5: DC Motor Control
Project Resources
- Visit here for some cool project ideas.
- Refresh your electronics concepts from here.
- Following here are some websites from which you can get ideas for your course projects from.
- 200+ Arduino projects list for final year projects
- Top 20 Arduino projects
- Arduino Project Hub
- Student Microcontroller design projects (videos). Here all the projects have been designed based on the PIC microcontroller. But you can get the basic idea and implement it with some enhancement/modification on Arduino.
- Some more design project ideas from Cornell