Generating PWM With PIC Microcontroller - MikroC Pro
Generating PWM With PIC Microcontroller - MikroC Pro
(https://electrosome.com/)
Home (https://electrosome.com) /
Tutorials (https://electrosome.com/category/tutorials/), PIC Microcontroller (https://electrosome.com/category/tutorials/pic-microcontroller/),
MikroC (https://electrosome.com/category/tutorials/pic-microcontroller/mikroc/) /
Generating PWM with PIC Microcontroller using CCP Module
MikroC Functions
PWM1_Init(constant long frequency) : This function initializes the PWM module with duty ratio 0. Frequency parameter is the
desired frequency in Hz. It should be a numeric constant, should not be a variable.
PWM1_Set_Duty(unsigned short duty_ratio) : This function is used to set the duty cycle of the PWM. The parameter duty_ratio
takes values from 0 to 255, ie 0 means 0% , 127 means 50% and 255 means 100% duty cycle. The PWM1_Init() routine must be
called before using this.
PWM1_Start() : This function starts the PWM output. PWM1_Init() must be called before calling this routine,
PWM1_Stop() : This function stops the PWM output. PWM1_Init() must be called before calling this routine. PWM1_Start() should be
called before calling this function otherwise calling this function will not have any e ect as PWM module is not running.
Note 1 : For microcontrollers with more than one CCP module, to use the desired CCP module for PWM generation simply change the
number “1” in the prototype with desired module number. eg: PWM2_Init(5000), PWM2_Start().
Note 2 : All PWM modules in a PIC Microcontroller uses Timer 2 for its operation, so you cannot set di erent frequencies for di erent
PWM modules.
https://electrosome.com/pwm-pic-microcontroller/ 1/10
18/09/2017 Generating PWM with PIC Microcontroller - MikroC Pro
Complete C#
Developer Kit
850+ UI Controls and Data
Visualization Tools, Process
Excel, PDF, PowerPoint, Word
Syncfusion® Inc
les.
In this tutorial we are using PIC 16F877A for demonstrating PWM generation using CCP module. PIC 16F877A contains two CCP modules.
(https://electrosome.com/wp-content/uploads/2013/01/Using-Internal-PWM-
Module-PIC-MIcrocontroller.jpg)
Using Internal PWM Module PIC Microcontroller Circuit Diagram
The output of the two CCP modules are given to a CRO to observe the changes in pulse width. It may be given to two LEDs and you can
see the changes in brightness as Duty Ratio changes.
MikroC Program
https://electrosome.com/pwm-pic-microcontroller/ 2/10
18/09/2017 Generating PWM with PIC Microcontroller - MikroC Pro
void main()
{
short current_duty_1 = 16; // initial value for current_duty_1
short current_duty_2 = 16; // initial value for current_duty_2
I thinks the program is self explanatory, so if you have any doubts please comment below…
AdChoices
Download
You can download the MikroC Source Code, Proteus les etc here…
Video
https://electrosome.com/pwm-pic-microcontroller/ 3/10