TECH 3233
Microprocessor Tech
Spring 2023

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 17 Welcome

Course Policies

Introduction Computer History

Timeline of Computer History

Computer History

 · History of Intel Processors
 · 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 19 Number System Review

Memory and Bus Architecture
Number Systems

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

Class Notes

(including how to access simulations)
Jan 24Memory and Bus Architecture (cont)

CPU Architecture
Internal ArchitectureHow A CPU Works 
Jan 26CPU Architecture (Cont)

Come ready to ask questions on the "Scott Processor"

ASM and Hand Compiling
 6502 Processor
Visual 6502
6502 Op Codes
6502 Code
Lab 1 - Due in one week via online submission.
Jan 31No Class (Weather)   
Feb 2No Class (Weather)   

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:$(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).