منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات  :

اذهب الى الأسفل

وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات  : Empty وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات  :

مُساهمة من طرف Admin في الثلاثاء مايو 19, 2015 6:51 pm

وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات  :

الدائرة الكهربية :

وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات  : 513

البرنامج :


الكود:

/******************************************************
      PIC16F877 - UP / DOWN Duty Cycle PWM1 Control
*******************************************************/
#include <16f877.h>     //
#use delay (clock=4000000) //
int16  i=5; // declare a variable

/********* Main function *******/

void main ( )
{
   setup_ccp1(CCP_PWM);  // setup CCP1 in PWM mode
   setup_ccp2(CCP_PWM);  // setup CCP2 in PWM mode

   setup_timer_2(T2_DIV_BY_16,170,1); // setup Timer2

   set_pwm1_duty(i); // set PWM1 on base of variable i
   set_pwm2_duty(i); // set PWM2 on base of variable i

   while(true) // endless loop
   {
      if (input(pin_a0)) // test increasing button at RA0
      {
         delay_ms(20);   // Button Debouce
         while(input(pin_a0)); // Wait for button depressed
         i+=3; // i=i+3 increase 3 steps each time , full range from 0-1024 ,but :.

         if (i>=170) // i maximum increasing value = 170 ,
            i=170;

         set_pwm1_duty(i); // set PWM1
         set_pwm2_duty(i); // set PWM2
      }

      if (input(pin_a1)) // test decreasing button at RA1
      {
         delay_ms(20);  // Buton Debounce
         while(input(pin_a1)); // Wait for button depressed
         i-=3;  // i=i-3 increase 3 steps each time , full range from 0-1024 , but :

         if (i<5) // i minimum decreasing value = 5
            i=5;

         set_pwm1_duty(i); // set PWM1
         set_pwm2_duty(i); // set PWM2
      }
   }
}


Admin
Admin

عدد المساهمات : 1187
تاريخ التسجيل : 28/01/2014

https://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى