Karaoke recording machine

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Karaoke recording machine


This project refers to a karaoke recording machine which is constructed by the use of a PIC microcontroller. For this project, firstly the vocal filtering circuitry is constructed to filter out the vocal component from a particular music so that only the background of the music is left (instrument music). This is accomplished by subtracting the left channel of the audio input from the right channel of the audio input or vice versa. At the other point, there will be an audio input from the microphone which will be combined with the filtered music. The recording of the combined music of vocal and filtered music, and stand alone voice recorder is done by the PIC 16f877 microcontroller. The microcontroller instructs the ISD (single chip voice record /playback) to store the specified combined music and also filtered music, but the ISD soundcard only can store up to 120 seconds. Compact flash drive was to be used for the storing part. Since the compact flash drive is unavailable in the local market, an ISD unit is used as a replacement to store the music. Three switches are constructed for normal playing application, recording application and playing the recording application where else an LCD display shows the mode of playing. A color LED and a buzzer is attached to the karaoke machine in order to show the 120 seconds of the recording time limit. A Speaker is also attached at the audio output pin of the karaoke machine in order to listen to the desired options of the music.

Overall, this project had been successfully implemented and has full filled all the requirements of the specific system except for the storing part which is replaced by ISD unit.


LPF: Low Pass Filter

BPF: Band Pass Filter

HPF: High Pass Filter


1.1 Background

The word karaoke is a Japanese word which means empty orchestra .Karaoke machine was first introduced by Japanese musician Daisuke Inoue. It is a music system that plays only the music of a particular song, the music is than combined with the singer's vocal using a microphone. This system is an entertainment system for singers. The machine has become very popular around the globe since the day it was invented. Due to the fast moving technologies, karaoke machines have become an entertainment system that is easy to be used and it is now integrated into computers, internet, mobile phones and automobiles. A basic karaoke machine consists of a microphone and a music player. The machine plays the music without the vocal on the music. This is usually achieved by using computer software which will filter out the vocal. From this, we can judge that the filtering part is the main element in a karaoke machine. [1]

1.2 Aim

The aim of this final year project is to design a PIC microcontroller based karaoke recording machine. This design aspire the student to understand the application used in a karaoke machine and develop a karaoke machine system using a PIC microcontroller.

1.3 Objectives

This design need to consist of the following

To design a vocal component remover from music

To store the background music with the vocal from the microphone in a storage unit

Act as a stand alone voice recorder

To be able to play the stored music

Table 1: Final year project objective table

1.4 Project overview

This project involves both the implementation of hardware and software. A lot of research had been carried out, most importantly on how to extract the vocal from the music and store it into the ISD unit. The diagram below shows the block diagram of this project as a whole.

1: Block Diagram of PIC Microcontroller Based Karaoke Recording Machine

Firstly the music is fed by a music player unit for example an I-Pod. It's than passed through a vocal remover circuit. This circuit removes the vocal component of the music that is being fed by leaving only the background music component. At the other point, only the vocal component from the microphone is fed. Both music component from vocal remover circuit and vocal component from microphone will get mixed in the mixer circuit.

In the mixer circuit, there will be a selector to play two different modes which are

*The selector mode should be selected first before operating the karaoke machine.

§ Selector 1 - Non karaoke operation

§ Selector 2 - Karaoke operation

Selector 1 is to play the song normally without removing the vocal component from the music where else selector 2 is the basic function of a karaoke machine. Once it's selected, the mode can be played by speaker.

There will be 3 different switches that will be connected to the PIC Microcontroller to operate 3 different modes. These switches are;


At this moment the karaoke machine will operate normally without recording applications.


At this moment the karaoke music will be stored into the ISD unit.


At this moment, the karaoke machine will be playing the music that has been

stored in to the ISD unit.

There also will be a Reset switch to reset back the operation in order to rerecord. These 3 modes will also be displayed on the LCD display to show what mode is playing at the moment. A Led and buzzer is also attached to show the 120seconds recording limit. Once the recording reaches 120seconds, the LED will blink and the buzzer goes on to indicate the time limit of recording.


The operation of a karaoke machine is complex by itself. In order to understand its inner workings, we have to analyze a few specific portions critically to understand its operation as a whole. This will help to understand and implement the project in more specific and detail manner.

2.1 Karaoke machine

