​​​​

EE 1334 microprocessors and embedded systems

(Theory + Labs)

This course provides an introduction to microprocessors and embedded systems, focusing on their role in real-world engineering applications. It emphasizes the design and implementation of embedded solutions using high-level programming languages, such as C and Python, with hands-on experience on Atmel microcontrollers used in Arduino platforms. Students will gain the foundational knowledge required to program, interface, and debug embedded systems, focusing on modular programming techniques, interfacing sensors, and controlling hardware peripherals. 


COURSE LEARNING OUTCOMES (CLOs) 


Code​Course Learning OutcomesABET SO-KPIs

Knowledge and understanding​
K1Analyze the architecture and operation of microcontrollers/ microprocessors1.1

 Skills
S1Develop and debug C/Python programs for microcontroller/microprocessor-based systems2.3
S1Interface hardware components with microcontrollers/ microprocessors2.5
S2Implement communication protocols and real-time applications.6.2

Values, autonomy, and responsibility
V3Work effectively in teams to design and build embedded projects.5.1


LIST OF EXPERIMENTS

No​List of Topics
1Introduction to Microprocessors and Microcontrollers: Comparison between microprocessors and microcontrollers; real-world applications
2

Overview of Atmel Microcontrollers and Arduino IDE: Introduction to the Atmega328p used in Arduino boards; setting up the Arduino IDE

LAB1: Introduction to Arduino IDE: Setting up and testing simple LED programs

3Basics of C Programming for Microcontrollers: Data types, loops, and control structures in C for embedded systems
4

GPIO Programming in Arduino: Interfacing LEDs, switches, and relays

LAB2: Programming GPIO Pins: Controlling LEDs and switches

5Introduction to Python/C++ for Embedded Systems: MicroPython/C++ and its usage on ESP32 boards
6Timers, Interrupts, and Delays: Using timers and interrupts to manage tasks asynchronously
7

Communication Protocols: UART, SPI, and I2C: Interfacing with sensors and displays via communication protocols

LAB3: Communication protocols: Implementing UART and I2C communication.

8Midterm Exam: Covers microcontroller basics, programming, and GPIO interfacing
9

Sensor Interfacing: Working with temperature, motion, and proximity sensors

LAB4: Sensor Interfacing: Interfacing temperature and motion sensors.

10

Motor Control and PWM: Controlling DC motors, servo motors, and fans using PWM signals

LAB 5: Motor Control: Driving DC Motors and servos using PWM.

11

Real-Time Applications: Implementing real-time tasks using timers and interrupts

Final Project: Integrating multiple sensors and actuators in a real-time project.

12Memory Management and Data Logging: Working with EEPROM and SD cards for data storage
13Project Development: Prototype Design: Planning, coding, and testing a small embedded project
14Debugging and Troubleshooting: Identifying and fixing software/hardware bugs
15Final Project Presentation and Course Review: Present group projects and reflect on learning outcomes