Embedded Systems Design – Project
Assignment Guidelines
Course: EE3417 – Embedded Systems Design
Instructor: Engr. Muqadas Ashraf
General Instructions
All projects must be implemented from scratch using PIC18F452 (or equivalent microcontroller).
Programming must be done in Assembly language or Embedded C.
Students must design and assemble the physical circuit on breadboard.
Arduino boards, built-in libraries, shields, or pre-made modules are not allowed.
Deliverables include:
o Physical circuit demonstration.
o Whiteboard explanation of circuit connections and logic flow.
o Source code (Assembly/Embedded C).
o Documentation (circuit diagram, flowchart, working explanation).
Group Size: Each project must be completed in a group of maximum 4 students. Smaller groups
are allowed, but no group may exceed 4 members.
Project Options
Project 1: Digital Voting Counter
Description: A voting machine with two candidates. Each button press increments the candidate’s vote
count, displayed on seven segment. Requirements:
PIC18F452 microcontroller
2 push buttons (Candidate A, Candidate B)
Seven segment display (2 digits)
Reset button Deliverables:
Physical circuit on breadboard.
Code for vote counting.
Whiteboard explanation of logic.
Live demo: button press → vote increment → seven segment update. Conditions:
Reset clears votes.
Max votes = 99.
Project 2: Digital Scoreboard
Description: A scoreboard for two teams. Buttons allow increment/decrement of scores, displayed on
seven segment. Requirements:
PIC18F452 microcontroller
4 push buttons (+1, -1 for each team)
2 seven segment displays Deliverables:
Physical circuit on breadboard.
Code for increment/decrement logic.
Whiteboard explanation of score logic.
Live demo: button press → score update. Conditions:
Score cannot go below 0.
Max score = 99.
Project 3: Electronic Safe Lock
Description: A keypad-based lock system. Correct password unlocks (LED ON), wrong password triggers
buzzer. Entered digits shown on seven segment. Requirements:
PIC18F452 microcontroller
4x4 keypad
Seven segment display (4 digits)
LED + buzzer Deliverables:
Physical circuit with keypad and seven segment.
Code for password verification.
Whiteboard explanation of password logic.
Live demo: correct password → LED ON, wrong → buzzer. Conditions:
Password minimum 4 digits.
Wrong attempt must trigger buzzer.
Project 4: People Counter System
Description: Counts number of people entering/exiting a room. Entry button increments, exit button
decrements. Count displayed on seven segment. Requirements:
PIC18F452 microcontroller
2 push buttons (Entry, Exit)
Seven segment display (2 digits) Deliverables:
Physical circuit with entry/exit buttons.
Code for increment/decrement logic.
Whiteboard explanation of occupancy logic.
Live demo: button press → count update. Conditions:
Count cannot go below 0.
Max occupancy = 50.
Project 5: Digital Calculator (Basic)
Description: A calculator system that takes two single-digit inputs and performs basic arithmetic (+, –, ×,
÷). Result displayed on seven segment. Requirements:
PIC18F452 microcontroller
4x4 keypad
Seven segment display (2 digits) Deliverables:
Physical circuit with keypad and seven segment.
Code implementing arithmetic operations.
Whiteboard explanation of calculator logic.
Live demo: input → operation → result display. Conditions:
Inputs limited to single digits (0–9).
Division must handle divide-by-zero error (error indicator).
Result must not exceed 99.
Documentation Guidelines:
This will be a short paper (at least 6 pages, but you can include pictures, diagrams, etc.) that
must contain all of the following:
Introduction: What the device is and high level overview of what it does. Also be sure to
make clear what is actually working in your implementation (as opposed to things you
wanted to get work but for various reasons did not).
Hardware
o Embedded Board Description: Describe the hardware, CPU (architecture, type and
speed), RAM, and I/O. Also describe the operating system or other software (kernel
version, etc.)
o Input device description: Describe the device you are interfacing with, how you
access it in software, and document the protocol you use to communicate with it.
o Output Device description: same as for the input device.
o Links to any data sheets for hardware you used, as well as schematics for any
circuits you designed yourself.
o Power Consumption: Explain any energy or power concerns with your application,
and how you could optimize it to use less power.
Software
o Programming Language: Which one did you use? Why? Briefly explain the tradeoffs
between the language you chose and doing the same in assembly language. (If your
project is in assembly language, then explain the tradeoffs versus C).
o Real Time: Does your device have real time constraints? What would happen if your
code encountered an unexpectedly large delay?
o Security: Describe any computer security issues there might be with your device
(can it be exploited?) If you say there are no security issues, make sure you explain
why.
o If you use code not written by your group (code found online, libraries, etc) explain
what the extra code does, and how your code interfaces with it. Explain how much
of the code is original to your group.
Related Work
o Has anyone done a project like this before?
o How does your project compare to existing similar projects?
Conclusion
o If you worked in a group: List who worked on what part.
o Challenges: List any challenges you had, and if things didn’t work, explain why.
o Future Work: List any improvements you might make if you had more time and
resources to work on the project.
Appendix
o The source code (this can be submitted as a separate file, does not have to be
included in the report).
OPTIONAL Make a short web-site or YouTube video describing your project. Get it posted on YouTube.
No extra points for this, just bragging rights.
Final Notes
Projects must be original implementations.
Students must demonstrate complete understanding of registers, counters, timers, and seven
segment multiplexing.
No Arduino, no prebuilt libraries, no shortcuts — only scratch implementation using PIC
microcontroller and basic electronic components.
Group Size: Maximum 4 students per group.
Evaluation will be based on:
o Circuit correctness and functionality.
o Code quality and documentation.
o Whiteboard explanation and live demo.