231a-ag final presentation

From CSclasswiki
Jump to: navigation, search

Final Project Presentation

My Original Project

My original project was to create an alarm clock that needed a code punched into the keypad in order to turn it off. The assembly language was originally going to get the time from the computer, turn on the alarm at the appropriate time, process the "keys pressed" and compare the order of those keys pressed to the correct combination of keys, then send a message to the Arduino to stop the "alarm" (ie. buzzer). The Arduino sketch was originally supposed to make it so that whichever key was pressed, the corresponding light on the LED matrix would light up, and relay the key pressed to the assembly program.

I Decided After Testing...

I decided after testing that for some reason, since the assembly program wouldn't work directly with the Arduino sketch correctly, to do everything in the Arduino sketch, and show the assembly code that didn't work.

The Software

Currently, the assembly program exists, but doesn't do anything. The program that has been written takes in the time, sends the Arduino a signal to turn on the buzzer when the correct time has been detected, "reads" the keys pressed on the keypad, and compares it to the correct sequence. The Arduino program turns on the buzzer as soon as the program is loaded (so it doesn't take in the time), flashes the sequence that is the "correct" sequence, and the buzzer will buzz until the correct three numbers are entered.


  • Figuring out how the LED matrix was wired up - there were 24 pins for a 8x8 matrix, and that was pretty confusing at first, until I found a good, legible diagram.
  • Figuring out how the keypad worked - which pins corresponded to what, and how to program the pins to respond to being pressed, how to wire the keypad to the Arduino.
  • Trying to get the assembly to work with the Arduino sketch. Everything compiled... it just didn't run properly =( (I still haven't figured out why those weird numbers printed out...)


My project is fully documented here. There are pages for every day I worked on my project, and the progress/problems I made or ran into. (That's why this page is kind of sparse... I didn't want to be repeating information.)