ECE 476 Final Project --  Spring 2003

High Level Design

  Main Programming

Our game design is based on the Atmel Mega32 microcontroller.  Since Mega32 has more memory than Mega163, we choose to use Mega32 with STK 500 board as our main programming board.  The main game logic and game display are stored in Mega32.  The audio part of our game is stored in Mega163 on STK 200 board.

Game Display

We need to display the arrows on the screen to indicate which direction button the player should step on.  In addition, the display is needed for other animation or motion display.  From our lab experience, we can choose to implement the game display with either LCD or TV.  Initially, we have decided to choose LCD, Seiko G321D, over TV because LCD display offers more pixel than TV, which allows us to draw more complex graphics and more details on the game screen.  Also, LCD display allows us more time to do the calculation and other major function in the game without worrying about flickers on TV.  However, we encountered some technical difficulties with the LCD available in the lab, so we have decided to switch to TV instead.

To achieve reasonable frame rate on TV, we need to complete all logic calculation and draw all graphics in 60 lines. Otherwise, the video will not be in sync and there will be jitters and flickers on screen.  In addition, we cannot use interrupt to detect button pushed with TV because it may affect the sync of the TV.  Unfortunately, this lowers our accuracy in detecting when the buttons are pushed.

Control Button

A dancing mat is needed so the players can step on to play in the original game.  To simulate the dancing mat, we decide to use keypad as the game controller where the button 2,4,6 and 8 represent up, left, right and down buttons, and button D represents start button.


We need a scheme to store and produce songs.  We need enough memory on board to allow us to store as much songs as possible to make the game more fun to play.  With this in mind, we have decided to use Atmel Mega163 with STK 200 to store and play the music.  Although we cannot use other high end music encoding scheme, we have built a DAC to produce sample sound wave to make the songs realistic enough.  In addition, we need a scheme to convert this sound to music and broadcast through the audio output of TV.  We store frequency of the sound note in flash memory and a lookup table in the program.  Then, we store the songs by writing different functions storing the music note of the songs.