Create Musical Tone using PIC Code

Musical Tone
The mikroC PRO for PIC provides a Sound Library to supply users with routines necessary for sound signalization in their applications. Sound generation needs additional hardware, such as piezo-speaker (example of piezo-speaker interface is given on the schematic at the bottom of this page).

Library Routines

  • Sound_Init
  • Sound_PlayMusical Tone

    Sound_Init

    Prototype void Sound_Init(char *snd_port, char snd_pin);
    Returns Nothing.
    Description Configures the appropriate MCU pin for sound generation.
    Parameters : 

    • snd_port: sound output port address
    • snd_pin: sound output pin
    Requires Nothing.
    Example
    // Initialize the pin RC3 for playing sound
    Sound_Init(&PORTC, 3);

    Sound_Play

    Prototype void Sound_Play(unsigned freq_in_hz, unsigned duration_ms);
    Returns Nothing.
    Description Generates the square wave signal on the appropriate pin.
    Parameters : 

    • freq_in_hz: signal frequency in Hertz (Hz)
    • duration_ms: signal duration in miliseconds (ms)
      Note : Frequency range is limited by Delay_Cyc parameter. Maximum frequency that can be produced by this function is Freq_max = Fosc/(80*3). Minimum frequency is Freq_min = Fosc/(80*255). Generated frequency may differ from the freq_in_hz parameter due to integer arithmetics.
    Requires In order to hear the sound, you need a piezo speaker (or other hardware) on designated port. Also, you must call Sound_Init to prepare hardware for output before using this function.
    Example
    // Play sound of 1KHz in duration of 100ms
    Sound_Play(1000, 100);
    

    Code Example

    The example is a simple demonstration of how to use the Sound Library for playing tones on a piezo speaker.

Leave a Comment

Your email address will not be published. Required fields are marked *