TECH 3233
Microprocessor Tech
Spring 2024

Instructor Info

Daniel Kohn
Office ET218
Phone: 678-4515
Office Hours

Course Info

Course Policies
GradeWatch Access

Assignment Files

Submit Assignments

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 (use Legacy IDE 1.8.x - for avrdude utility)

Course Outline:

Jan 16No Class (Due to Inclement Weather)   
Jan 18No Class (Due to Inclement Weather)   
Jan 23 Welcome

Course Policies

Introduction Computer History

Team Link to class

Timeline of Computer History

Computer History

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

Class Notes  
Jan 25 Number System Review

Team Link to class

Number Systems

Big Endian / Little Endian

Class Notes

Jan 30 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.)

Adafruit Digital Circuits 5: Memories

(including how to access simulations)
Feb 1Arithmetic Logic Unit (ALU)

CPU Architecture
Internal ArchitectureALU Sim

How A CPU Works
HW #1 (ALU) - Due in one week.
Feb 6CPU Architecture (Cont)

Come ready to ask questions on the "Scott Processor"

ASM and Hand Compiling
 How A CPU Works

6502 Processor
Visual 6502
6502 Op Codes
6502 Code

Class notes
Lab 1 - Due in one week via online submission.
Feb 8Discussion of Lab #1 12-14

ATmega328P (Brief Intro)
See this doc:
CPU Page 18 (Fig 7-1)
Block Diagram Page 15 (Fig 2-1)
Status Register Page 20 (7.3.1)
Registers Page 21 (Fig 7-2)
Feb 13Hand Compiling ASM to ML
Hand Tracing
 Class NotesLab 3
Feb 15Lab #3 (Checksum and Time Delay)

Input / Output
 Checksum Spreadsheet

Time Delay Spreadsheet

Class Notes
HW 2 - Due in one week at start of class.
Feb 20Review HW #1

Review of C Programming

I/O Cont
Bitwise Operators
Lab 4a
C Programming (program structure, loops, if's etc)

Bitwise Operators (Reading)

Tutorial Point Bitwise Opeators in C
 Lab 4a - When complete, demo to instructor and submit zip file of the project.

HW #1 (ALU redo) - Due in one week (will replace 1st attempt).

Reference Links:

ATmega328P Website
  • ATMega 328P Data Sheet
  • AVR Instruction Set
ATmega328P / Arduino pinout
C Quick Reference
NASA C Styleguide

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

-v -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM7 -b 115200 -U flash:w:$(TargetDir)$(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).