Summary of Memory Video Game Using Atmel Mega32
This project develops a graphical Memory card game for an Atmel Mega32 microcontroller. It features black-and-white graphics, keyboard controls, and optional Sega Genesis controller support. The game includes timed gameplay, a high-score table, and two difficulty levels that adjust the number of cards dealt. Key technical implementations involve complex state machines, video generation, serial communication, and third-party hardware interfacing.
Parts used in the Memory Video Game:
- Atmel Mega32 microcontroller unit
- Keyboard
- Sega Genesis controller
Introduction
The main goal of this project was to write and develop a graphical version of the card game commonly referred to as Memory for use on an Atmel Mega32 microcontroller unit. Memory is a card game where the player tries to match pairs of identical cards together by only flipping any two cards over at a time. If the two selected cards match, they are removed from the current playing field; otherwise they are flipped back over. The challenge of the game is remembering where certain cards are located within the playing field so that future matches can be made.
To implement this popular game onto the microcontroller, the project was broken into two main objectives:
- To implement a fully functional graphical version of Memory in black and white. The user will utilize the keyboard for selecting cards/other on-screen game control. Each player will be timed in his/her completion of one game and a small high score table will be implemented to keep track of our best players. Additionally, two different difficulty levels will be available for selection, which will vary the number of cards that are dealt onto the playing field.
- To integrate a Sega Genesis controller into the game to allow the user an easier and more comfortable game control interface.
This project was chosen not only because it is always fun to create, develop, and play a video game, but also because it integrates all of the major lab aspects of ECE 476 into a single, more complex assignment. Our version of Memory demonstrates the use of complex state machines, video generation with a microcontroller, serial communications, and interfacing with third-party products.
For more detail: Memory Video Game
- What is the main goal of this project?
The main goal was to write and develop a graphical version of the card game Memory for use on an Atmel Mega32 microcontroller unit. - How does the user select cards in the game?
The user utilizes the keyboard for selecting cards or other on-screen game controls. - Can users choose different difficulty levels?
Yes, two different difficulty levels are available which vary the number of cards dealt onto the playing field. - Does the game track player performance?
Each player is timed during their completion of one game, and a small high score table tracks the best players. - How can a user improve the game control interface?
A Sega Genesis controller can be integrated into the game to allow for an easier and more comfortable interface. - What happens when two selected cards do not match?
If the two selected cards do not match, they are flipped back over. - What major lab aspects of ECE 476 does this project demonstrate?
The project demonstrates complex state machines, video generation with a microcontroller, serial communications, and interfacing with third-party products.


