Course Description:
Microprocessors and microcontrollers-based systems are part of electronic design for variety of applications including consumer electronics, automotive, telecom, healthcare and military etc. The aim of this course is to introduce students to internal architecture of microprocessors/microcontrollers and enable them to solve real world problems by interfacing and programming microcontrollers.

Course Learning Outcomes:
CLO:1 Illustrate knowledge of firmware writing for microcontrollers and microprocessor using assembly and C language programming.
CLO:2 Configure timers, interrupts and I/O interfaces of ARM Cortex-M microcontroller and perform program testing and debugging using Keil software development environment.
CLO:3 Design and Implement solution to a real-life problem using I/O interfaces of a microcontroller and firmware development.

Lab Experiments:
1. Introduction to STM32F4 Micro-Controller, ARM Architecture and its Programming
2. STM32F4 GPIO Port familiarization using blinking LED example
3. Overview of ARM assembly programming and addressing modes
4. ARM assembly programming using Arithmetic Instructions
5. ARM assembly programming using control flow instructions
6. Keypad and Seven-Segment Display Interface with STM32F4
7. Liquid Crystal Display (LCD) Interface with STM32F4
8. Analog to Digital Convertor (ADC) Interface with STM32F4
9. General Purpose Timers in STM32F4 and their Programming
10. External Interrupts interface in STM32F4
11. PWM generation & Motor Speed control using STM32F4
12. Serial Communication interface in STM32F4