PIC sound player (PCM to PWM converter) using PIC18F1320


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 [1]. 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 [2].

PIC sound player

The load of the PIC is the speaker.

Design and Implementation

The selected microcontroller is a PIC 18F1320 [3] 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.


Schematic PIC sound player

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

Current Project / Post can also be found using:

  • pic24 audio pwm
  • using PWM to play audio on a PIC
  • pcm to pwm using pic
  • pic pcm pwm

Leave a Comment

= 4 + 8

Read previous post:
LED Clock with display control
A 12hr/24hr LED Clock with display control using PIC16F628A microcontroller

This LED clock may not be the easiest to build but surely it is the one with fewer parts that...

Scroll to top