- STK200 Development Board
- ATMEL Mega163 MPU
- G321D LCD
- SED1330F (controller built into G321D)
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.
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.
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.