الموديول CCP ووضع تعديل عرض النبضة PWM مع المترجم CCS C - البرنامج الأساسى :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

الموديول CCP ووضع تعديل عرض النبضة PWM مع المترجم CCS C - البرنامج الأساسى :

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

الموديول CCP ووضع تعديل عرض النبضة PWM مع المترجم CCS C - البرنامج الأساسى :

يمكن استخدام الموديول CCP ،فى وضع تعديل عرض النبضة PWM ، لتوليد إشارة خرج تتغير مع بالزمن ، وهو ما يوفر شكل موجى لنبضة الخرج مع إمكانية ضبط الفترة المرتفعة بالنسبة للفترة المنخفضة . حالة الخرج المرتفع ، تسمى دورة الخدمة duty cycle (وهى الجزء الفعال المؤثر للشكل الموجى ككل ) ، يتم التعبير عنها كنسبة مئوية من الفترة الكلية لشكل موجة النبضة ( الحالة المرتفعة والحالة المنخفضة ) . على سبيل المثال ، دورة خدمة بالقيمة “50%” تعطى موجة خرج لها فترة مرتفعة مساوية للفترة المنخفضة [(Th / Th+Tl) * 100] .




البرنامج التالى يبين البرنامج الأساسى لخطوات إعداد setup وتعيين set وضع PWM :

الكود:


// Pulse Width Modulation Program Source Code
// PWM output, MCU clock = 4 MHz

#include <16F877A.h>

void main()
{
While(true)
   {
setup_ccp1(ccp_pwm);          // Select timer and mode
set_pwm1_duty(500);          // Set on time
setup_timer_2(T2_DIV_BY_16,248,1);    // Clock rate & output period
}
}


يوفر المترجم CCS C الدوال التالية :
الدالة setup_ccp1() :
تحدد وضع تشغيل الموديول CCP .

الدالة setup_timer_2() :
تتحكم فى الفترة الزمنية الكلية لموجة تعديل عرض النبضة PWM ، هذه الدالة لها 3 وسائط arguments أو بارامترات:
• الوسيط الأول يحدد معامل نسبة القسمة السابق للمؤقت prescaler ، وهى فى هذه الحالة “16” .
• الوسيط الثانى يعطى الفترة الزمنية للخرج من “1” إلى “255” مرة ضعف الفترة الزمنية لساعة الدخل .
• الوسيط الثالث يحدد معامل نسبة القسمة اللاحق postscaler .

الدالة set_pwm1_duty() :
تحدد دورة الخدمة . القيمة المعطاة تكون فى المدى “0-1023” ، كقيمة ابتدائية لعداد 10 بت . القيمة “500” تعطى نسبة فترة مرتفعة إلى فترة منخفضة حوالى 50% .

يتم توليد موجة PWM بشكل مستمر بعد إتمام الإعداد . قيم دورة الخدمة (500) ، الفترة الكلية (248) المستخدمة فى هذا البرنامج تنتج خرج على الطرف CCP1 بتردد 250 Hz (4 ms) ، وبنسبة زمن ارتفاع إلى زمن انخفاض 50% مع ساعة ميكروكونترولر بتردد 4-MHz .

طريقة حساب الفترة الزمنية الكلية :
يتم تشغيل المؤقت Timer2 من ساعة التعليمات عند 1 MHz (Fosc/4) . بعد المقياس السابق ، تكون الفترة الزمنية للساعة 16 μ s ويقوم المؤقت بالعد حتى “248” ، ويحدث تجاوز overflow عند حوالى 16 x 248 x 3968 μ s أى حوالى 4 ms ( لقد تم استخدام الرقم 248 بدلا من الرقم 250 لضبط الزمن ) . قيمة المقياس اللاحق تم تحديدها بواحد “1” .





Admin
Admin

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

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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