Recently a cell phone ring tone was in the news - it's 17,000 Hertz and meant to be heard by teenagers, but
inaudible to adults.  Really got some people upset for some reason.  It got me wondering - what frequencies can I
hear?  I made the shrieker.  It can generate tones from 10,000 Hz to 22,000 Hz.
It's a simple project.  The program doesn't do much.  
The button actual provides power to the PIC, so
pressing it starts the boot up.  Six pins read the inputs of
six switches.  This determines the frequency.  After that,
the PIC just generates a square wave of that frequency
on one of its pins that goes right to the speaker with a
capacitor to round the edges some.

The speaker was only rated to 7000 Hz, but seems to
work fine.

With all switches in the off position, the frequency is
10,000 Hz.  The switches function as binary inputs, most
significant digit on the right: 32, 16, 8, 4, 2, 1, so the
input can vary from 0 to 63.
frequency = 10,000 Hz + input*200 Hz
So the frequency range is 10kHz - 22.6kHz
I brought it out with my drinking
buddies one night.  One guy, in
his late 30's couldn't even hear
the 10,000 Hz tone.  Two of the
guys (late 20's) claimed they
could hear 17,000 Hz.  

My teenage neighbor could hear
above 18,000 Hz.
C Code for Shrieker
PIC Projects
I wired the output to the mic jack
on my computer to record the
tones.  Only the lower portion of
the tones worked at all.  I guess
Microsoft's Sound Recorder is
not meant to work at such
frequencies!   Listen:
The results?
My left ear can hear 14,600 Hz, my right 13,200 Hz.