Before the invention of a karaoke machine, Numark Electronics and AudioSynTrac companies had been providing sing - along tapes and audio facilities to the globe. This culminated in the equipment to be called as the “karaoke”. Karaoke is an entertainment machine which allows its user to sing along with the recorded music by a microphone [1]. The first karaoke machine was invented in Japan.

Nowadays, karaoke machine comes in various shapes and sizes. Karaoke machine which has a lot of features, easy to set up and portable are the one which has the biggest advantages. One of the few best karaoke machines are

* MP3 Player/I pod-style Karaoke Machine

* The Microphone/Karaoke Machine

* TV Hook-Up Style Karaoke Machine

* Portable All-In-One Karaoke Machine

Some of the karaoke machine can be plugged into TV but does not provide lyrics. Some comes in compact size and is easy to be used. Certain types come with preloaded songs and any format of music can be played [3].In a karaoke machine, the important element is how effective the vocal component can be removed from music by the machine and what is the quality of the recording done by the machine..

2.2 Karaoke machine technologies

Throughout the years, the technologies of the karaoke machines have been constantly evolving to a stage where nowadays karaoke system is so complex that it can perform multitasking operations. With technologies nowadays, the fabrication of karaoke components have become so small and miniature that it has been integrated into cellular phones and that too has been evolving so much so that clarity and the quality of the sound are crystal clear.

High level programming and complex software implementation has allowed karaoke systems to play a multitude of audio formats without any conversions and it also allows the system to support lyrics interface. Besides this, advancement in technologies has also allowed the karaoke system to have built in storage units which is capable of storing more gigabytes of audio data.

Today karaoke machine has not only miniaturized but also have become very portable and easy to be set up. There are so many stand alone karaoke systems which can be set up easily.

2.3 Music vocal component removers

Music vocal component remover widely used in karaoke machines. There are various ways in removing vocal, but it's not 100% perfect. This is because the vocal frequency is similar with the music frequency and the both will get mixed together. This application has software and hardware (circuitry) types. Software's are most desired to be used, for an example the AnalogX Vocal Remover software. This application removes the vocal by changing the phase on one channel by 180 degrees since the vocal are equally mixed in both left and right channels [2]. But if the vocal component is same at the both channels this method can't be implemented as we will get mono recording [4]. This method can be implemented on a stereo mix. This software is freeware and can be downloaded from the internet.

In a basic karaoke machine, there is a karaoke mode. This mode actually removes the vocal component in music by central remover method. This method proves that in most music vocal are in the center [1]. The other method which we can implement is the subtracting method. It's done by constructing circuitry with op-amps, capacitors and resistors. Music recording is mostly done by stereo recording which involves both left and right channel. This method subtracts the left channel from right channel or vice versa in order to eliminate the vocal component. Further discussion regarding mono and stereo sound systems is discussed on chapter 2.4 and 2.5. For this project, I have implemented the subtraction method and the working principal will be discussed in system specification chapter.

2.4 Mono and stereo sound systems

For my project I am using two types of sound systems which are usually contained in a karaoke system which are the mono and stereo sound systems. This sound system plays an important role in a karaoke machine. Stereo or stereophonic sound system has become famous since the day it was created. The difference between mono and stereo sound systems is discussed further.


Mono or monophonic sound system is a single channel sound system. In a single channel sound system all the audio signals are mixed together. Monophonic sound system can contain multiple speakers, as it distributes the mixed signal equally [5].


Stereo or stereophonic sound system is a two channel sound system. In this sound system, there are both left and right channel. Some elements are produced on the left channel and others are to the right channel. This sound system offers the quality music [5].

Music format can be produce in both formats. As per this project, a stereo sound system is considered in order to eliminate the vocal component form a music using the subtraction method.

2.5 Mono and stereo sound system using sound forge

I have used Sony creative sound forge 9 to obtain a brief understanding of mono and stereo sound systems. This software it's a digital audio suite which allows us to create and edit stereo and mono audio files and also designs sound [6]. The trial software can be downloaded from http://www.sonycreativesoftware.com/soundforge.

To differentiate I have used the song Beatles; Let It Be .The below shows the stereo audio formats. As u can see there are both left and right channel at the side.

From the 2, we can observe that are two difference channels with difference signals added to it. But the vocal component is equally produced in both channels [4].

