September 24th, 2019

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.