ECE 375 Lab Home | TA Information | Syllabus | Assignments | Resources

ECE 375 Lab Winter 2017 - Computer Organization and Assembly Language Programming


Look here for recent announcements regarding all labs for ECE 375.

  • Taylor's March 6th office hours have been cancelled - please send an email if you have any questions.

  • There is a jumper setting on the mega128 board than can cause INT3 to not work correctly (if used) in Lab 7. Please (temporarily!) remove the shunt jumper marked J11 when you are testing or demonstrating your Lab 7 code.
    For help locating this jumper, please refer to the image linked in the Lab 7 section below.

  • Please make sure to read the Academic Integrity section of the syllabus closely.

  • Alternate links for the datasheets and ISA are provided in the References section.


This page contains information concerning all lab sections for the Winter 2017 term. You will find lab information (instructions and sample code), reference information, and TA contact information, all of which are intended to help you successfully complete your lab assignments.

ECE 375 Class WebPage

This page was last updated on January 10th, 2017 at 1:45 pm.

TA Information

All labs and TA office hours are held in DEARBORN 203

Taylor Johnson*
Lab Time: N/A
Office Hours: Monday 2:00PM - 4:00PM

Arul Dhamodaran*
Lab Times: Tuesday 5:00PM - 6:50PM, Wednesday 5:00PM - 6:50PM
Office Hours: Friday 3:00PM - 5:00PM

Gurjeet Singh*
Lab Times: Tuesday 7:00PM - 8:50PM, Thursday 10:00AM - 11:50AM
Office Hours: Wednesday 3:00PM - 5:00PM

Neale Ratzlaff*
Lab Time: Wednesday 8:00AM - 9:50AM
Office Hours: Tuesday 8:00AM - 10:00AM

Office hours can also be made by appointment!
* - replace 'NOSPAM' with 'oregonstate'


Each lab typically consists of three parts:

  1. Pre-lab (10%)
  2. Write-up (30%)
  3. Implementation (60%)

Note: Some labs have an optional challenge that can earn you up to 10% extra credit. Additionally, some labs may have different weights depending on lab content and difficulty. Please refer to a particular lab's handout for details about available extra credit and/or non-standard weighting.

Academic Integrity

As an Oregon State University student, you are obligated to conduct yourself in accordance with the Student Conduct Code (PDF link). The Student Conduct Code makes it clear that cheating and plagiarism qualify as academic dishonesty, and are strictly forbidden.

The basic principle is: it is never okay to represent another person's work as your own. This applies to all submitted lab work, including prelab questions, lab write-up content, actual assembly code, and study questions.

For some examples of acceptable and unacceptable academic conduct in the context of ECE 375, please read the following document: DOs and DO NOTs. If you have any questions about these examples, or about the Academic Integrity policy in general, please don't hesitate to ask your lab TA.


The pre-lab is due at the beginning of lab via TEACH, and accounts for 10% of your lab grade unless otherwise noted. It is important to take the time to understand and complete each pre-lab. By doing so, you will be able to perform the lab easily and in a timely manner.


Each lab consists of a write-up that is due the following week, as a .pdf file submitted to TEACH. You are required to use the templates provided below (Word or LaTeX). You will notice the outline consists of the following:

  • Introduction: purpose of lab
  • Program Overview: detailed description of assembly program
  • Additional Questions: answers to any study questions in lab handout
  • Difficulties: (optional but recommended) a description of any difficulties encountered
  • Conclusion: summary of lab with a personal thought
  • Source Code: your completed assembly code MUST be included in your report, and MUST be well-documented.

This part of the lab typically makes up a large portion of the lab grade (30%). Therefore, you will need to spend some time and effort each week on creating a professional, organized, and readable document in order to receive full credit for this part of the lab.


The implementation and demonstration of your lab is weighted heavily. This part of the lab is graded based on the correctness of your source code, which you must include in your write-up and also submit to TEACH as an .asm file.

This part of the lab is also based on the correct demonstration of your TekBot. Your TekBot's demo behavior should match what the code you provide tells it to do, otherwise you will be docked heavily on this part of the lab. Together the implementation (assembly code) and demonstration usually account for 60% of the lab grade.


