This project makes a PIC microcontroller play audio PCM sounds using PWM modulation! Pulse-code modulation (PCM) is a digital representation of an analog signal where the magnitude of the signal is sampled regularly at uniform intervals, then quantized to a series of symbols in a digital (usually binary) code . Pulse-width modulation (PWM) of a signal or power source involves the modulation of its duty cycle, to either convey information over a communications channel or control the amount of power sent to a load .
The load of the PIC is the speaker.
Design and Implementation
The selected microcontroller is a PIC 18F1320  with 8KBytes of flash memory and a ECCP unit. A smaller flash unit also exists (18F1220). The 8 KBytes of flash allow almost a second of PCMaudio sampled at 8000Hz to be loaded into the PIC. One second of audio is nothing compared with modern digital audio recorders but is enough to demonstrate the application.
Audio samples can be found free of charge on the internet. As long as they can be converted to WAV format in 8bits per sample, at 8000Hz sampling, mono channel and have less than one second of audio, they can be used in this circuit.
The basic circuit includes a 78L05 voltage regulator, 100nF decoupling capacitor, the PIC, the speaker and a low-pass filter. The low-pass filter has its cutoff frequency at 3.3KHz.
The PIC microcontroller is programed to use the internal oscilator running at 8 MHz. That way we save a crystal and two capacitors.
The 78L05 is capable of supply 100mA of current which is enough to power the PIC with the speaker. Even a small amplifier may be included to provide more sound.
For more detail: PIC sound player (PCM to PWM converter) using PIC18F1320