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

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 10:56 PM المشاركة 1   
افتراضي فى أعماق الميكروكونترولر PIC المؤقتات / العدادات ، والسجلات TMR0,OPTION_REG,INTCON Twitter FaceBook Google+



فى أعماق الميكروكونترولر PIC المؤقتات / العدادات ، والسجلات TMR0,OPTION_REG,INTCON

المؤقت Timer0
الجزء الأول
الهدف :
فى نهاية هذا الجزء يجب أن تكون قادرا على :
1- وصف المكونات الرئيسية لوحدة (موديول) المؤقت Timer0 .
2- إعداد سجلات موديول المؤقت Timer0 لإنتاج برنامج تطبيقى .

مقدمة لوحدة (موديول) المؤقت العداد :
ما هو الفرق بين المؤقت timer والعداد counter ؟
كلاهما مكونات تقوم بعد count الأحداث . التمييز الفعلى يأتى من كيفية استخدام النتيجة . على سبيل المثال ، يمكننا عد عدد مرات الضغط على مفتاح ضاغط عن طريق توصيله إلى مدخل موديول المؤقت / العداد كما هو موضح بالشكل التالى :





من جهة أخرى ، إذا أدخلنا إشارة دورية مثل مصدر ساعة أو مذبذب على دخل الموديول وجعلنا الموديول يبدأ فى التزايد عند الضغط على الزر الضاغط ويتوقف عند تحرير الضغط ، عندئذ يمكننا استخدام القيمة المخزنة فى الحساب الفعلى للزمن بين حدثى الضغط وتحرير المفتاح الضاغط كما فى الشكل التالى :
إذا ضربنا الزمن الدورى للساعة (T = 1/Frequency) فى القيمة المخزنة (عادة ما تكون بالثنائى) ، فسوف نعرف بالضبط كم طول زمن الضغط على المفتاح الضاغط . فى هذا المثال ، العداد ما زال يعد ، لكن فى هذه المرة يعد إشارة ساعة دورية والتى سوف تستخدم كمرجع وبالتالى فإن العداد يستخدم كمؤقت .

موديولات المؤقت لعائلة الميكروكونترولر PIC من المدى المتوسط :

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 10:58 PM المشاركة 2   
افتراضي


موديولات المؤقت لعائلة الميكروكونترولر PIC من المدى المتوسط :
سوف نلقى نظرة على الثلاثة مؤقتات / عدادات والتى تتوفر فى عائلة المدى المتوسط للميكروكونترولر PIC . سوف تلاحظ أن كل منهما له مميزات ينفرد بها ولكن له أيضا بعض الخصائص المشتركة كما فى الشكل التالى :

فى البداية ، نحتاج إلى مصدر . هذا المصدر ممكن أن يكون ساعة متزامنة يتم توفيرها عن طريق مذبذب ، أو حدث يحدث بشكل غير دورى مثل مفتاح ضاغط متصل بطرف دخل ساعة المؤقت Timerx Clock Input (TxCKI) .
بعد ذلك ، القيمة الحالية سوف تحتاج إلى تخزينها فى مكان ما . فى الميكروكونترولر PIC من عائلة المدى المتوسط ، هذا المكان هو سجل 8 بت أو سجل 16 بت موجود فى ذاكرة البيانات ، وذلك تبعا لموديول المؤقت / العداد المستخدم . القيمة الثنائية فى هذا السجل سوف تتزايد بواحد تبعا لتغيير الحافة المختارة . على سبيل المثال , إذا قمنا بإعداد موديول المؤقت / العداد للتزايد عند الحافة السالبة (الهابطة) للإشارة ، فإن قيمة السجل سوةف تتزايد بواحد فى كل مرة يتغير فيها المصدر من الحالة المرتفعة إلى الحالة المنخفضة .
فى النهاية ، كل من المؤقتات / العدادات الثلاثة له على الأقل مقياس (قاسم تردد) واحد . هذه المقاييس قد تأتى قبل (سابقة) قيمة سجل الموديول وتسمى prescaler أو تأتى أو تأتى بعد (لاحقة) قيمة سجل الموديول وتسمى postscaler . يعمل المقياس عن طريق قسمة إشارة الدخل على قيمة محددة . على سبيل المثال ، إذا كان لدينا إشارة دخل دورية بتردد 1000 Hz (1000 Hz = 1/1 mS) وتم إمرارها على مقياس سابق محدد بالقيمة 2:1 ، فإن قيمة سجل المؤقت العداد سوف تتزايد بواحد كل 2 انتقال منطقى للإشارة أو عند تردد 500 Hz . أى أن الإشارة قد تم خفضها ( إبطاؤها) .