You can earn an extra 10% by completing the challenges given for each lab. Challenges are optional. If you choose to do a challenge you must demonstrate your working robot to the TA and also include the source code within your write-up (accompanied with an explanation of that code and the challenge). You must also submit your challenge code as an .asm file to TEACH, in addition to your non-challenge .asm file.

Online Submission

All lab work is to be submitted online using TEACH (direct link). All document-type submissions must be in .pdf format, while all code submissions must be in .asm format (or .c for Lab 2).

  • Prelab assignments have their own entry in TEACH. For example, the Lab 4 prelab must be submitted to the assignment named "Lab4_Prelab".
  • Lab write-ups and source code (.asm) files will share a single assignment entry on TEACH. For example, when you complete Lab 4, you will need to upload your write-up and your completed .asm file to the assignment named “Lab4_Report”. (Note: you still need to include your source code within your write-up.)
  • If you are working with a partner, only one of you needs to submit your group write-up and code to TEACH (just make sure both of your names are included within the submitted files).
  • Since late work is not accepted in this class, TEACH is configured to not accept submissions after an assignment’s listed due date.
  • SPECIAL NOTE: For those few students who are registered for one lab section but have permission to regularly attend a LATER section, please note that TEACH will only allow you to submit to the section for which you are officially registered. Since this will result in TEACH having the wrong due date for you, you may either (1) submit your assignments before the early deadline, or (2) submit your work directly to your TA via email, before your actual deadline.

Lab Grading

Lab assignments will be weighted as follows (may change slightly, but will be finalized by Week 2):

Lab 1 - 2%
Lab 2 - 5%
Lab 3 - 8%
Lab 4 - 10%
Lab 5 - 15%
Lab 6 - 15%
Lab 7 - 20%
Lab 8 - 25%

Lab Assignments

Disclaimer: Please note that the labs are subject to change. They are guaranteed to be correct by 12 midnight before the Monday of the week that they are assigned.

All labs require a Final Report / Write-up due when you demo your lab at the beginning of the following lab. An example report and template is provided in Word(.doc) and LaTex(.tex) formats. Use either template as the format for your report. Note: for the first lab no write-up is required but you must turn in your answers to the study questions.

Week, Assignment Description Files Due Date What to Turn In

Lab 1 Week 1

Lab Introduction - Become familiar with the ATmega128, Atmel Studio, and the usbasp programmer

Lab 1 Handout

Example AVR Code

Wiring Diagram (mtr_ctlr.2)

Wiring Diagram (mtr_ctlr.4)

Day of lab/
2nd Week

Credit for implementation is given if you attend lab and demonstrate the Basic BumpBot to your TA. Study questions are due the following week via TEACH

Lab 2 Week 2

C->Assembly->Machine Code->TekBot

Lab 2 Handout

Example C Code

Skeleton C Code

ATMega128 I/O Ports (via Roger Traylor for ECE 473)

3rd Week

Lab Write-up and Source Code, Demo to TA

Lab 3 Week 3

Introduction to AVR Simulation with Atmel Studio

Lab 3 Handout

Sample Code

4th Week

Answers to Study Questions, Demo to TA

Lab 4

Data Manipulation and the LCD Display

Lab 4 Handout

Skeleton Code

LCD Driver

Program and Data Memory (pdf)

Lab 4 troubleshooting (txt)

5th Week

Lab Write-up and Source Code, Demo to TA

Lab 5

Large Number Arithmetic

Lab 5 Handout

Skeleton Code

6th Week

Lab Write-up and Source Code, Demo to TA

Lab 6

External Interrupts

Lab 6 Handout

Skeleton Code

7th Week

Lab Write-up and Source Code, Demo to TA

Lab 7


Lab 7 Handout

Skeleton Code

J11 Jumper Removal

8th Week

Lab Write-up and Source Code, Demo to TA

Lab 8

Remotely Operated Vehicle (USART)

Lab 8 Handout

Remote Skeleton Code

Robot Skeleton Code

10th Week

Lab Write-up and Source Code, Demo to TA


User Guides


Reference Documents