"AVR Studio AssemblerSimulator"
AVR Studio Assembler/Simulator Tutorial AVR Studio ver 4.13Assembler and Simulator Tutorial AVR Studio 4 is a professional Integrated Development Environment (IDE) for writing and debugging AVR applications in Windows 9x/NT/2000/XP environments. This tutorial assumes that you have installed AVR Studio 4 on your computer. If you do not have AVR Studio yet, you may obtain a copy of AVR Studio 4 from one of 3 places: 1. Atmel Corporation: http://www.atmel.com 2. AVR Freaks: http://www.avrfreaks.net 3. Borrow a CD from your instructor This tutorial will guide you through the steps to: 1. Execute the AVR Studio 4 Integrated Development Environment (IDE), 2. Type in a program, 3. Assemble the program, and 4. Simulate a program The first program you will enter is shown below (Figure 1). This program will initialize the B and D ports on the ATMega128 AVR processor and then turn on a single LED connected to PortB, pin 0. “C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m128def.inc" Note: The directory path to the file “m128def.inc” may be different on your computer. Locate the file and make sure your path is correct. Figure 1: LED On Program Step 1: Open AVR Studio 4 IDE. You should see the program banner shown below: Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Figure 2: AVR Studio 4 Banner Step 2: When IDE opens, you will see the programming and simulator environment as well as a dialog box (Figure 3) requesting information: are you starting a new project or opening a saved project? Figure 3: AVR Studio IDE Step 3: Click on the “New Project” button: Figure 4: Welcome Dialog Box Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Step 4: In the next dialog box, choose the Atmel AVR Assembler as the project type: Figure 5: Choose Atmel AVR Assembler Step 5: Type in a project name and the initial file name: Figure 6: Type Project and Initial File Names Step 6: Click on the “Next” button Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Step 7: Choose AVR Simulator for the Debug Platform and then scroll down the right window to choose the ATmega128 AVR processor as the device Figure 7: Choose Simulator and ATmega128 Step 8: Click on the Finish button. You should then see the IDE (you may have to maximize the editing window to see the same thing as shown in Figure 8): Figure 8: AVR Studio 4 IDE Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Step 9: Type in the program as shown in Figure 1. Note the color-coded text. This is done automatically by the IDE and helps you to make corrections as you go. Figure 9: Typed Program Step 10: Save the program. When you save a program, use the Save All button. You are actually saving the complete project when you click Save All. It is also good practice to periodically save your program as you type. Step 11: Assemble your program. You may do this by selecting Build -> Build (from the “Build Menu”) or by striking the [F7] key: Figure 10: Program Assembled Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Step 12: Continue assembling and correcting errors until the program assembles without error (note the green dot in the lower window in Figure 10 and the comment that states: “Assembly complete, 0 errors, 0 warnings”). You are ready to simulate. Step 13: Simulate the program. To start the simulator you may choose Debug-> Start Debugging (“Start Debugging” from the “Debug Menu”) or you may click on the arrow button as shown below: Figure 11:Start Simulation Step 14: In the I/O View, open the “I/O ATMEGA128,” and the “PortB” views by clicking on the + symbol. Figure 12: I/O Views Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial Step 15: Single step through your program by striking the [F11] key: Figure 13: FF sent to Data Direction Register B (all pins outputs) Figure 14: bit 0 set Note: The “sbi PortB,0” (sbi is the “set bit”) instruction has been executed, although the pointer is pointing at the next instruction. So, bit 0 in PortB is set (equal to 1). It is important to note 2 things: 1. Pin 0 (PinB0) on PortB has not gone high yet, even though bit 0 in PortB is set. PinB0 will go high as the next instruction is executed 2. The instruction: “cbi PortB,0” has not been executed yet even though the arrow is pointing to it. Last Updated: January 2008 AVR Studio Assembler/Simulator Tutorial The arrow always points to the next instruction to be executed. Step 16: Continue stepping through the program until you are sure that the program is executing as designed. Note: The next few screens may be a little confusing because the program sets bit 0 in PortB and then immediately clears bit 0 in PortB. The simulators shows this, but shows that bit 0 on PinB (the actual pin on the Atmega128) is one cycle behind bit 0 in PortB: Figure 15: PinB0 is high Figure 16: PinB0 is low Last Updated: January 2008