قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-05-2015, 09:50 PM المشاركة 73   
افتراضي وضع تعديل عرض النبضة PWM بقناتين ، والتحكم فى تزايد وتناقص عرض النبضات :



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

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



البرنامج :

كود:
/******************************************************
      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 
      }
   }
}



http://fathallaabdelaziz.forumarabia.com/

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-05-2015, 10:07 PM المشاركة 74   
افتراضي وضع تعديل عرض النبضات PWM , توليد تحكم فى عرض النبضات لإنتاج نغمات متغيرة :


وضع تعديل عرض النبضات PWM , توليد تحكم فى عرض النبضات لإنتاج نغمات متغيرة :
الدائرة الكهربية :



البرنامج :

كود:
/******************************************************
      PIC16F877 PWM MODE Variable tone 
*******************************************************/
#include <16F877.h>     
#use delay (clock=4000000) 

int16  i=65; // Initial tone 

/********* Main Function********/

void main ( )
{
   
   setup_ccp1(CCP_PWM);  // 
   setup_timer_2(T2_DIV_BY_16,i,1); // 
   set_pwm1_duty(50); // 

   while(1) // 
   {
      if (input(pin_a0)) // 
      {
         delay_ms(20);         // 
         while(input(pin_a0)); // 
         i+=5; // i=i+5 .

         if (i>250) // 
            i=250;
         setup_timer_2(T2_DIV_BY_16,i,1); // 
      }

      if (input(pin_a1)) // 
      {
         delay_ms(20);         // 
         while(input(pin_a1)); // 
         i-=5;  // i=i-5 .

         if (i<65) // 
            i=65;
         setup_timer_2(T2_DIV_BY_16,i,1); // 
      }
   }
}

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 515
نشاط [ Sallam ]
قوة السمعة:
قديم 20-05-2015, 01:58 AM المشاركة 75   
افتراضي


تحية طيبة

أسعد الله أوقاتك دائما بكل خير

أشكرك جدا على مجهودك الرائع وأطلب أن يعوضك الله عن تعبك اضعافا

بالتوفيق


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 20-05-2015, 01:15 PM المشاركة 76   
افتراضي


تحية طيبة

أسعد الله أوقاتك دائما بكل خير

أشكرك جدا على مجهودك الرائع وأطلب أن يعوضك الله عن تعبك اضعافا

بالتوفيق
أخى الكريم شكرا جزيلا لك

مع تمنياتى بدوام التوفيق



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:38 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)