Back to Browse

Proteus Tutorial: PWM Motor Control With PIC Microcontroller 16F877A

539 views
Feb 17, 2025
4:01

#include "16f877.h" #DEVICE ADC=10 #fuses PROTECT #use delay(clock=4M) int16 duty=0,old=0,new,diff,W; #int_ccp1 void lecture() { new=get_capture(1); diff=new-old; old=new; } void main() { set_tris_c (0xFB); setup_timer_2 ( T2_DIV_BY_16, 249, 2) ; setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 ); setup_ccp2(CCP_PWM); setup_ccp1(CCP_CAPTURE_RE); set_pwm2_duty(duty); setup_adc(ADC_CLOCK_INTERNAL|ADC_CLOCK_DIV_2); set_analog_pins(AN0); set_adc_channel(0); delay_us(10); enable_interrupts(INT_CCP1); enable_interrupts(GLOBAL); while(true) { duty=1000.0*read_adc()/1023; set_pwm2_duty(duty); W=625000/diff; } }

Download

0 formats

No download links available.

Proteus Tutorial: PWM Motor Control With PIC Microcontroller 16F877A | NatokHD