Three of the Four available ports on the STK200 development board connected to a Mega163 MPU are used to interface with our keypad and LCD. We used the external 4 MHz crystal oscillator as the clock to our Mega163. We chose STK200 instead of STK500 because of its smaller size. We want our game to be more portable and the STK200 is a better choice providing all the functionalities we need.

ATMEL Mega163:

We chose Mega163 instead of 8515 as our microcontroller because it has more internal SRAM and Flash (16 KB Flash, 1KB SRAM for Mega163, 8 KB Flash, 512 Byte SRAM for 8515). We believe the extra storage will give us more flexibility in choosing our data structure for players, real estates, and many other string format data (Chance, Community Chest). It also has a hardware multiplier, which might be useful in calculating monetary value of different transaction during the game.

G321D LCD:

We chose the Seiko G321D 320x200 graphics display module for its mutliple layer functionality and built-in SED1330F controller. Since our gameboard is a combination of graphics and text, we thought it will make our life easier if we can draw them in separate independent layers. The built-in SED1330F controller is well documented and has been used in projects from previous semesters. We want to concentrate on the functionality of the game itself, and not be bothered by the interfacing between our microcontroller and the LCD. For future versions of this game, we would like to use a bigger LCD with higher resolution so we can have more room for the gameboard.


This interface controller is well-documented by previous groups. The official technical manual can be found here. We used code from Spring 2001 Graphing Calculator project to implement basic functionality such as drawing a pixel, string, or set cursor position. We used these tools to write helper functions that would make our software part easier to understand. For more detail, look at software section.


We used the 16-buttom keypad in class as the user interface for the game. The user can only input number 0-9, so the menu was designed such that no other button is needed and the user always know which button to press for each command. We used the same decoding scheme as the Security System project in class, read upper nibble while driving lower nibble first, and read lower nibble while driving higher nibble. The hardware schematic for all connection can be seen in schematics section.