Pulse Width Modulation or PWM Tutorial using PIC 16F877, Proteus and Mikroc PART-2
MikroC provides a very simple PWM library with 4 functions shown below
- Pwm_Init
- Pwm_Change_Duty
- Pwm_Start
- Pwm_Stop
To Initialize a PWM module at 2KHz do this :Pwm_Init(2000);
Pwm_Start and Pwm_Stop are used for starting and stopping PWM .
Pwm_Change_Duty Changes PWM duty ratio. Parameter duty
takes values from 0 to 255. It can be calculate using equation (Percent*255)/100
. See 0 is 0%, 127 is 50%, and 255 is 100% duty ratio.
Take a look at the following simple program
// microcontroller : P16F877A
// PWM module is set on RC2 Pin No 17.
unsigned short i;
void main() {
PORTC = 00; // Set PORTC to $FF
TRISC = 0; // PORTC is output
Pwm_Init(5000); // Initialize PWM module
Pwm_Start(); // Start PWM
while (1) { // Endless loop
for(i=0;i<=255;i++)
{ Pwm1_Change_Duty(i);
delay_ms(10); }
} }

Download DSN for Proteus
0 comments:
Post a Comment