To change the stereo audio format to stereo mono format, the channel selector is used under properties.

The below shows the mono audio format. We can observe that the signal from left channel is mixed with the signal form right channel to produce an independent signal channel.


3.1 Hardware implementation

The hardware implementations for this project have been divided into three main parts. The parts are divided in sequence order. 5 shows each part in detail. The parts are,

1. The Karaoke system part

2. The ISD part

3. The PIC Microcontroller part

Therefore, there will be a three PCB boards which will be linked with each other. Each part has its own task. This method is applied to prevent any problems during the construction of the project and project can be accomplished smoothly. Each hardware part will be discussed in detail further. The block diagrams below shows the basic hardware implementation of PIC Microcontroller Based Karaoke Recording Machine.

3.2 1st part: The Karaoke system hardware implementation

In this part, the karaoke system circuit is needed to be design and constructed. The objective of this design is to remove the vocal component from music that being fed in the system. Earlier the idea was to design a LPF. Generally human voice frequency ranges from 20 Hz to 20 KHz. The LPF was selected because it cut off the high frequency of the particular music which is the human voice, so that at the other end all that we have is the background instrumental frequency. Once this is put to practical application, the result could not be achieved as the vocal signal frequency was mixed with the instrument music. After researching further more, the subtraction method was to be studied. This method explains that the vocal can be removed by subtracting the left channel form right channel or vice versa [4, 7]. In this theory the instruments music are different from left and right channel , but the vocal are identically recorded on the both channel, so by subtracting one channel from other channel, the vocal component gets cancel out [8]. This can be done in the wave editor software by reversing one of the channels and mixing it to the other one [8]. By subtracting method, the vocal elimination can only achieve 70% due to the back vocal and instrument sound and the results would never sound like the original track. Once the subtracting method was studied, it was design in practical by constructing the circuitry. And at the other input point, a microphone circuitry was design and constructed to receive the vocal component.

3.2.1 Left channel, Right channel and microphone input configuration of phone plug

The idea is that the TRS connector from the I-Pod will be connected to the jack plug which will be connected to the Left channel and Right channel. And the other jack plug will be connected to the microphone input. A TRS connector or sometimes called as an audio jack, has three conducting parts on the plug which is the Tip, Ring and Sleeve [9]. The configuration of each part is showed below.



Left channel



Right channel




Table 2: TRS connector conducting parts connections

3.2.2 Subtracting left channel form right channel to eliminate the vocal

8 shows the left amp input configuration. The op-amp that has been used is TL074P because it contains low input bias and offset current, low noise and less harmonic distortion [10]. The op-amp is connected in inverting mode with gain 2. Pin 3 of this op-amp will be connected to the supply (VCC) and pin 3 will be connected to the Right Amp. X1-1 and X1-2 shows the left input pin. Both are same input. C1 (capacitor) will block the DC current between the inputs. The op-amp will actually double the amplitude of the signal and invert it.

9 shows the right amp input configuration. This connection is same as the left amp only that it does not invert the signal. Pin 3 from the left-amp will get connect to the pin 5 of right amp. The signal is than passed to the mixer and amplifier through pin 7.

10 shows the mixer and amplifier circuit. The signal from left amp and right amp is mixed together by the resistor R9 and R10. R15 is actually a variable resistor of 10k. This is applied so that we can control the quality of vocal component elimination. The TL074P op-amp helps to amplify the signal gain due to the losses during mixing. The karaoke selector is used to select mode type. If the selector is switched to selector 3, the karaoke mode will be operated where else the selector 1 is the non karaoke operation mode.

The s 11 shows the microphone and mixer circuit. In the microphone circuit part X4-1 and X4-2 shows the input point. The microphone circuit is designed such away to supply the power for the microphone used. This is achieved by introducing R18. R18 also gives a variable gain from 1 to 100 for the microphone. The function of the mixer circuit is to mix the vocal component from the microphone and the incoming signal from the karaoke selector via pin 5 and than it amplifies them.

12 shows the supply circuit for the karaoke system. This supply circuit provides half of the supply produced to it. If an unregulated supply to be used, C4 would be increased to 2200uF. By changing R15 and R16 to 100K we can reduce the power consumption if it was to be operated by a battery. Connection of the component should be perfect and decoupling capacitor should be included.

The full schematic circuit of the karaoke machine can be referred from the appendix.

