CMPEN 472 Code Warrior Debugger Simulator Programming Project Paper

Question Description

Introduction/Background

  1. Read the textbook (Valvano) Sections for I/O ports. Also read the MC9S12C128 CPU Reference Manual and the MC9S12C chip Data Sheet. Again, you do NOT need to understand all of them at this time.
  2. This Semester, we are using ONLY the CodeWarrior Debugger/Simulator to show the hardware and program workings. For the grading of all homework during this Semester, we will be testing your program on the CodeWarrior simulator only.
  3. If your program works on the simulator, it will be working on the actual board, in most cases. However, there are very few differences between the CodeWarrior simulator and the actual CSM-12C128 board. The only one major difference between running your program on the CodeWarrior simulator and running your program on the actual CSM-12C128 board is timing. Running your program on the CodeWarrior simulator is about 100 times slower than running your program on the actual CSM-12C128 board.
  4. If you correctly complete your Homework 3 program and running it on the CodeWarrior simulator, you will see the fast blinking LED on the simulator Visualization Tool window. And you will notice the duty cycle of an LED ON/OFF ratio change. However, when you run your Homework 3 program on the actual CSM-12C128 board, you will see the real LED dimmed – it is blinking at least 100 times faster than the simulator, so that your eyes perceive it as simply “dimmed” and not bliking.)
  5. Another words, the dimming the LED light on the actual CSM-12C128 board means fast blinking LED on the simulator Visualization Tool window and the duty cycle of the LED ON/OFF ratio will change.

Instruction Steps

  1. Please see the Homework 3 Sample program and the CodeWarrior Debugger/Simulator setup for LEDs and Switches.
  2. The next four steps are the experiments and questions for running your program on the actual board in real time. They are designed to introduce an important Pulse Width Modulation (PWM) concept widely used in modern high definition audio system. Please understand as much as possible even if we will be programming targeted only for the CodeWarrior simulator – to blink an LED.
  3. If you bought the CSM-12C128 board and if you like to to work with the CSM-12C128 board also for this homework, you must download the HyperTerminal program (click here) and install it on your computer. The step by step guide using the USB-to-Serial cable, installing the HyperTerminal, connecting the CSM-12C128 board with HyperTerminal is posted: Guide – USB, HyperTerminal, and CSM-12C128 board connection. (The USB-to-Serial cable driver should be auto-installed – it is a part of the MS Windows System – when you plug in the cable. In case if you have problem, here is the driver software – click here. )
  4. To test CSM-12C128 board and your computer connection, load your Homework 2 program (or the sample Homework 2 program) to the CSM-12C128 board from your computer and run. Be sure to check the LED blinking from your Homework 2, correctly operating on the CSM-12C128 board.
  5. Suggested experiment: can you change your Homework 2 program to make the LED blinking faster? One can simply reduce the ‘Counter1’ and/or ‘Counter2’ number used for the delay subroutine. What values of ‘Counter1’ and ‘Counter2’ will cause you to not see the LED blinking, such that LED lights become steady lit?
  6. Homework 3 question: What values of ‘Counter1’ and ‘Counter2’ will cause the sample Homework 2 LED blinking 1000 time per each second?
  7. Now, check the PWM introduction material:
    Introduction to PWM,
    Pulse-width modulation,
    more intro to PWM, and
    Pulse-width modulation on Wikipedia.
  8. Write the program, ‘main.asm’, to pulse (dim) the LED lights. The pulse time resolution must be 100 steps in one second as follows:

    Initial state of LED lights:
    (0) LED 1 is OFF (0%), LED 3 is OFF (0%), and LED 4 is ON (100%).

    SW1 NOT pressed:
    (1) LED 2 turn on for 0.21 second, then turn off for 0.79 second, and repeat.

    SW1 pressed:
    (2) LED 2 turn on for 0.89 second, then turn off for 0.11 second, and repeat.

  9. Suggested light blinking (pulsing or dimming) algorithm is outlined below:
                initializemainloop:   check sw1                 if sw1 not pressed      ; 0.21second light ON                      set counter ONN=21                      set counter OFF=79                      turn-on LED 2                           loop 21 times (using counter ONN, call delay10msec 21 time)                      turn-off LED 2                           loop 79 times (using counter OFF, call delay10msec 79 time)                      goto mainloop                 if sw1 pressed           ; 0.89second light ON                      set counter ONN=89                      set counter OFF=11                      turn-on LED 2                           loop 89 times (using counter ONN, call delay10msec 89 time)                      turn-off LED 2                           loop 11 times (using counter OFF, call delay10msec 11 time)                      goto mainloop
  10. You may want to see a sample Flow Charts of the above algorithm. *Please note that the sample flow charts show the LED 3 blinking (dimming) but you are require to blink the LED 2 for this homework.
  11. The counter variable ‘ONN’ is the delay count for LED-on time. The counter variable ‘OFF’ is the delay count for LED-off time. The sum of ‘ONN’ and ‘OFF’ is always 100.
  12. The delay subroutine ‘delay10msec’ will cause 10 msec delay when called. The LED on-offf cycle will always take 1 sec (100 * 10 msec). Therefore, this program will turn on-off the LED light 1 time per second.
  13. Simply changing ‘delay10msec’ program (10 msec delay) to ‘delay10usec’ program (10 usec delay), the program cycles 1000 times faster. With such high rate of LED on-off cycles, the normal human eyes will perceive the LED light level of 21% or 89%. One can see this only on the actual board and not on the CodeWarrior simulator because the simulation on PC is too slow – one will only see the LED color fast blinking or flickering on the simulator.
  14. For the Homework 3 turn-in, be sure to use 10 usec delay and not the 10 msec delay. Also be sure that LED 1, LED 3, and LED 4 maintain their initial light level state, and LED 2 light blinking changes based on the switch SW1 pressing.
  15. You MUST note that the LED light and switch press behavior is opposite way on the CSM-12C128 board compare to the CodeWarrior simulator:
    On the CSM-12C128 board:  LDAA %10111111  STAA PORTB       ; Turn-On LED3 only  LDAA %0100XXXX  STAA PORTB       ; Turn-OFF LED3, Turn-On LED 1, 2, 4  switch SW1 button pressed =>     PTIP=xxxxxxx0, ANDA=> Z=1  switch SW1 button not pressed => PTIP=xxxxxxx1, ANDA=> Z=0CodeWarrior simulator/debugger way:  LDAA %01000000  STAA PORTB       ; Turn-On LED3 only  LDAA %1011XXXX  STAA PORTB       ; Turn-OFF LED3, Turn-On LED 1, 2, 4  switch SW1 button pressed     => PORTB=00000001, ANDA=> Z=0  switch SW1 button not pressed => PORTB=00000000, ANDA=> Z=1  (Put LED at PORTB bit 0 and set it as an output in order to   press the LED as a switch.)
    
    
  16. Design the program to start at $3100 and data to start at $3000.
  17. Be sure to put much comments so that grader and others can clearly and quickly understand your program. Comments are very important in assembly language programs.
  18. If you set the delay time on the program as minimum, then you can do single step through the program to check the LED light ON and OFF on the simulation. Also note that when you change the program source file, you need to re- Make the main.asm file and restart the debugger.
  19. The CodeWarrior debugger has many features that help the programmer in debugging process. For example, I use ‘Breakpoint’ feature often in debugging.
  20. You may want to see and check the Sample Grading Sheet for this homework. Grading point distribution is much different than Homework 1 and Homework 2.
  21. Copy your ‘main.asm’ file to ‘cmpen472hw3_YourLastName.asm’. For example, mine will be ‘cmpen472hw3_choi.asm’ Then submit your .asm file (do NOT ZIP your file).
  22. Turn-in your project source code file through Penn State CANVAS. Upload your source code file into the CANVAS Assignment’s Homework submission. Be sure to select CMPEN 472 class and correct Homework number, and correct file name.

