 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
05-07-2012, 02:47 AM
المشاركة 10
|
|
4- المؤقتات Timers - يمتلك الميكروكونترولر PIC16F877 ثلاثة أجهزة مؤقتات hardware . تستخدم هذه المؤقتات
فى تنفيذ عمليات التوقيت فى نفس الوقت simultaneously مع البرنامج وذلك لجعل البرنامج أسرع وأكثر كفاءة(فعالية).مثال ذلك توليد نبضة كل ثانية فى أحد المخارج . - يستخدم المؤقت Timer0 سجل 8-bit هو السجل المسمى TMR0 وعنوانه 01 .
خرج هذا السجل يكون على شكل " علم الطفحان" overflow flag والذى يؤثر فى خانة تسمى T0IF وهى الخانة bit 2 فى "سجل التحكم بالمقاطعة" INTCON وعنوانه 0B . - يتزايد سجل المؤقت عن طريق دخول نبضات الساعة إما من داخل الميكروكونترولر (fosc) أو من
مصدر نبضات خارجى على الطرف RA4. - يقوم السجل بالعد من 0 إلى 255( 255 = FF = 11111111) فى شكل ثنائى ثم يلف مرة أخرى
فيقوم بالعد من 0 من جديد . عندما ينتقل السجل من FF إلى 00 يتسبب فى جعل خانة علم المقاطعة بالمؤقت T0IF فى الحالة المرتفعة set =1 . - إذا تم استخدام الساعة الداخلية يعمل السجل بمثابة موقت timer.
- كل تعليمة من تعليمات الميكروكونترولر تأخذ أربع دورات لنبضات الساعة fosc (تردد الكريستال )
لذلك فإن نبضات الساعة للتعليمات تكون fosc/4 ( تردد عمل الميكروكونترولر ).
يتم تشغيل المؤقت من نبضات الساعة للتعليمات أىfosc/4 والتي يمكن مراقبتها خارجيا من على الطرف CLKOUT إذا كانت الشريحة تعمل بساعة من النوع RC . - إذا تم تحميل سجل المؤقت مسبقا بقيمة ولتكن على سبيل المثال 155d , فإن المؤقت سوف يقوم
بعد 100 نبضة ساعة حتى تصل الخانة T0IF لحالة set(255-155=100). فإذا تم تشغيل الشريحة من كريستال بتردد fosc = 4MHz فإن تردد نبضات ساعة التعليمات سوف يكون fosc/4 = 4/1 = 1 MHz وسوف يحدث طفحان overflow بعد 100 S.وإذا تم استخدام هذه النبضات فى تحويل مخرج فسوف نحصل على إشارة بزمن دورى هو 2 X100 = 200 S أى بتردد F = 1/T = 5kHz .يمكن عد (حساب) النبضات الخارجية وقراءة العداد من سجل المؤقت عندما ينتهى أو قراءة البدء (الإشعال) بإشارة خارجية .وهكذا يمكن أيضا أن يستخدم المؤقت كعداد . - يرتبط بعمل سجل المؤقت سجل آخر هو سجل pre-scale"التدريج المسبق" أو "معامل القسمة"
هذا السجل هو سجل قسمة على عامل قدره N حيث N = 2 ,4 ,8 , 16 , 46 , 128 , 256 ، وهذا يعني أنه يتم خفض معدل العد فى الخرج بقيمة هذا العامل. يؤدى ذلك إلى تمديد فترة العد أو العدد الإجمالي بنفس النسبة، وإعطاء أكبر مدى rangللقياس.
توجد خانات اختيار معامل القسمة pre-scale وخانات التحكم الأخرى للمؤقت Timer0 فى سجل الخيارات OPTION_REG .
الجدول التالى يبين بعض تفاصيل إعدادات المؤقت Timer0
- المؤقت Timer1 واسمه TMR1 هو عداد ذو سعة 16-bit يتكون من سجل البايت العلوى
TMR1H وسجل البايت السفلى TMR1L.
عندما يدور عد السجل المنخفض من FF إلى 00 يتم تزايد البايت العلوى . من ثم يكون الحد الإقصى للعد هو 65535d , والذى يسمح بالعد لعدد أكبر دون التضحية بالدقة . - المؤقت Timer2 واسمه TMR2 هو عداد ذو سعة 8-bit مع وجود pre-scaler بسعة
4-bit ومعامل قسمة آخر يسمى post-scaler بسعة 4-bitعلاوة على مقارن comparator .
يمكن أن يستخدم هذا المؤقت فى توليد خرج بتعديل عرض النبضة (PWM) وهو مفيد فى تشغيل محركات التيار المستمر ومحركات السرفو من بين أمور أخرى .
5- سجلات التحكم فى المقاطعة Interrupt Control Registers - السجلات المعنيةبالتعامل معالمقاطعةهيINTCON ، PIR1 ، PIR2 ، PIE1،
PIE2وPCON. - المقاطعاتهيإشاراتأجهزة hardwareخارجية والتيتجبر الميكروكونترولر على تعليق عملياته الحالية والقيام بتنفيذ برنامج فرعى للمقاطعة يسمى Interrupt Service Routine (ISR)
- يمكنأن تتولد المقاطعةبطرقمختلفة ، ولكن النتيجة فى الميكروكونترولر PIC هى دائما القفز
jump إلى عنوان البرنامج رقم 004 .إذا كان هناك أكثرمن مصدر واحدللمقاطعة عندئذ يجب أن يتم الكشف عنمصدرالمقاطعةوتحديد البرنامج الفرعى ISRالمقابل . - الوضع الافتراضى هو تعطيل disabled المقاطعات ، بحيث يمكن تحميل البرامج من نقطة البداية
والتى تعرف بنقطة الأصل origin (أول تعليمة) عند العنوان 0000، ويمكن تجاهل مغزى العنوان0004 .
إذا أردنا أن نستخدم المقاطعات فأن عنوان بداية البرنامج الرئيسى يجب أن يكون العنوان 0005 أو أعلا ويتم وضع اللافتة ‘GOTO start’ (أو لافتة مشابهة) عند العنوان 0000 . عندئذ يمكن وضع التعليمة ‘GOTO ISR’ عند العنوان 004 باستخدام التوجيه ORG والذى يحدد العنوان الذى سوف توضع عنده التعليمة بالمترجم . - لتمكين نظام المقاطعة يجب عمل set لخانة "تمكين عموم المقاطعة" GIE بالسجل INTCON .
ثم بعد ذلك تمكين مصدر المقاطعة بشكل منفرد . على سبيل المثال يتم جعل الخانة T0IE بالسجل INTCON فى الحالة set لتمكين طفحان المؤقت Timer0 لبدء تتابع المقاطعة . عندما يفيض الموقت تتحول الخانة T0IF (Timer0 Interrupt Flag) بالسجل INTCONإلى حالة set لبيان مصدر المقاطعة ، واستدعاء البرنامج الفرعى للمقاطعة ISR . - المصادر الأساسية للمقاطعة : المؤقت Timer0 والمنفذ Port B . يستخدم المدخل RB0 من أجل
مقاطعة منفردة ويمكن تهيئة الأطراف RB4 - RB7 بحيث أن أى تغير فى هذه المداخل يبدأ المقاطعة. يمكن استخدامها فى الكشف عن حالة إنضغاط مفتاح بلوحة مفاتيح متصلة بالمنفذ Port B عندئذ يقوم البرنامج الفرعى للمقاطعة ISR بالمعالجة اللازمة .يتم تمكين باقى مصادر المقاطعة من الخانة "تمكين المقاطعة بالمحيطات" PEIE بالسجل INTCON .
|