3.3 The ISD unit configuration part

For ISD unit configuration part, the karaoke system circuit should be connected to the ISD unit and it's controlled by the PIC Microcontroller. For this process, the configuration of the ISD unit is designed and implemented. The ISD unit which is used is ISD25120. This unit is a record/playback for duration from 60 to 120 seconds. This unit is very compatible with microcontrollers. It is easy to be used and contains high quality of recording and playback .[11]

13 shows the ISD circuit configuration. The ISD block diagram can be referred from 14. The circuit configuration is showed on the 15. From 15, the music from the karaoke circuit is passed to the ISD 25120 unit by pin 17(MIC) and pin 18 (MIC REF) of the ISD unit. MIC pin is an on-chip preamplifier which consists of an Automatic Gain Control (AGC) which controls the gain of the preamplifier when different level of microphones is used and the MIC REF pin provides noise canceling common mode rejection mode. Pin 21 (ANA_OUT) produce the preamplifier output to the user. The pin20 (ANA_IN) actually transfer the audio signal to the chip for recording purpose. [11]

The pin 25-pin27 will be connected to the switch mode which allows playing the Normal, Play and Record mode where else the pin1-pin10 is connected to the PIC Microcontroller which will be discussed later. As u can see, the music line is connected to pin 17 and pin 18 in parallel mode. The speaker play mode selector should be switched to pin 3 and pin 6 when the recording switch is turned on. This is to allow the music to play from the ISD unit when the play switch is turned on. The speaker plays directly from the karaoke circuit if the speaker play mode selector is switched to pin 1 and pin 4.

3.3.1 ISD 25120 device control operation

The table below shows the ISD 25120 each device control operation pins for its specific purpose.



P/R (27)

For recording purpose

CE (23)

Play mode button

PD (24)

Stop button/clear

Table 3: Device control operation pins in ISD 25120 [11]

3.4 The PIC Microcontroller part

The PIC Microcontroller is the main core of this project. It acts like a back bone for this karaoke system because the aim of the microcontroller is to control and instruct the ISD unit. The microcontroller that have been used is the PIC 16F877. This microcontroller is chosen because of its 28 I/O points and easy to be connected with standard headers. The features of this microcontroller is that is has 8kb of internal flash program memory, 10MHz of operating speed , internal EEPROM , and 8 channel 10-bit A/D converter.[12]

The above shows the PIC 16F877 microcontroller. This is the main brain of the karaoke system project as it controls the recording and playing mode of the karaoke music. It also allows the LCD panel to display the type of mode that is playing. The mode is determined by the three switches which are Normal, Play and Record. The block diagram below shows the PIC 16F877 operations.

I/O ports

RA0 -RA5 (6 ports)

RB0 -RB7 (8 ports)

RC0 -RC7 (6 ports)

RD0 -RD7 (8 ports)

RE0 -RE2 (3ports)

Table4: I/O ports of PIC 16F877 [14]

The 18 shows the pin diagrams of PIC 16F877. This is the microcontroller that has been used in this project. Referring from 16 and 18 each connection of the circuitry is explained in detail. Port RB0-RB7, RD 6, RD7 and RC4, RC5 connected to the ISD 25120 unit. These ports are the I/O ports of the microcontroller. The table below shows the connection for the switches.


Ports that have been used







Table 5: Switches port

3.4.1 LCD display configuration

The LCD panel display which is used to display the record and play mode is JHD 162A. This LCD contains 16 pins and it's an 8 bit of data input/output lines. The table below shows the function of each pins in JHD 162 A LCD display. [15]








Input / Output data (8 Bit )

Table 6: JHD 162A pins function. [15]

The circuit connection of the PIC 16F877 to the JHD 162A LCD display is cond according to the data sheet of the LCD display in order to display the type of mode that's playing.

The table 16 shows the connection LCD display panel with the PIC 16F877.


PIC 16F877













Table 7: Connection of LCD display with PIC 16F877


The programming part is one the most important part for this project. The PIC 16F877 has to be programmed to control the record and playback of the ISD unit. The PIC 16f877 should also instruct the LCD to display the play mode selection. The programming language that has been used is the micro C language. The Flow chart below shows the process of the operation for this project.

