Embedded Software Design
Assignment
Objectives
● Write assembly programs to obtain a given functionality
● Identify different hardware components that can be used with PIC
microcontrollers
● Be familiar with interfacing techniques
Evaluations
Evaluations are based on following points. Hardware implementation
is not expected.
● System design
State diagrams
Flow charts
● Assembly language programs
Implemented functionalities
Software simulations (demonstrations)
● Selected hardware components
Specifications of hardware components
Justification of selections (why do you select the same
component over others available)
● Estimated budget for the final product
Important dates
Presentations and demonstrations are on 11th and 12th of November
2010. Exact schedule will be given later.
Each group will be given a maximum of 20 minutes.
Presentation should include all the points mentioned under
“Evaluations” except code segments and software simulations. However,
software simulations should be carried out simultaneously with the
presentation.
Project details
All projects are listed and numbered in the same order as the project
group numbers.
Ex: Group 1 → Project 1
Find the basic requirements here. You are free to make reasonable
assumptions and extend the project scope accordingly. Please highlight
them during your demonstration/presentation.
1. Analog Clock using LEDs
a. Features
i. Use two concentric circles with 60 Dual Color LEDs on the
outer circle and 12 Single Color LEDs in the inner circle.
ii. Outer Circle indicates Seconds and Minutes
iii. Inner Circle indicates Hours
2. Triangular Wave generator using PIC 16F84
a. Features
i. Generate a square pulse train from the microcontroller
ii. Frequency and duty cycle are adjustable
iii. Integrate this pulse train using an op-amp based
integrator circuit and create the triangular wave
3. Number base converter
a. features
i. numbers are given using a keypad
ii. use a suitable method to specify the base
iii. input number and the output number with their
corresponding bases should be displayed on an LCD
iv. bases to be supported are the followings
1. Binary
2. Decimal
3. Octal
4. Hex decimal
4. I2C based text display system
a. A keypad and an array of 15 segment displays are interfaced via I2C
protocol, to MCU
b. Keypad should accommodate all the English letters
c. An enter button is available in keypad to denote the end of the
string
d. Use indicator LEDs to notify any messages such as “max
length exceeded”, “Enter is not pressed yet”
5. Barrier detection and analysis
a. A device that can detect the width and height of an obstacle in its
path
b. Use an LCD to display the results
6. Shape recognizing system
a. A shape (a polygon) within a certain range, say for instance
5cmx5cm, in dimensions should be identified
b. The detected shape should be presented in hyper terminal
7. Temperature monitoring device
a. features
i. option for setting the temperature unit (Celsius or Fahrenheit)
ii. Current temperature display in the configured unit
iii. User setting up temperature range as two distinct values for
lower bound and upper bound
iv. Unique alarm signal for temperature dropping below lower
bound
v. Unique alarm signal for temperature raising above the
upper bound
8. Sinusoidal signal analyzer
a. Description
i. In this project students are expected to build a device that
can determine the frequency, amplitude and peak to peak
voltage of an applied sinusoidal signal and display the result
in LCD
b. Features
i. User can select the format of units that he expects the
result to be (kilo hertz, mega hertz etc)
9. Ultrasonic reverse sensor
a. features
i. Should display the distance in cm on an LCD
ii. Should provide a pattern of beeps to indicate the
distance when less than 20, 10 and 5
10. Heat sensitive FAN
a. Speed of the fan increases as temperature increases and vice
versa
b. Use PWM module
c. Display the current temperature and fan speed on LCD
11. Traffic light system for a 'T' Junction
a. Count down timer with display (00 to 99)
b. Pedestrian crossings across two sides
c. Blinking amber light after 11PM and up to 6AM
12. Character case converter
a. features
i. input string is given through the hyper terminal of a PC
ii. for each alphabetic character in the string its case
should be converted such that an upper case letter
becomes a lowercase letter and a lowercase letter
becomes an uppercase letter
iii. it should be transmitted over RS 232 port and the
converted string should be returned to the same
terminal screen in a new line
iv. the max length of the input string is 50
v. non alphabetic characters should not be altered and
they should remain in the out put string as they are
13. Proximity map
a. A device that can monitor the surrounding in 360 degrees and
identify the closest object’s distance in every 5 degrees resolution
b. The observed results should be displayed in hyper terminal
indicating the angle and the distance in a comprehensive
manner
14. Fibonacci sequence generator
a. Features
i. User enter a positive integer(say n) and selects the
forward or backward direction
ii. Fibonacci sequence up to nth term is generated and
displayed on hyper terminal
iii. If the direction is forward, sequence should start from
term 1 and progress upward
iv. Otherwise sequence should start from term n and
progress downward
15. Text based chatting system using 2
PIC16F877 devices
a. Features
i. Chat system using asynchronous serial communication
ii. Max length of a string/sentence is limited to 12
characters
iii. Recent chat history of 5 lines on both sides
iv. Use hyper terminal as the display
16. Implement a symbol(say characters from
A to H) matching game
a. Some symbols are assigned to a 4x4 matrix
b. There are only 8 distinct symbols and therefore always the same
symbols is found in two cells of the matrix
c. This matrix is mapped to 4x4 key pad
d. When a user presses a button, the symbol should be displayed
e. The challenge for the user is to find matching symbols in two
consecutive button presses and score a point
f. The total time to score 8 points is counted and displayed
g. Current time should be displayed for users convenience
h. The system should always memorize the minimum time and the
user’s name and that should be updated as multiple users play the
game
i. The order of the symbols, arranged in matrix and the set of symbols
used should change for each game.
j. You may use a maximum time period for “game over”
17. Simple number guessing game
a. Description
i. This is a simple game that a user can guess the number that
PIC is thinking about in a pre determined amount of attempts.
b. Features
i. PIC generates a random number in a particular range such as
from 0 to 99.
ii. User can set the number of attempts he need to try to
successfully guess the number
iii. Then PIC prompts the user to enter his guess
iv. If it is correct, a message should be displayed to congratulate
him.
v. Else he can try the next attempt.
vi. This process is repeated until the number of attempts is
expired or user guess is correct.
vii. If user fails all attempts the number PIC thought initially
should be displayed.
18. Integer comparison game
a. Description
i. System generates two integers and these integers can
be negative or positive
ii. Negative numbers are displayed with the absolute
values operator
1. Ex: |-1429|
iii. Player has to say if the first number is greater than, less
than or equal to the second
iv. System records the time from the beginning to the end
of the game
v. Any wrong comment ends the game
vi. Player who correctly mention all the comparison in a
given period of time (say 3 minutes) wins the game
vii. Player who identify maximum number of comparisons in
the given time period holds the record
viii. Record holder’s name and his/her achievement are
displayed whenever a new game is started
19. Digital clock
a. features
i. Time of day
1. 12 hours format
2. 24 hours format
ii. Month and week
iii. Time reset option
iv. Birthday greeting message
v. Alarm function
vi. Stop watch with following features
1. Time display as MM:SS:msmsms
2. Start
3. Pause
4. Resume
5. Stop
6. Lap time for 5 laps
7. Average lap time
20. Simple statistics calculator
a. Features
i. User can enter the number of integer data items
ii. User can then enter the integer data set
iii. Following results are expected as outputs
1. Mode
2. Mean
3. Median
4. Standard deviation
5. Variance
6. Co-efficient of variance
iv. User can select the result he needs
21. Units converter
a. Features
i. Convert quantities from British unit SI units and vice
versa
ii. List of conversions should include length, mass, volume,
area and temperature
iii. User can select the desired conversion
iv. User can enter the quantity
v. Button to give the “convert” command
vi. All information should be displayed on an LCD
22. Multi channel Digital voltmeter for the range 0
-5V
a. Features
i. Voltage inputs are given from 5 different inputs
ii. Measured voltage of each channel is displayed on the
LCD
iii. Controls for measure and reset functions for each
channel
23. Digital weighing device using PIC16F877
a. Features
i. suggesta method to convert a weight in to a
measurable electrical signal
ii. Display the Weight in grams using LCD
iii. Accuracy should be +/- 10 grams
24. Modeling a rail gate controller
a. Description
i. A rail gate system with three rail tracks should be
modeled with the signal lights and alarms
b. Features
i. Train passing through should be tracked on both sides of
the rail gate area; i.e. the entrance of train to and the
departure of the train from the main road
ii. Gates should be closed when the train approaches
towards and remain closed till it leaves the main road
entirely
iii. Alarm should be activated as long as gate is closed with
the proper signal lights
25. Light dimmer for a 10 LED array using PWM
a. Features
i. Study PWM module
ii. The brightness should be controlled using up and down
buttons.
iii. Current brightness level should be indicated on 7-
segments using a number between 0 and 99.
26. Digital Ohm meter
a. study how an ohm meter measures resistance
b. you may use a set of resistance values in a certain range that
can be measured accurately in your system
c. display the result in LCD with units
27. Create a timed DC motor controller
a. User input the time that motor requires to rotate in minutes
b. Motor is driven that time and stops
c. User can enter a time duration via a keypad
d. System should verify the entered time is valid
e. Motor starts running as soon as time is entered properly
f. An abort button can stop the motor at any time
g. LCD display to prompt the user to enter time
h. Same display should give any error messages if the entered time is
not valid
i. Time left for the motor to run from current time should be displayed
when motor is running
28. ASCII character display using an 8*8 (or more)
LED matrix
a. Features
i. Hex value of the ASCII code will be entered via Key Pad
ii. Correct ASCII character should be displayed on the LED
Array
29. School bell controller
a. This is to control an electronic bell that controls the school
time table
b. Features
i. Separate tones should be used to denote school start
and end time
ii. The end of a period should be denoted accordingly
iii. Interval should be denoted with specific tones
iv. Alert signals should be provided to be used
asynchronously
30. Vehicle speed detector
a. Description
i. Measure a vehicle’s speed using PIC16F84A
b. features
i. Measure without any physical contact with vehicle
ii. Display the measured speed on 3 seven segment displays.
iii. Light up warning lights/activate alarms when the speed
exceeds 70kmph
31. LUX meter using a photo diode as the light
sensor
a. features
i. Support the visible light range
ii. Display the intensity of light using Lux as the unit of
measurement
32. Digital phone book which can store 10 names
and phone numbers
a. Features
i. Use EEPROM to store data
ii. Add / Modify / Delete Records using a Keypad
iii. Record Search should be using the first letter + arrow
keys
33. Access control system based on USER ID and
PASSWORD
a. Features
i. Allow 20 users
ii. Admin can add new users + delete users + reset password
iii. Access Granted and Access Denied Messages should be displayed
iv. Door Open / Close status should be indicated using an LED
v. Use a relay to represent the door control circuit
34. Fan Controlling system using an IR Transmitter
and an IR Receiver
a. Features
i. Implement both transmitter and receiver
ii. Fan should have the start/stop commands and four
speed levels