ECE 375: Computer Organization and Assembly Language Programming
ECE 375 is an exciting course that introduces students to the basics of computer organization and basic computing paradigms. Using a Atmel ATMega128 microcontroller, students will interface with their TekBots and be able to see how their programs and concepts are put into action in a real device.
(ECE Student Prerequisites: A basic TekBot)
The following lab material requires Adobe Acrobot Reader to view.
Hardware Used
Software Used
- AVRStudio4
- CodeVisionAVR
- Universal Programmer GUI
On a Windows machine, extract the .zip file to any location. To run the software, double click Universal_GUI.exe in the Universal Programmer directory.
Important Documents
- Lab Report Example (doc)
- Lab Report Template (tex)
- ATmega128 Datasheet
- AVRStudio4 & ATmega128 Starter Guide
- AVR 8-bit Instruction Set Architecture (ISA)
- AVR Assembler Users Guide
Guide for translating source code to object code for the Mega128.
Lab Manual
Complete ECE 375 Manual
Preface
Section 1: Introduction to AVR Development Tools
Become familiar with the ATmega128, AVRStudio4, and the TekBots Universal Programmer.
- Bumpbot Assembly Code (v2.0)
- TekBot Wiring Diagram (v3.0)
Section 2: C -> Assembler -> Machine Code -> TekBot
This section asks you to write a simple C program that mimics the operation of the TekBot from last section. The code sizes of those two programs are compared.
Section 3: Data Manipulation and the LCD
Very important in any computing system is a method of observing the results. Your mega128 board has an on-board LCD display that can be used to observe the results of various actions. This section asks you to create a simple scrolling marquee on your LCD display.
- LCD Driver (asm)
- LCD Test (asm)
- Lab 3 Skeleton Code (asm)
Section 4: Large Number Arithmetic
Often times in computing you need to work with data types that are not standard to the system you are using. For example, the AVR architecture is only 8 bits, what if you wanted to work with 16 bit numbers? In this section you will design a 'simple' function to perform math on some 16 bit numbers.
Section 5: Simple Interrupts
In engineering there are always many ways of solving a problem or designing a system. Your job as an engineer is to be able to examine the designs and pick the 'best' one. You have built and compiled two different versions of the bumper TekBot in this course. Now you are going to make one more version, this time using external interrupts on the AVR. You will then compare and contrast the three different versions and explain when and why each solution is better.
Section 6: Extremely Simple Computer (ESC)
In this lab we are going to explore in detail how a simple computer processor might work. To do this we are going to simulator called the 'Extremely Simple Computer' (ESC) simulator. Using this tool you will be able to explore computing in depth and gain understanding.
Section 7: Remotely Operated Vehicle
For your project you will need to work together with your partner to make a remote controlled TekBot. You will need to use the IR Communications port on your AVR board to control another AVR board that is connected to the TekBot itself. You need to be able to make your TekBot go forward, backward, stop, and turn either direction.