Graphing Calculator
ECE 476 Final Project, Spring 2003
Jeannette Lukito :: Jonathan Wang

:Introduction:
:High.Level.Design:
:Program.Design:
:Hardware.Design:
:Results:
:Pictures:
:Conclusions:
:Appendix:
:Code.of.Ethics:











Jeannette Lukito
jl259@cornell.edu
Jonathan Wang
jdw24@cornell.edu

Hardware Design

The list of hardware used to create the device is as follows:
  • Atmel Mega32 microcontroller chip with 16 MHertz Crystal
  • Atmel STK500 development board
  • 2 4x4 keypads
  • a 2-bit Video DAC
  • 5-inch TV
General Schematic of our graphing calculator design:


The keypad:

The keypad has the following configuration:

Pin 1 -- row 1 2 3 A
Pin 2 -- row 4 5 6 B
Pin 3 -- row 7 8 9 C
Pin 4 -- row * 0 # D

Pin 5 -- col 1 4 7 *
Pin 6 -- col 2 5 8 0
Pin 7 -- col 3 6 9 #
Pin 8 -- col A B C D

(a) Each switch shorts one row to one column.
(b) Each pin should be connected to one bit of an i/o port.
(c) The i/o port pins will be used both as inputs and outputs. When they are inputs, they should have active pullup resistors.

Video DAC:

The simple 2-bit DAC for the TV has the following configuration:

Video generation:
     Video generation deals mainly with sync generation and image generation. I covered sync generation in the interrupt section. Images are stored in an 800 byte array in the MEga32 RAM. There are 8 bits per byte, so that there are a total of 6400 points. RAM is copied into registers v1-v8, and then blasted out as fast as possible to make a dense raster.