Embedded Controller Programming I
Class Project and Student Evaluation
Project Description :
In ECP I all students are required to complete a simple class project which will comprise half of the course grade (see below). The class project is designed to give students the opportunity to demonstrate their ability to develop original assembly language code. (Project ideas below.)
Project Requirements:
The project will be evaluated based on how it implements
the following requirements;
1)
The project must include at least 2 pages of your own
original code (not including the required comments), and must be written in
8051 assembly language.
2)
The project MAY NOT contain any proprietary or
restricted information of any kind. All
submissions you make must be released as public domain, without any
restrictions.
3)
You may incorporate code from other sources, as long as
it is used with permission and clearly marked and attributed to the original
source. Use of others’ code without
doing so will be considered plagiarism and subject to UCSD’s rules as such.
4)
The project should include the following elements as a
minimum;
a. Make use of the 8051 hardware I/O, such as using the general purpose Port 1 pins, LED, switch input, a Timer/Counter, the serial port, etc.
b.
At least 2 pages of original assembler source code
c.
Use of an interrupt is not recommended, unless you have
prior experience with interrupts and are familiar with critical code segments.
5)
Everything should be well documented. You should submit
all code Files (.asm, .hex, etc.) as well as a report describing what the
project does and how it works. You must
also describe the tests you used to verify the program works, and the results
of those tests. Document any hardware interfaces you provide to external
devices with a sketch, schematic, etc.
See below for details.
Uncommented code will be graded the same as a blank page.
6)
You must use the SDK or equivalent 8051 based board for
developing your project. The SDK provides the features discussed in class and
allows you to use Port 1 and most of Port 3 (P3.0 .. P3.5) for your I/O. You
don’t have to build any external hardware, but by doing so you can see that
your design does actually work. You can easily access the I/O pins either
through the SDK’s onboard header connectors or with the optional ICE cable.
7)
Presentation to the class: You can make an optional ~10
minute presentation to the class for 5-10 extra credit points on your project
grade.
Your project report
must be submitted no later than the final meeting. NO LATE PROJECTS
unless you strictly meet the requirements stated in the catalog for an
incomplete grade.
Final Course Grade:
The project will be graded based on the requirements above. You should write a project report that describes what it does, how it operates (i.e. what modules/functions make up the project and how they are used), and a copy of all code files used in the project.
Project 100 points
Final Exam 100 Points
Changing Your Grade Option: If you need to drop or plan to change your grade option, you must do so through registration no later than the last day of the course. See the back of the UCSD Extension catalog or the extension.ucsd.edu web site for the rules affecting the various grade options.
The Project Report must consist of
- Description (~1 paragraph)
- Block Diagram
(show what's connected so I could duplicate your setup)
- Flow chart (or equivalent)
- Tests that you ran
- Test results
Note: if you do not show tests and results, I will assume it did NOT work.
In addition, you must provide the program itself:
- Listing (both .asm and .lst files)
- Assembled .HEX file
PRESENTATION
For those who are also making a presentation (for optional 10 pts extra credit), you must also submit:
1) Presentation file:
- Prepare your presentation in .ppt. .pdf, .rtf, or MSWord format ONLY
- about 5 slides (LARGE FONTS!) consisting of:
1 Title
2 Description
3 Block Diagram
4 Flow chart (simple!)
5 Tests/results
Students in the live section: Bring your submission on CD-ROM (preferred) or USB memory stick -- no new drivers on my PC! -- **AND** sent via e-mail (see below). If you would like me to bring standard test equipment (scope, signal generator, Multimeter, etc.) to class to aid with your demo, call or e-mail ASAP but no later than the day before class.
Students in the on-line section: You must use the resources you are certain you will have available when the time comes, and must submit a recording of yourself making the presentation, in addition to the material listed elsewhere.
>>> YOUR PRESENTATION MUST BE BRIEF -- No more than 10-15 minutes including the setup and optional demo!!
Optional demo:
If you do a demo in the live class in addition to your presentation, you must include the .hex file (not compressed or zipped!) along with anything else you will need for your demo on CD or USB drive. A demo without a presentation will serve to demonstrate that your project works, but you will not earn extra credit for a demonstration without a presentation!
Students in the LIVE section must:
1) bring a paper copy to class
2) e-mail their project report to ecp1@hte.com in PDF, RTF, or MS Word file format. Your project report should be sent in a single document file if possible, along with the source (.ASM), .LST and .HEX files.
Students in the On-Line section must either:
1) Record the presentation and submit it on CD, DVD, VHS video tape, AVI, MOV, or MPEG digital video format. Large files can be written to a CD or DVD and mailed (preferred), or uploaded via FTP (contact instructor for details).
-- OR --
2) e-mail the project report to ecp1@hte.com in PDF, RTF, or MS Word file format. Your project report should be sent in a single ZIP file, including the source (.ASM), .LST and .HEX files, as well as any other files as may be needed for the instructor to reproduce your results.
RULES FOR FILE NAMES, etc.
In order to make things go smoothly for everyone...
*** BY E-MAIL: *** SEND TO ecp1@hte.com ONLY!!
When sending multiple files by e-mail, PLEASE follow the guidelines below:
1) Name all your files using your initials e.g. "kaproject.*" (that way I won't get a bunch of files named "project.*" )
2) Make sure your name is *INSIDE* every file you send and will show up on the hard copy, preferably in a header or footer. (Then when I print it out I will know who it belongs to!)
3) combine all files into a single ZIP file before e-mailing to ecp1@hte.com
If submitting a CD-ROM, DVD
or USB Drive: Use unzipped files ONLY!
Files provided on a USB drive or disk should *NOT* be zipped or compressed in any way, but rather in their normal native .DOC, .PPT, .PDF, .ASM, .LST, and .HEX format in a dedicated directory in the root.
Envelopes For Return Of Project Reports And Final
Exams:
If you want me to return your graded project and/or final exam, the ONLY way to get it back is to provide a self-addressed, postage paid envelope to the final class meeting. Be sure to provide an envelope that is large enough and has sufficient postage to handle your submission, otherwise I will only send as much as will fit in your envelope. Because of the practical limitations, privacy laws, and logistics, you cannot pick it up. Please write YOUR address for both TO and FROM address -- I do not want you project returned to me "Postage Due" if you put insufficient postage on the envelope! If you forget to include it with your project or final exam, you can mail it to me within one week after the end of the course.
A partial list of Project Ideas:
This is *not* a big project, it can be something only a little bigger than the homework programs. Don't let it get out of hand -- I do *NOT* want you to do anything difficult for your project -- it just needs to be your own original work. You should be able to complete it and still prepare your report and optional presentation easily over a weekend.
Your project should be VERY simple! Flashing LEDs, simple games, adding two one-digit numbers using the serial port for user I/O and displaying the result on the terminal emulator screen on your PC are perfectly acceptable projects. Most projects consist of only a few pages of real code including reasonable comments. DO NOT choose a more complex project, unless you are sure you can complete it in time!
The minimum project for this course is to flash an LED in some interesting way…
-Flash one or more LEDs in some sort of pattern
-Input a serial character and flash an LED in corresponding Morse Code pattern
-Input a string of characters and modify it in some way before sending it back to the display (e.g. change upper/lower case)
-Simple games, like reaction time measurement using the serial port or a switch and LED for I/O.
-Simon Says game using 4 switches and 4 LEDs
-A simple stopwatch using the serial port for I/O to display the time and start/stop the time.
-A regular clock display showing HH:MM:SS using the serial port starting from 00:00:00
-Generate metronome clicks or musical tones using on a Port 1 output bit connected to amplified computer speakers.
-Flash one LED quickly with a varying ON time, resulting in visually apparent brightness variations. e.g.: with the LED on for 3 mS and off for 7 mS, the LED will appear to be on with 30% proportionally lower brightness than fully on.
-Generate pulses or waveforms of some sort and display using an LED, oscilloscope, or voltmeter.
-Count external pulses and display the period or frequency of the external pulses.
Want more ideas? Search the net for simple embedded and robotics projects, and look around at magazine articles in old issues of Circuit Cellar Ink (curcuitcellar.com) and Embedded System Design (embedded.com) or hobbyist magazines.