 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
05-08-2015, 07:43 PM
المشاركة 6
|
|
معلومات إضافية عن الميكروكونترولر PIC16F877A والمؤقت Timer 0
معلومات إضافية عن الميكروكونترولر PIC16F877A والمؤقت Timer 0
الميكروكونترولر PIC مجهز بنظام أو أكثر للتوقيت الدقيق يعرف باسم المؤقتات Timers والتى يمكن استخدامها لتنفيذ مجموعة متنوعة من وظائف التوقيت الدقيقة مثل توليد أحداث في أوقات محددة ، وقياس مدة (فترة دوام) duration حدث وحفظ تسجيل التاريخ والوقت وعد الأحداث counting وما إلى ذلك.
العنصر الرئيسي فى وحدة (موديول) المؤقت هو عداد ثنائى حر يتزايد عند كل نبضة ترد إليه . ونظرا لأنه يعمل بشكل مستقل فإنه يمكن أن يعد النبضات فى وقت واحد (بالتزامن) مع تنفيذ البرنامج الرئيسى .
يمتلك الميكروكونترولر PIC16F877A ثلاثة من المؤقتات كأجهزة hardware مدمجة به وتسمى :
Timer0 و Timer1و Timer2 وسوف نتناول وحدة (موديول) المؤقت Timer0.
وحدة (موديول) المؤقت Timer 0 :
وحدة (موديول) المؤقت / العداد timer/counter module ببساطة هى عداد ثنائى binary counter مستقل والذى يمكن تهيئته (إعداده) لكى يقوم بعد نبضات ساعة دورات التعليمات الداخلية أو عد نبضات ساعة خارجية .
المؤقت Timer 0 هو عداد متزامن بسعة 8 بتات 8-bit والذى يقوم بحفظ (تخزين) قيمة العداد فى سجل وظائف خاصة يسمى TMR0 . هذا السجل قابل للقراءة وللكتابة فى أى وقت عن طريق البرنامج . إذا كتبت قيمة عليه فسوف يبدأ العداد التزايد من هذه القيمة .
عندما يتم تشغيل الموديول Timer 0 بنبضات ساعة تعليمات المعالج فيقال أنه يعمل كمؤقت timer لأنه يتزايد بمعدل ثابت ( يتحدد بنبضات ساعة المعالج) ، وإذا علمت عدد النبضات التى قام بعدها يمكنك إشتقاق (إستنتاج) الوقت المنقضى بمعلومية زمن الدورة الواحدة .
يمكن للمؤقت Timer 0 أيضا عد النبضات الخارجية الواصلة إلى الطرف RA4 واسمه البديل هو :
T0CKI (Timer Zero Clock Input) " مدخل نبضات الساعة للمؤقت صفر " . عندما يقوم الموديول بعد النبضات الخارجية يقال أنه يعمل كعداد counter .

نظام المؤقت Timer mode
• يتم اختيار نظام المؤقت بمسح clear بت اختيار مصدر الساعة للمؤقت timer 0 وهى البت :
T0CS (OPTION register, bit 5) .
• فى نظام المؤقت يتزايد السجل TMR0 عند كل دورة تعليمة . ولأن هذا السجل ذو سعة 8-bit فيمكنه العد من الصفر 00 إلى FF (255) ، وعندما يصل إلى أقصى قيمة له وهى FF (255) ويتقدم فى التزايد يلف (يدور – يقلب) العد عائدا إلى الصفر 00 وتعرف هذه الحالة بالطفحان overflow (تجاوز الحد الأقصى) ويتم تسجيلها بواسطة بت علم المقاطعة بالمؤقت timer 0 وهى البت :
T0IF (Timer0 Interrupt Flag) بالسجل INTCON (Interrupt Control) بجعلها بالقيمة set أى 1 , حيث يمكن لهذه الحالة بدء (توليد) مقاطعة والتى تعرف باسم " المقاطعة بالمؤقت صفر " Timer0 Interrupt إذا ما كانت ممكنة لعمل مقاطعة .
• يتم تمكين المقاطعة بالمؤقت Timer 0 بجعل بت تمكين المقاطعة بالمؤقت timer 0 وهى البت :
T0IE (Timer0 Interrupt Enable) بسجل التحكم فى المقاطعة INTCON بواحد أى set بالأضافة إلى بت التمكين العام GIE . هذه المقاطعة هى التى يجب أن تبين أن الوقت إنتهى وتحدث عند حدوث طفحان بالسجل TMR0 .
• يجب مسح clear البت T0IF " علم المقاطعة بالمؤقت صفر " بواسطة روتين خدمة المقاطعة بحيث يمكن حدوث مقاطعة بالمؤقت من جديد .
نفترض أن الميكروكونترولر PIC يعمل على مذبذب ساعة بتردد Fosc =4 MHz فإن تردد نبضات ساعة التعليمات سوف تكون Fosc /4 = 1 MHz . نتيجة لذلك يقوم العداد بالتزايد كل واحد ميكروثانية 1 μs بالضبط . وهذا يعنى أن المؤقت Timer 0 سوف يستغرق 256 μs لكى يعد من الصفر إلى الصفر التالى . عن طريق تحميل سجل المؤقت TMR0 بقيمة مسبقة مناسبة يمكن اختيار فترات زمنية أصغر .على سبيل المثال إذا تم تحميل السجل TMR0 مسبقا بالقيمة 206 فإن المؤقت Timer 0 سوف يحدث له طفحان بعد 50 μs فقط . علاوة على ذلك يوجد قاسم تردد مبرمج بسعة 8-bit يعرف باسم prescaler "المقياس المسبق " أو " معامل القسمة " وهو متاح لقياس الفترات الزمنية الطويلة . والمقياس المسبق هو دائرة قسمة تقع بين مصدر نبضات الساعة والمؤقت وتقوم بقسمة التردد الداخل على قيمة من ثمانى قيم ثنائية تقع ما بين القيمة 2 والقيمة 256 .إذا كان تردد نبضات ساعة التعليمات 1MHz فإن أقصى فترة زمنية سوف تكون 256 x 256 μs = 65.536 ms وهى التى تناظر معامل قسمة 256 . قيم معامل القسمة يتم اختيارها برمجيا بواسطة الخانات PS0, PS1,PS2 " خانات اختيار معامل القسمة " بالسجل OPTION .
من أجل تخصيص استخدام معامل القسمة مع موديول المؤقت Timer 0 يجب مسح clear = 0 الخانة PSA " تخصيص معامل القسمة " . إما إذا كانت الخانة PSA بواحد set = 1 فلا يتم تخصيص أى معامل قسمة لموديول المؤقت .
سجل التحكم فى الخيارات OPTION_REG :

سجل التحكم فى المقاطعة :

معدلات الأطار Frame Rates :
|