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

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

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

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

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

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

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

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


البرنامج التالى يبين البرنامج الأساسى لخطوات إعداد 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” .

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

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

Admin
Admin

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

https://fathallaabdelaziz.forumarabia.com

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

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


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