موديول المؤقت العداد TIMER0 :

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 11:01 PM المشاركة 3   
افتراضي


موديول المؤقت العداد TIMER0 :
مقدمة :
موديول المؤقت / العداد Timer0 هو مؤقت / عداد 8 بت 8-bit بالمميزات التالية :
1- مقياس سابق prescaler 8 بت (مشترك مع مؤقت الحراسة WDT) .
2- قابلية اختيار مصدر ساعة داخلى أو خارجى .
3- المقاطعة عند حدوث تجاوز overflow (255→0) .
4- اختيار حافة المصدر ( حافة صاعدة – حافة هابطة ) .
لإعداد موديول المؤقت / العداد يستخدم سجل الوظائف الخاصة الخاص بالخيارات OPTION_REG .
الشكل التالى يبين المكونات المختلفة التى يتكون منها موديول المؤقت / العداد Timer0 بما فى ذلك بتات السجل OPTION_REG وتأثير كل منها .

العمل :
سوف نخوض خلال مكونات (بلوكات) موديول المؤقت / العداد Timer0 ونقوم بإعداد كل منها باستخدام سجل الخيارات OPTION_REG .
عمل المؤقت / العداد فى نظام العداد Counter :
1- اختيار مصدر الساعة لموديول المؤقت العداد Timer0 :



البت T0CS : بت اختيار مصدر ساعة المؤقت / العداد Timer0 :
· لاختيار مصدر ساعة المؤقت / العداد Timer0 من الإشارة المتواجدة على الطرف
T0CKI (Timer0 Clock Input) ( مصدر خارجى) يتم تحديد هذه البت بواحد "1" (الحالة الافتراضية) .
· لاستخدام ساعة دورة التعليمات الداخلية كمصدر لساعة المؤقت / العداد Timer0 يتم مسح هذه البت "0" .
ملحوظة :
ساعة دورة التعليمات الداخلية = تردد مذبذب الميكروكونترولر مقسوما على 4 أى Fosc/4 .

2- اختيار حافة المصدر ( للمصدر الخارجى فقط) :
البت T0SE : بت اختيار حافة المصدر الخارجى :
· لاختيار تزايد السجل TMR0 عند الحافة الهابطة ( الانتقال من الحالة المرتفعة إلى الحالة المنخفضة) للطرف T0CKI يتم تحديد هذه البت بواحد "1" (الحالة الافتراضية).
· ولاختيار تزايد السجل TMR0 عند الحافة الصاعدة ( الانتقال من الحالة المنخفضة إلى الحالة المرتفعة ) للطرف T0CKI يتم مسح "0" هذه البت .

التدريب الأول :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 11:05 PM المشاركة 4   
افتراضي


التدريب الأول :
الدائرة الكهربية :
البرنامج :



كود:
Device = 16F628A Xtal 4 All_Digital true OPTION_REG = %11111111 ; default Output PORTB PORTB = 0 Input PORTA.4 TMR0 = 0 Cls main: Print $FE, 2 ;Return home (beginning of first line) Print Dec TMR0 GoTo main

فى البداية ، سوف يتم استخدام سجل الخيارات فى الوضع الافتراضى ( جميع البتات آحاد) ومن ثم يكون:
· معد لاستخدام المؤقت Timer0 "كعداد" counter مع مصدر الساعة الخارجى من على الطرف RA4 (T0CKI) :
كود:
OPTION_REG.5 = T0CS = 1
· تزايد السجل TMR0 عند الحافة الهابطة (High to Low) :


كود:
OPTION_REG.4 = T0SE = 1
· تخصيص المقياس السلبق (قاسم التردد) لمؤقت الحراسة WDT وبالتالى فإن السجل TMR0 يتزايد بنسبة 1:1 بالنسبة لتردد مصدر ساعة الخارجية :