From the 19, at first when the karaoke selection mode is playing the recording switch is switched on. The recording will record the particular music for 120 seconds. Once the recording is done it is then switched off. The recording is now stored into the ISD unit. To playback the recorded music, the play switch button is turned on and the music that had been stored into the ISD unit is played through a speaker. To reset / clear the music in the ISD unit, the reset /clear switch is used.

The programming that is written on the PIC 16F877 must carry out the entire task below which are

* Programming for recording

* Programming for playing the recorded music

* Programming for the LCD to display the type of operation that is being selected

4.1 Main routine and main loop programming part

Before starting to write the programs, the I-O pins are defined. Once it's defined the programming for recording and playback mode is written.

In the main routine programming, the I-O ports are defined, where 1 represents input and 0 represents output. The LCD is also set to 4bit operation.

22 shows the main loop programming part. This programming part contains the two types of operation which is recording and playback. If the 1st switch is selected for playback than it will go to the playback subroutine and if the 2nd switch is selected it will go to the record subroutine and it's an endless loop. So there are two types of subroutine

which are

· Record routine

· Playback routine

4.2 Programming for recording and playback subroutine

23 shows the programming part for the recording routine. Initially the LCD will display “standby mode”. Once the recording mode is selected the LCD “standby mode” display will be replaced by “system record”, and once it's stopped the LCD display will display “record end”. The delay is given as 500 milliseconds.

The 24 shows the programming part for the playback routine. Initially the LCD will display “standby mode”. Once the play mode is selected the LCD “standby mode” display will be replaced by “playback mode”. The delay is given as 500 milliseconds.

4.3 Programming for ISD 25120

The programming is written by referring the datasheet of ISD 25120. From the datasheet we can observe the specific pins which will allow the ISD unit to record and playback music. This portion of references can be found from the operation mode of the programming of an ISD 25120 datasheet. From the information, the PIC 16F877 is than programmed to allow the ISD unit to record and playback the music. The program that has been used for the ISD unit contains the ISD unit operation modes. The mode that has been used is the push-button mode because this project contains a simplified device interface. For the programming part involving the push-button mode on ISD 25120, three pins play the important role. These three pins are

4.3.1 Recording and playback concept using the push-button mode

For the recording part, the push-button mode of the ISD1250 is used. For this the three pins plays the main role. These pins are Power down (PD), Playback record (PR) and End of message (EOM). For the recording part, the PD and PR pin is set to low and the EOM pin is high when the recording starts. This shows the recoding operation is in progress. This recording is than stopped by indicating the PD pin in high mode. 26 shows the program that is written for the recording part. [11]

Where else for the recording part, the PD pin should be low, the PR pin should be set to high and the CE is pulsed. Once this is achieved the EOM goes high to indicate the operation of the playback is in progress. [11]


Once the hardware and software had been implemented, it was put to the test. In order to test the karaoke machine project, Altec Lansing ATP3 computer speaker is connected as the output and Ipod shuffle and electret microphone is used as the input. The below shows the connections.

Since the output is in audio mode, the results are shown in two different ways. The ways are:

a. Using the sound forge software

b. Burning audio file into a compact disc ( best way to show the results)

5.1 a. Results through sound forge software

This method is done by, recording the output of the karaoke machine project by a recorder unit and transfer it into the sound forge software. In order to show the results more specifically, firstly the song is played without turning on the karaoke mode. This is then compared with the song played using the karaoke mode by sound forge software. After that, only the vocal from the electret microphone is played and it is compared with the vocal played with music from the karaoke machine. The table below shows the each task in more simplified.


Types of operation mode which is performed


( Using sound forge)


Karaoke off mode compared with karaoke on mode

This mode will show the results of how efficient is the vocal elimination from a music


Only vocal played using the electret microphone

This mode will shows the vocal amplitude that is being fed into the karaoke system


Vocal played with the filtered vocal component in a music ( karaoke mode)

To show the karaoke applications

Table 8: Types of results of the karaoke machine project

* The song that have been used is this love from the album maroon5

29 and 30 shows the audio signal during karaoke off and on mode. The amplitude and pattern of audio signal in 29(karaoke off) is totally different from the 30(karaoke on). This shows the results of the vocal elimination from the particular song.

5.1.2 Only vocal played using the electret microphone

5.1.3 Vocal played with the filtered vocal component in music (karaoke mode)

