TECH 3233
Microprocessor Tech
Spring 2021

Instructor Info

Daniel Kohn
Office ET218
Phone: 678-4515
Office Hours

Course Info

Course Policies
GradeWatch Access

Assignment Files

Submit Assignments
Graded Work (Feedback)

Required Text

The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio by Sarmad Naimi and Muhammad Ali Mazidi 2nd Ed available via Amazon. Please Buy the NOT Rent.

Author's Website

Required Software

Atmel Studio 7 (Now called "Microchip Studio")
Arduino IDE (for avrdude utility)


Due to the uncertainty of Covid-19, it is possible we will be using different course delivery modes depending on current conditions. The calendar (below) will be updated for "Delivery Mode". Since this can change based on university covid conditions, faculty exposure / need to quarantine and other factors, it is best to check this website each day before class. If it is NOT posted for the day, assume the delivery method is the same as the previous class.

If we meet IN PERSON, students are expected to follow the current Covid-19 Policy (Linked Here) including, but not limited to: wearing masks, sanitizing your work area and maintaining social distancing.

If the class is a HYBRID, make sure you know what day(s) you attend class and what days you are online or doing assignments. If you are considered High Risk and do not wish to come on campus, see THIS WEBSITE on how to apply for a course modification.

If we are ONLINE, classes will be held synchronously at the scheduled time. Please make sure you are familiar with My Zoom Policies.

Also note:

Passcode 930853

As per the course catalog, you are required to have a computer (see this page). It will be impossible for you to be successfull in either Hybrid or On Line classes without one! You will also need a good internet connection for ZOOM conferencing software (please avoid using cell phones or tablets for zoom).

You will need to install the required software on your computer. (downloading and installing these programs will be discussed in class).

Course Outline:

DateDelivery ModeTopicReadingHandoutsAssignments
Jan 19 On Line Welcome

Course Policies

Introduction Computer History

Number System Review

Timeline of Computer History

Computer History

 · History of Intel Processors (Video)
 · History Lost and Found - Mark I Computer (Video)
 · History Lost and Found - ENIAC (Video)
 · History Lost and Found - Transistor (Video)
 · History Lost and Found - Apple Computer (Video)
 · The Most Important Invention of the 20th Century: Transistors (Video)
 · The Most Important Invention of the 20th Century: Transistors (Video)

Number Systems

Class Notes

Class Notes
Jan 21 On Line
Memory and Bus Architecture

Flip Flops and Latches Review

Tri-State Buffers

Digital Buffer and the Tri-State Buffer

Mux / DeMux

Memory (Note: This chapter goes into greater detail than required for this class.)

(including how to access simulations)
Jan 26On Line
We WILL meet on zoom during class time
Lab 1  Lab 1 - Due in one week via online submission.
Jan 28On LineMemory and Bus Architecture (cont)

CPU Architecture
Internal ArchitectureHow A CPU Works 
Feb 2On LineCPU Architecture (Cont)

Come ready to ask questions on the "Scott Processor"

ASM and Hand Compiling
 6502 Processor
Visual 6502
6502 Op Codes
6502 Code
Feb 4On LineLab #2  Lab #2 Atmel, ASM and C. Due in one week at start of class.
Feb 9On LineIntro to I/O Ports (output) Chp4 PPTLab #3a - When complete, demo to instructor and submit zip file of project.
Feb 11-------No Class due to Power Failure   
Feb 16On LineIntro to I/O Ports (inputs)SW Code Example

Stepper Motors
Chp4 PPTLab #3b
Feb 18On LineContinue discussing Lab 3b   
Feb 23On LineContinue discussing Lab 3b   
Feb 25On LineA2D / D2AClass Notes

Successive Aprox Spreadsheet
Chp4 PPTLab #4
Mar 2On Line    
Mar 4On Line   Lab #3c - Continuing on from Lab #3b and Lab #4, use the output of the potentiometer to adjust the speed of the stepper motor.
Mar 9------Wellness Break (No Class)   
Mar 11On LineInterruptsSwitch Bounce

Volatile (in C)
Chp 10 (especially 10.3) 
Mar 16On Line   Lab #5
Mar 18On LineFinish Lab #5   
Mar 23On LineIntro to Timers
Timer Overflow
 Timer OverflowLab #6
Mar 25On LineInput Capture Prof Kohn's Input Capture PPTLab #7 - Input Capture using TSL237 Light Sensor.
Mar 30On LineFinish Lab #7   
Apr 1On LineOutput Compare Prof Kohn's Output Compare PPTLab #8 - Use Output Compare to play the Jeopardy Theme.

Use this excel spreadsheet that contains the notes and Frequencies to calculate the number of counts per note.

Here is a FULL SIZE version of the Notes to Freq Table. It is best to print in Landscape Mode.
Apr 6On LineWork on Lab #8   
Apr 8------Wellness Break (No Class)   
Apr 14On LineFinish Lab #8   
Apr 16On LineDiscuss End of Semester Project  End of Semester Project.

Due May 4, 2021 by 7:30pm (Exam Time).

Reference Links:

ATmega328P Website
ATmega328P / Arduino pinout
C Quick Reference
NASA C Styleguide
AVR-C Video Series
Using Named Bits in ATEML Studio
IO Issue - AVR Freaks
Timer Calculator
Atmega328P names in Atmel Studio

Info needed for Labs

Determine Com Port

With Arduino plugged in to computer's USB port
Win 10 - Search for "Powershell" and open
Type - "Get-WMIObject Win32_SerialPort" (no quotes)
check results for Arduino Uno (Com __ )

Atmel Studio

Setup Strings:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM7 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"

To get printf to work with floating point values:

Project | nameofproject Properties | Toolchain : AVR/GNU Linker | General | Check "Use vprintf library(-Wl,-u,vfprintf)"
Project | nameofproject Properties | Toolchain : AVR/GNU Linker | Miscellaneous | Other Linker Flags put into textbox | "-lprintf_flt" (leave off quotes).