This was an introduction to Assembly programming and electronics component usage.
The system itself is a Finite State Machine which has different states that allows it to count backwards from 3 to 0 in binary. The circuit itself used D-Flip Flops to implement the FSM.
The assembly code was needed in order to allow the microprocessor to interpret the clock properly using edge detection and trigger the shift from state to state.
Problems Faced:
As with any electronics project, it usually does not work the first time unless you are a leprechaun. The first time I connected the FSM to a power supply it did not light up the LEDs at all.
Troubleshooting a relatively complicated (at the time) Finite State Machine with oscilloscope probes is a nightmare. However, I learned a lot from the experience and fine-tuned my oscilloscope tuning skills.
After several hours of hunching over the circuit pulling out jumper cables, I would never have imagined to be so happy to see two LEDs flashing in my life.