An assortment of assembly
8051 assembly projects in a course that moved from binary to machine language and beyond.
I was given the opportunity to complete a number of projects
in 8051 Assembly over the course of UBC's relatively polarizing Digital Logic & Microcontrollers class, CPEN 312.
Using
a CV-8052 soft processor installed on an Altera DE0-CV board,
I wrote, compiled and tested:
- An 8-bit binary adder/subtractor
- A 2-digit BCD adder/subtractor
- A programmable HH:MM:SS clock
- A programmable HH:MM:SS clock
- A calculator (input, output in decimal)
- A square wave frequency measurement device, and
- A 2-team baseball score tracker
All inputs were using buttons, switches and/or a frequency generator. All outputs were displayed on 7-segment
displays and/or an LED array. I also designed and worked with a number of finite and programmable state machines.
This was a crazy introduction to the world of ultra low-level firmware, and I loved it! It was the first time I
realized how interesting the world at the interface of software and hardware can be. Will definitely be taking
another class like this again in the future.