Reference no: EM132011824
Final Lab Assignment -
For this lab, you get to pick the topic. It must be a practical or entertaining real-life application. It does not have to be a game that exists - you can make one up, but it must be unique from other submissions. YOUR CODE MUST HAVE A PRACTICAL PURPOSE.
The code must use a minimum of five I/O port functionalities, including, but not limited to...
- Potentiometer / ADC
- LCD
- 7-Segment Display / RGB LED
- Row LEDs
- Keypad
- Pushbuttons/Switches
- Multiple Sounds
The code must include interrupts, polling, and either a multiple attempt or a repeat option. Your code must use an I/O application that has not been explicitly covered in class You may not use the previous EE312 designs, unless your design is sufficiently unique Your project MUST BE APPROVED (See Homework #6)
DELIVERABLES:
1. Create code with final project proposal game selected. (Code must be written using dragon board syntax)
2. Commented Code: DO NOT DEFINE SYNTAX in your comments. Code comments should make your program self-documenting. By following the flow of your code and reading the comments, I should fully understand the purpose and goals of your program WITHOUT reading the lab instructions. a. Block comments prior to each subroutine and main, containing at least the info requested in the Skeleton.asm b. Line comments for each line of code
3. MS Excel Memory Map: Indicate all memory addresses used. a. Indicate contents at assembly (including your executable instructions) b. Indicate contents after execution
4. Minimum 2-page (not-including pictures, single-spaced, maximum font size=12) summary white-paper that includes the following: a. A non-syntax-based description of memory usage for data and for program b. A non-syntax-based description of overall program flow, main, subroutine calls from main and other routines c. A non-syntax-based description of each subroutine d. Execution instructions to the user
5. 15 Minute Final Presentation
This program will simulate the game of Craps: These are my intentions on setting the game up:
The game involves two dice. Each dice has six faces. These faces contain 1, 2, 3, 4, 5 and 6. (I will have to figure out a way to make these numbers show up randomly)
The player plays against the "house", rather than against another player.
Note that the first throw of the dice is handled differently than subsequent throws.
Here is how the game is played:
The player rolls two dice.
After the dice have come to rest, the player adds the spots on the two upward faces to get their sum.
(7Seg Counter will initialize and sum up the total and the LEDs will display the number)
If the sum is 7 or 11 on the first throw, the player wins. (winning Sound will start)
If the sum is 2, 3 or 12 on the first throw (these three values are called "craps"), the player loses (i.e., the "house" wins). (Losing sound will start)
If the sum is 4, 5, 6, 8, 9 or 10 on the first throw, this special number becomes the player's "point".
(LCD will instruct the user whether to roll again, you won, or you lose)
To win, the player must continue rolling the dice until he/she "makes his/her point" (i.e., rolls the special point value again).
The player loses by rolling a 7 before making the point. (Losing sound plays).
RULES:
1. No mixed language - You must do this entirely in assembly language using our instruction set.
2. Jumping to MAIN only occurs ONCE!!!! a) Main gets entered from the beginning when we execute: g 2000 b) There must be a final exit from ALL subroutines via RTS back to the CALLING ROUTINE! c) Exit ISR(s) via RTI back to NORMAL OPERATIONS (NEXT INSTRUCTION AFTER THE INTERRUPT OCCURRED)! d) DO NOT LOAD THE PROGRAM COUNTER to maneuver about the executable code e) MAIN ONLY DIRECTS TRAFFIC (There should not be very many INSTRUCTIONS in MAIN other than JSR to subroutines)
3. No DIRECTIVES intermixed with executable code! (Directives precede Execution!!)
4. Comments: DO NOT DEFINE SYNTAX in comments!!!! (Have I mentioned this enough yet?!?!?!) a. Block comments at the beginning of each subroutine and preceding main that describe the inputs, outputs, and processes w/ respect to overall functionality b. Line comments that describe the contribution of each line to the overall goals of the code c. LABELS should serve to make the code more SELF-DOCUMENTING!
5. DOCUMENT SOURCES!!! If you need help with references, let me know!!
6. Additional rules will be announced AS NEEDED!
Attachment:- Assignment Files.rar