As you can see from 31, only the vocal from the electret microphone is recorded. The recorded audio vocal was “Testing 1, 2, and 3”.Where else in 32, the vocal is recorded with the music(karaoke machine mode). From the both 31 and 32, we can compare that the vocal has merge together with the music.

5.2 b.Burning audio file into a compact disc (best way to show the results)

The results of audio files of 29, 30, 31 and 32 is copied into a compact disc. This method will show the output of the results in more precise.


This section analyzes the project accomplishments of the hardware and software implementation. For the hardware part, the three main PCB boards,

1. The Karaoke system part

2. The ISD part

3. The PIC Microcontroller part

was achieved successfully. As a whole I can say although the project was a success I did encounter problems along the way in the implementation of the project. One of the major problems is the vocal component elimination from the selected music. Earlier I used a low pass filter {LPF} and then a band pass filter (BPF) to overcome the problem but since the frequency of the vocal in a particular music is not constant, this method could not be implemented. Then from research that I conducted, I found a way around the problem by reversing one of the channels and mixing it with the other. This method improved the vocal component elimination to around 70%. But it could not eliminate the back vocal and the chorus. This causes the system not to be very efficient as some vocals can be heard once the karaoke system is operated.

The implementation of recording the karaoke music into the ISD unit could only store to a maximum of 120 seconds. This shows that this project could only record for a limited time period. I encountered some during the operation of recording. When I first constructed the circuit, I added a push button for the recording part, but later I found that in order for me to record; I needed to constantly press the push button for recording purposes. To solve this problem, I replace the push button with a two way switch.


In conclusion, this project has taught me about the inner working of a karaoke machine and has given me a very good exposure on how to built and construct a working model. Thou I can say for sure that I have conformed to al the aim and objective of this project I also faced a lot of obstacles along the way and by time learned how to solve it. The table below shows the results of accomplishment of aims and objective.

Aims and Objectives


To design a vocal component remover from music


To store the background music with the vocal from the microphone in a storage unit


Act as a stand alone voice recorder


To be able to play the stored music


Table 9: The aims and objective accomplishment

This project was accomplished successfully, but further development can be made to improve this karaoke machine.

The improvement can be done on the elimination part of a vocal component

from a particular song. This implementation can make the karaoke machine to filter out the vocal 100% successfully without any back vocal or chorus that can be heard while it is operating. The ISD unit only can be recorded up to 120 seconds; improvement can be done in this part for more recording time limit by substituting the ISD unit to a memory card that can be implied by using the microcontroller. The machine also can be made into portable machine, so that it can be easily carried on the go.


1. “Karaoke Machine” [online] Available from: http://en.wikipedia.org/wiki/Karaoke Cited on 4th JULY 2008

2. “Analogx software” Available from: http://www.download.com/Vocal-Remover-Winamp-/3000-2169_4- 10254947.html Cited on 22nd August 2008

3. “Few best Karaoke machine” Available from: http://www.isnare.com/?aid=284418&ca=Entertainment Cited on 28th August 2008

4. “Vocal component elimination using subtraction method” Available from: http://www.amazingmultimedia.net/restoration7.htm Cited on 1st September 2008

5. “Understanding Mono and stereo sound system” Available from: http://hometheater.about.com/od/beforeyoubuy/a/surroundsound.htm Cited on 3rd September 2008

6.” Soundforge software” Available from: http://www.sonycreativesoftware.com/soundforge Cited on 3rd September 2008

7. “Vocal component elimination using subtraction method 2” Available from: http://www.videohelp.com/forum/archive/making-karaoke-tracks- t222688.html Cited on 5th September 2008

8. “Simple karaoke circuit” Available from: http://www.rory.co.nz/projects/audio/Karaoke.html Cited on 7th September 2008

9. “TRS connector” Available from: http://www.rory.co.nz/projects/audio/Karaoke.html Cited on 8th September 2008

10. “TL074P op-amp” Available from: http://www.datasheetcatalog.com/datasheets_pdf/T/L/0/7/TL074.shtml Cited on 22nd September 2008

11. “ISD2560” Available from: http://www.google.com.my/search?client=firefox- a&rls=org.mozilla%3Aen Cited on 24th September 2008

12. “PIC16f877 microcontroller” Available from: http://www.futurlec.com/PIC16F877_Controller.shtml Cited from 1st October 2008

