NTSC (Television) Pong


I completed this project in 2001 for a networks class in college. We were instructed to complete a presentation on whatever "protocol" we wanted, and I was already starting an NTSC/TV interfacing project on my own. (She didn't know that...). I chose to implement the game "Pong".

Background on NTSC

Here's a snapshot of a "real" NTSC television signal (courtesy http://belogic.com). A few key parts of this waveform. First, there is a horizontal sync pulse that happens every 63.5 microseconds. This signal tells the NTSC-compliant television when to "scan back" to the left side of the screen. Next is the color burst information, which tells the TV how to display...colors! The rest of the time-correlated signal tells the TV how much intensity each pixel should have at certain parts of the horizontal scan.

Implementation on a PIC 16F877

It's not required to give color burst information in an NTSC, so all we have to do is send the horizontal sync, and one other signal level (white). Here are two screenshots of the waveform the PIC 16F877 outputs.

The first one shows two spikes, one near the beginning of the horizontal signal (left side of the screen), and the other near the end of the horizontal signal (right side of the screen). These correspond to displaying pixels of the left and right paddle, respectively (see the pic at the top).

The second picture shows a solid signal from left to right, corresponding to either the top or bottom wall (see the pic at the top).

I completed this project before I began creating my own PCBs, so check it out here on a breadboard.

Final Product

We got an "A" on our presentation...