كود:
OPTION_REG.3 = PSA = 1
تطبيق :
مقياس تردد :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 11:07 PM المشاركة 5   
افتراضي


تطبيق :
مقياس تردد :

البرنامج :

كود:

Device = 16F628A Xtal 4 All_Digital true OPTION_REG = %11111111 ; Output PORTB PORTB = 0 Input PORTA.4 Cls main: TMR0 = 0 DelayMS 1000 Print $FE, 2 ;Return home (beginning of first line) Print "FREQUENCY: " , Dec TMR0 , " Hz" GoTo main
التدريب الثانى :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 11:12 PM المشاركة 6   
افتراضي


التدريب الثانى :
فى هذا التدريب سوف يتم تغيير :
· تخصيص المقياس السابق prescaler إلى السجل TMR0 :

كود:
OPTION_REG.3 = PSA = 0

ونظرا لأن البتات bit 2: bit 0 فى الوضع الافتراضى بآحاد (111) فهذايعنى أن قيمة قسمة التردد تكون بالنسبة 1:256 أى يتم قسمة تردد مصدر الساعة الخارجى على الطرف RA4(T0CKI) على 256 . يمكن تغيير هذه النسبة بتغيير هذه البتات . وهنا سوف نأخذ القيم (000) وتعنى القسمة على "2" أى يتزايد السجل TMR0 بواحد عند الحافة الهابطة لنبضة الساعة الثانية ، ويكون سجل الخيارات :

كود:
OPTION_REG= %11110000

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




البرنامج :

كود:
Device = 16F628A Xtal 4 All_Digital true OPTION_REG = %11110000 ; Prescaler to TMR0(bit 3) with value 1:2 (bits 2:0) Output PORTB PORTB = 0 Input PORTA.4 TMR0 = 0 Cls main: Print $FE, 2 ;Return home (beginning of first line) Print Dec TMR0 GoTo main


تخصيص وإعداد المقياس السابق :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 15-09-2013, 11:16 PM المشاركة 7   
افتراضي


تخصيص وإعداد المقياس السابق :
البت PSA : بت تخصيص المقياس السابق (قاسم التردد) prescaler
المقياس السابق prescaler القابل للبرمجة متاح للاستخدام مع أى من المؤقت Timer0 أو مؤقت الحراسة WDT وليس مع كليهما فى نفس الوقت . لتخصيص المقياس السابق للمؤقت Timer0 ، يجب مسح "0" بت تخصيص المقياس السابق PSA :
· لتخصيص المقياس السابق لمؤقت الحراسة يتم تحديد البت PSA بواحد "1" .
· ولتخصيص المقياس السابق لموديول المؤقت Timer0 يتم مسح "0" البت PSA .

المقياس السابق سوف يحدد كم عدد الحواف سوف تعمل على تزايد قيمة السجل TMR0 بواحد . المقياس السابق للمؤقت Timer0 فى عائلة الميكروكونترولر PIC نت المدى المتوسط يمكن أن يتم إعاده لعمل تزايد لقيمة السجل TMR0 من نسبة 1:1 وحتى 1:256 . البتات PS2:PS0 تحدد اختيار معدل المقياس السابق كما فى الشكل التالى :




المؤقت Timer0
الجزء الثانى
الهدف :
فى نهاية هذا الجزء يجب أن تكون قادرا على :
1- تطوير (إنشاء) برنامج لتوليد مقاطعات نتيجة تجاوز السجل TMR0 من أجل فترة زمنية محددة .
2- تطوير (إنشاء) برنامج باستخدام مصدر ساعة خارجى مع موديول المؤقت / العداد Timer0 .
3- تطوير (إنشاء) برنامج لمصدر ساعة خارجى لموديول المؤقت Timer0 .


z_ramzi
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
المشاركات: 143
نشاط [ z_ramzi ]
قوة السمعة:0
قديم 16-09-2013, 10:15 AM المشاركة 8   
افتراضي


أخ فتح الله السلام لكم وعليكم وعلى الجميع
دائما مواضيعك متميزة وتأتي في وقتها
جزاك الله عن هذه الأمة خيرا وجعل مجهوداتك في ميزان حسناتك
والى الأمام وشكرا مرة ثانية

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2024