13. “PIC 16F877 datasheet” Available from http://www.datasheetcatalog.com/datasheets_pdf/P/I/C/1/PIC16F877.shtml Cited on 5th October 2008

14. “PIC 16f877 ports” Available from: http://www.interq.or.jp/japan/se-inoue/e_pic877.htm Cited on 7th October 2008

15. “JHD 162A LCD display” Available from: http://www.electro-tech-online.com/datasheet-parts-requests/18200- datasheet-jhd-162a-lcd-module.html Cited on 8th October 2008

Books references

1. “Inverting and non inverting op-amp”

Thomas L Floyd “Electronic Devices"


Schematic and PCB fabrication diagram

10.1 Karaoke Schematic Circuit

10.1.2 Karaoke PCB board fabrication

10.2 Voice Record schematic circuit

10.2.1 Voice Record PCB board fabrication

10.3 PIC 16F877 Microcontroller schematic circuit

10.3.1 PIC 16F877 Microcontroller PCB board fabrication

11.0 Micro C coding file

//define I-O pins

#define normal PORTA.F0

#define play PORTA.F1

#define record PORTA.F2

#define PWR PORTC.F5

#define CE PORTC.F4

#define EOM PORTC.F6

#define PR PORTC.F7

#define address_port PORTB

//declare variables

char counter1;

char timer1;

//declare function prototype

void play_record (void);

void record_song(void);

void normal_play(void);

void play_Isd(char);

void record_Isd(char);


//main routine

//setup I/O ports 1=input,0=output

//setup the LCD to 4bit operation,2line,cursor off,blink off

void main()


ADCON1 = 0x06;

TRISA = 0b11111111; // PORTA is input

TRISB = 0b11110000;

TRISC = 0b01000000;

TRISD = 0x00;

OPTION_REG = 0xC4; // Assign prescaler to TMR0

INTCON = 0xA0; // Enable TMRO interrupt

PORTA = 0x00;



LCD_Cmd(LCD_CURSOR_OFF); // send command to LCD (cursor off)

LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD)


//main loop

//endless loop



Lcd_Out(1,1, "System Standby"); //display System Standby

Lcd_Out(2,1, "Playback/Record"); //press 1st switch for playback

if(play) //if press then go to playback subroutine

play_record(); //press 2nd switch for record

else if(record)

record_song(); //if press then go to record subroutine



void play_record(void) //playback routine



Lcd_Out(1,1, "System Playback"); //lcd display system playback

play_Isd(0x00); //start recording from Address 0

Lcd_Out(1,1, "Playback End "); //dislay playback end when end of message

Delay_ms(500); //goto play ISD routine



void record_song(void) //record routine



Lcd_Out(1,1, "System Record "); //display "system record”

record_Isd(0x00); //record ISD from address 0

Lcd_Out(1,1, "Record End "); //display Record end when button released

Delay_ms(500); //goto record ISD routine



void play_Isd(char x){

PWR = 0; //Power down= low

PR = 1; //Play/record= high

CE = 0 ; //enable=low

address_port=x; //place the address


CE = 1;

while (!EOM) ; //wait until end of message found

PWR = 1; //Power down= high

PR = 1; //Play/record= high


void record_Isd(char x){ //record ISD address

PWR = 0; //Power down= low

PR = 0; //Play/record= low

CE = 0 ; // enable=low

address_port=x; //place the address

while (record); //wait until record button released

Delay_ms (10); //after record

CE=1; //enable=high

PWR = 1; //Power down= high

PR = 1; //Play/record= high


12.0 Cost Estimation

The cost to develop this karaoke machine project is listed as below



















LCD panel


RM 20.00




RM 25.00


PIC 16F877


RM 15.00


PCB board


RM 30.00


TRS connector


RM 3.00


TRS plug


RM 4.00



13.0 GANTT CHART Legend: Research, Work done
















Received final year project title




Research on Karaoke Machines




Research on vocal component elimination method




Research on storing audio file




Working principle of ISD25120




Working principle of LCD display




Micro C programming form audio storing purpose




Testing simple karaoke circuit




Testing simple ISD25120 circuit




Testing PIC 16F877 circuit




Testing programming




Developing simple karaoke circuit, ISD25120 circuit and PIC 16F877 circuits (PCB fabrication)




Final year project accomplishments