Question: sing ARM Assembly Language (ARM Cortex-M MicroController) Consider a 9-story building with a basement. The first floor is given the number 1, the second is
sing ARM Assembly Language (ARM Cortex-M MicroController)
Consider a 9-story building with a basement. The first floor is given the number 1, the second is given the number 2 and so on. The basement is given the number 0. You will write a program to simulate an elevator operated throughout the whole building. Write the following subroutines that will work with the main program,
a) DELAY: generates a software delay of 1 second.
b) OPEN: displays a Door open message on the screen after a delay of 1 second. A working version of this code is supplied for your use, if you like on the Software Downloads page from the Lab page
c) CLOSE: displays a Door close message on the screen after a delay of 1 second.
d) UP: performs the following procedure: i. Displays a Going UP message on the screen. ii. Goes up one floor at a time (1 second delay between each floor), until the elevator reaches the destination. iii. At each floor, prints that number (current floor number) on the screen. iv. After the elevator reaches the destination floor, stores this number as the current floor number in memory.
e) DOWN: performs the following procedure: i. Displays a Going DOWN message on the screen. ii. Goes down one floor at a time (1 second delay between each floor), until the elevator reaches the destination. iii. At each floor, prints that number (current floor number) on the screen. iv. After the elevator reaches the destination floor, stores this number as the current floor number in memory.
f) STAY: displays a Same floor message on the screen after a delay of 1 second.
Following is the pseudo code you can use for your main program,
1. Initialize the elevator at floor #1 (memory location containing the present location of the elevator).
2. Call the OPEN subroutine.
3. Wait for the input from the user (0-9).
4. Call the CLOSE subroutine.
5. Compare the number input with the present floor number.
6. If the number input is greater than the present floor number, call the UP subroutine. Then jump to step 9.
7. If the number input is less than the present floor number, call the DOWN subroutine. Then jump to step 9.
8. If the number input is equal to the present floor number, call the STAY subroutine
9. Jump back to step 2.
NOTE: Correct code should encompass all subroutines and be integrated into the full program. The answer here will list the contents of all subroutines: DELAY, UP, DOWN, OPEN, CLOSE, STAY, and show how to integrate them into a working program via calling them and making use of POP/PUSH register commands. The answer being looked for is not just any one sub routine or concept, but the full program that incorporates all sub routines and the code for said sub routines. Thanks!
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