Congratulations on your third CMPEN 472 homework completion!

Get 20% Discount on This Paper
Pages (550 words)
Approximate price: -

Try it now!

Get 20% Discount on This Paper

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Ace Writing Center has stood as the world’s leading custom essay writing services providers. Once you enter all the details in the order form under the place order button, the rest is up to us.

Essays

Essay Writing Services

At Ace Writing Center, Nowadays, students normally have extremely busy schedules. You will note that some of them have to take on some evening or weekend jobs in order to get some income that can help them to sustain in college or in the university. This can deny them a chance to write all the essays given. Others usually get bombarded with a lot of work by their lecturers. This can still delay such students from working on all their essays. However, some of them usually try to work on all these essays but end up delivering their work late. This can prevent them from graduating since most lecturers are strict on deadlines. If you want to write a business essay, the wise way is to hire an outstanding essay writing service like us, so that you can get the best results. If you are keen, you will note that many companies usually overcharge their customers. Some of them are there only to make money. And in reality, they really don’t care to build a long term commitment with students. You should not choose such companies. You should take your time and choose a reliable company to work with. Ace Writing Center is the ultimate solution for you. We have been offering our writing service for more than 7 years. This is a clear indication that you will get quality essay writing service. We have a wide range of writers who can work on any business essay that you might have. We believe in doing extensive research so that we can provide quality work to all our clients. .

Admissions

Admission and Business Papers

Have you ever had to write an admission essay for college? The majority of students face the same issues when applying to a university or college and many in such situations decide they need professional help to cope with this matter. They get in a situation when the deadline keeps coming closer but lack motivation to start because they are just not sure if their writing skills are strong enough. We have a solution for you! Ace Writing Center is the best admission essay writing service with a large professional team and years of experience in providing high-quality papers to students of all levels and faculties. The mission of our team is to help students make their dreams of entering a good college come true and that’s what we offer!.

Editing

Editing and Proofreading

Sometimes all the words for your paper just flow out of your mind and into your fingers. You type quickly at your keyboard and there they are, your beautiful words right there on the screen. But you have no idea how to polish it up. You may be wishing there was a paper writing service that offered this type of writing service. Look no more! Here at Ace Writing Center, we offer you an editing and proofreading option that you can't find anywhere else..

Coursework

College Essay Writing

In case you are familiar Ace Writing Center, you know the way to distinguish a better company from a cheap one exactly. First of all, poor service website does not have a sufficient support. We think support team is an essential part of success; it has to answer all clients’ questions and be a connecting link between clients and their writers. On our web-service you will get answers about anything you need and your writer will receive all your instructions, assignments and requirements exactly and swiftly. A writing service that we run has got a flexible pricing system that will save you from senseless wastes and many bonus systems that let you sparing money for something important for you.