University of Information Technology

Microcontroller Programming

Course Description

This course provides introduction to embedded systems and microcontroller programming. The course focuses on both software (C language and mikroC IDE) and hardware (PIC18F45k22) approaches for embedded system. This course consists of lectures, exercises, assignment and lab on programming microcontroller and also consists of project on implementing embedded systems.

Intended Learning Outcomes

Upon the successful completion of this course, students should be able to:

  • independently design and implement an embedded system based on an 8-bit and 16-bit microcontroller, taking into account energy conservation and possible software errors.
  • program a microcontroller using C, including hardware configuration and interrupt service routines.
  • manage parallel processes with different priority and real time constraints without the aid of an operating system.
  • select the data types and algorithms suitable for the architecture and instruction set of a given microcontroller.
  • give a detail description of limitations of the chosen system design.
  • debug a microcontroller application using different tools.

Text and References Books


  1. PIC Microcontrollers – Programming in C, Milan Verle, mikroElektronika,
  2. Microcontrollers: From Assembly Language to C Using the PIC24 Family, Robert Reese, J.W. Bruce, Bryan A. Jones, 2009.


  1. mikroC: Compiler for Microchip PIC Microcontrollers, mikroElektronika,
  2. Microchip PIC18(L)F2X/4XK22 Data Sheet, Microchip Technology Inc.
  3. Embedded Controller Hardware Design, Ken Arnold @ 2000
  4. Introduction to Embedded System, Shibu K V, 2009

Assessment system

Evaluation Marks Percentage
Class Participation 10 Marks 10%
Tutorial/Assignment 10 Marks 10%
Practical/Project 20 Marks 20%
Final Examination 60 Marks 60%