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

   

salah khateab
:: مهندس ::
تاريخ التسجيل: Jun 2010
الدولة: damascus-syria
المشاركات: 38
نشاط [ salah khateab ]
قوة السمعة:
قديم 27-03-2011, 01:32 AM المشاركة 9   
افتراضي



جزاك الله خير الجزاء
بحث قيم ومفيد

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 02:20 AM المشاركة 10   
افتراضي


جزاك الله خير الجزاء
بحث قيم ومفيد

اخى الكريم

شكرا جزيلا لك

بارك الله فيك


تقدير اعتز به


مع تمنياتى بدوام التوف

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 03:02 AM المشاركة 11   
افتراضي


سجلات الوظائف الخاصة الأساسية CORE SFRS
يتناول هذا الجزء سجلات الوظائف الخاصة الأساسية للميكروكونترولر PIC16F887 . خانات bits كل سجل من هذه السجلات تتحكم فى دوائر متعددة داخل الشريحة , بحيث لا يكون من السهل تصنيفها فى مجاميع خاصة. لهذا السبب سوف يتم وصفها جنبا إلى جنب مع العمليات التى تتحكم فيها .

سجل الحالة STATUS Register






يحتوى سجل الحالة على : الحالة الحسابية للبيانات الموجودة فى سجل العمل W , وحالة التصفير RESET وخانات اختيار مجموعة (بنك) ذاكرة البيانات .
  • IRP – خانة اختيار بنك السجل .تستخدم للعنونة الغير مباشرة .
# 1 = تفعيل البنوك Banks 0 and 1 ( مواقع الذاكرة 00h-FFh ) .

# 0 = تفعيل البنوك Banks 2 and 3 ( مواقع الذاكرة 100h-1FFh ) .
  • RP1,RP0 – خانات اختيار بنك السجل . تستخدم للعنونة المباشرة .



  • TO – خانة انتهاء (إنقضاء) الوقت (المهلة الزمنية) Time-out
# 1 = بعد توصيل القدرة وبعد تنفيذ التعليمة CLRWDT التى تقوم بعمل تصفير reset لمؤقت الحراسة أو تعليمة SLEEP والتى تضع الميكروكونترولر فى نظام استهلاك منخفض للقدرة .

# 0 = بعد حدوث انتهاء الوقت لمؤقت الحراسة .
  • PD – خانة انخفاض القدرة .
# 1 = بعد توصيل القدرة أو بعد تنفيذ التعليمة CLRWDT التى تؤدى إلى تصفير مؤقت الحراسة .
# 0 = بعد تنفيذ تعليمة SLEEP والتى تضع الميكروكونترولر فى نظام استهلاك منخفض للقدرة.
  • Z – خانة الصفر .
# 1 = نتيجة العملية الحسابية أو المنطقية بصفر .

# 0 = نتيجة العملية الحسابية أو المنطقية غير الصفر .
  • DC - خانة نصف الحمل / الاستعارة . تتغير خلال عملية الجمع والطرح عند حدوث طفحان أو حدوث استعارة للنتيجة .
# 1 = حدوث حمل من الخانة الرابعة (الترتيب الأدنى ) للنتيجة .

# 0 = عدم حدوث حمل من الخانة الرابعة (الترتيب الأدنى ) للنتيجة .
  • C - خانة الحمل / الاستعارة . تتغير خلال عملية الجمع والطرح عند حدوث طفحان أو حدوث استعارة للنتيجة أى عندما تكون النتيجة أكبر من 255 أو أقل من 0 .
# 1 = حدوث حمل من الخانة ذات الأهمية القصوى للنتيجة .
# 0 = عدم حدوث حمل من الخانة ذات الأهمية القصوى للنتيجة .

سجل الخيارات OPTION_REG Register


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 03:08 AM المشاركة 12   
افتراضي


سجل الخيارات OPTION_REG Register






يحتوى سجل الخيارات على خانات التحكم المختلفة لتهيئة وإعداد :
  • خيار تخصيص معامل قسمة التردد prescaler لأى من المؤقت Timer0 أو مؤقت الحراسة WDT .
  • خيارات التحكم فى سجل المؤقت TMR0 .
  • خيارات التحكم فى المقاطعة الخارجية .
  • خيارات التحكم فى استخدام مقاومات الجذب لإعلا للمنفذ PORTB كما فى الشكل .
الخانات :
  • RBPU (الخانة الثامنة bit7 = RB7 ) : خانة تمكين الجذب لأعلا للمنفذ PORTB :
# 1 : disable عدم تمكين الجذب لأعلا للمنفذ PORTB .
# 0 : enable تمكين الجذب لأعلا للمنفذ PORTB .









  • INTEDG (الخانة السابعة bit6 = RB6 ) : خانة اختيار حافة المقاطعة :
# 1 : rising edge المقاطعة عند الحافة الصاعدة للنبضة على الطرف RB0/IN .
# 0 : falling edge المقاطعة عند الحافة الهابطة للنبضة على الطرف RB0/IN .









  • T0CS (الخانة السادسة bit5 = RB5 ) : خانة اختيار مصدر نبضات الساعة للمؤقت TMR0 :
# 1 : TOCKI pin نبضات الساعة من الخارج .
# 0 : Fosc/4 نبضات الساعة من مذبذب الميكروكونترولر بعد القسمة على 4 أى نبضات ساعة دورة التعليمات الداخلية .







  • T0SE (الخانة الخامسة bit4 = RB4 ) : خانة اختيار حافة مصدر النبضات الواصلة للطرف RA4/T0CKI المطلوب عدها بمعرفة المؤقت TMR0 :
# 1 : high-to-low تزايد العد عند انتقال حالة الطرف TOCKI من الحالة المرتفعة إلى الحالة المنخفضة .
# 0 : low-to-high تزايد العد عند انتقال حالة الطرف TOCKI من الحالة المنخفضة إلى الحالة المرتفعة .






  • T0SE (الخانة الرابعة bit3 = RB3 ) : خانة خيار تخصيص (تحديد ) معامل قسمة التردد prescaler للمؤقت أو لمؤقت الحراسة WDT :
# 1 : WDT تخصيص معامل قسمة التردد prescaler لمؤقت الحراسة .
# 0 : TMR0 تخصيص معامل قسمة التردد prescaler للمؤقت TMR0 .







  • الخانات :PS2, PS1, PS0 (الخانة الأولى والثانية والثالثة bit0-bit2 = RB0-RB2 )خانات اختيار معدل (قيمة) معامل قسمة التردد Prescaler Rate .
يتم اختيار قيمة معامل القسمة بمجموعات مكونة من هذه الخانات الثلاثة .
وكما هو موضح بالجدول التالى فإن قيمة معامل القسمة يعتمد على تخصيصه إما للمؤقت TMR0 أو لمؤقت الحراسة WDT .









من أجل تحقيق معامل قسمة بنسبة 1:1 (بدون قسمة) عندما يقةم المؤقت TMR0 بعد النبضات يجب تخصيص معامل القسمة لمؤقت الحراسة WDT . نتيجة لذلك لن يستعمل المؤقت TMR0 معامل القسمة ولكنه سوف يقوم مباشرة بعد النبضات المتولدة بالمذبذب وهو الغرض المطلوب .

القادم إن شاء الله

سجلات نظام المقاطعة INTERRUPT SYSTEM REGISTERS


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 02:21 PM المشاركة 13   
افتراضي


أمثلة على استخدام السجل OPTION_REG :





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 02:23 PM المشاركة 14   
افتراضي


سجلات نظام المقاطعة INTERRUPT SYSTEM REGISTERS
عند وصول طلب المقاطعة فلا يعنى ذلك أن المقاطعة سوف تحدث تلقائيا لأنه يجب أيضا أن يتم تمكينها enabled بمعرفة المستخدم (من داخل البرنامج).
لهذا السبب يوجد خانات خاصة لتمكين enable أو عدم تمكين (تعطيل) disableالمقاطعات.
من السهل التعرف عليها عن طريق الحروف IE الواردة في أسمائها ( وتعنى تمكين المقاطعة).
إلى جانب ذلك فإن كل مقاطعة ترتبط بخانة تسمى "العلم" flag والتى تشير إلى وصول طلب المقاطعة بصرف النظر عما إذا كانت ممكنة أم لا.
أيضا يمكن التعرف عليها بسهولة عن طريق الحروف الواردة في أسمائها " علم المقاطعة
"IF (Interrupt Flag).








يستند كل شيء على فكرة بسيطة وفعالة.
عند وصول طلب المقاطعة يتم أولا جعل خانة العلم فى الحالة المرتفعة (1)set.
إذا كان تمكين المقاطعة IEالمناسبة ليست فى الحالة المرتفعة(1)set أى تكون فى الحالة المنخفضة (0)clearفسوف يتم تجاهل هذة الحالة تماما.
عند حدوث مقاطعة وإذا تم تمكين عدة مصادر للمقاطعة فمن الضروري الكشف عن المصدر الفعال قبل بدء تنفيذ روتين المقاطعة. يتم كشف المصدر عن طريق فحص خانة العلم.
من المهم أن نعرف أن خانة العلم هذه لا يتم مسحها تلقائيا لكن يتم ذلك عن طريق البرمجيات أثناء تقدم تنفيذ روتين المقاطعة . إذا أهملنا هذا التفصيل فسوف تحدث مقاطعة أخرى فور العودة إلى البرنامج الرئيسى حتى ولو لم تكن هناك طلبات لتنفيذها. ببساطة يمكن القول أن خانة العلم بالإضافة إلى خانة تمكين المقاطعةIE bit تبقى فى الحالة المرتفعة (1) set.


الشكل التالى يبين جميع مصادر المقاطعة للميكروكونترولر PIC16F887 . نلاحظ عدة أشياء :
  • الخانة GIE تعمل على تمكين enables جميع المقاطعات الغير مقنعة unmasked وعلى عدم تمكين disables جميع المقاطعات فى نفس الوقت .
  • الخانة PEIE تعمل على تمكين جميع المقاطعات الغير مقنعة للمحيطيات peripheral وعلى عدم تمكينها جميعا . وهى لا صلة لها بمصادر المقاطعة بالمؤقت TMR0 ولا بالمنفذ PORTB .
  • لتمكين المقاطعة الناتجة عن تغيير الحالة المنطقية للمنفذ PORTB من الضرورى أن يتم تمكين كل خانة على حدة . فى هذه الحالة خانات السجل IOCB تعمل كخانات تحكم فى تمكين المقاطعة .






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


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-03-2011, 02:26 PM المشاركة 15   
افتراضي


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

يحتوى السجل INTCON على خانات التمكين والأعلام المختلفة من أجل المقاطعات الناتجة عن :
  • حدوث طفحان overflow بمحتويات سجل المؤقت TMR0 .
  • حدوث تغيير فى الحالة المنطقية لأطراف المنفذ PORTB .
  • حدوث مقاطعة خارجية على الطرف INT .



تعريف الخانات :
  • الخانة GIE : " خانة تمكين عموم أو جميع المقاطعات " تتحكم فى جميع مصادر المقاطعات الممكنة فى نفس الوقت .
# 1 : Enables تمكين جميع المقاطعات الغير مقنعة .
# 0 : Disables عدم تمكين جميع المقاطعات .
  • الخانة PEIE : " خانة تمكين المقاطعة بالمحيطياتPeripheral " وتعمل بنفس طريقة الخانة GIE ولكن تتحكم فى تمكين المقاطعات بالمحيطيات . وهذا يعنى أن لا تأثير لها على المقاطعات الناتجة عن المؤقت TMR0 أو الناتجة عن تغيير حالة أطراف المنفذ PORTB أو الناتجة عن الطرف RB0/INT .
# 1 : Enables تمكين جميع المقاطعات الغير مقنعة للمحيطيات .
# 0 : Disables عدم تمكين جميع المقاطعات الناتجة عن المحيطيات .
  • الخانة T0IE "خانة تمكين المقاطعة عند حدوث طفحان فى محتويات سجل المؤقت TMR0 Overflow "
# 1 : Enables تمكين المقاطعة بالمؤقت TMR0 .
# 0 : Disables عدم تمكين المقاطعة بالمؤقت TMR0 .
  • الخانة INTE " خانة تمكين المقاطعة الخارجية عند تغيير الحالة المنطقية للطرف RB0/INT "
# 1 : Enables تمكين المقاطعة الخارجية على الطرف INT .
# 0 : Disables عدم تمكين المقاطعة الخارجية على الطرف INT .
  • الخانة RBIE " خانة تمكين المقاطعة عن تغيير حالة المنفذ PORTB " عندما يتم إعداد المنفذ PORTB كمداخل يمكن أن تسبب أطرافه مقاطعة عند تغيير حالتها المنطقية ( سواء من الحالة المرتفعة إلى الحالة المنخفضة أو العكس المهم وجود تغيير ) .
# 1 : Enables تمكين المقاطعة عند تغيير حالة المنفذ PORTB .
# 0 : Disables عدم تمكين المقاطعة عند تغيير حالة المنفذ PORTB .
  • الخانة T0IF " خانة علم حدوث مقاطعة نتيجة طفحان محتويات السجل TMR0 أى عندما يبدأ العد من الصفر من جديد .
# 1 : overflowed حدوث طفحان فى سجل المؤقت TMR0 ( يجب تصفير هذه الخانة من خلال البرنامج حتى يتأهل البرنامج لحدوث الطفحان التالى )
# 0 : not overflowed سجل المؤقت TMR0 لم يطفح بعد ( محتوياته أقل من 255) .
  • الخانة INTF "خانة علم حدوث مقاطعة خارجية نتيجة تغيير الحالة المنطقية للطرف RB0/INT .
# 1 : occurred حدوث مقاطعة خارجية على الطرف INT (يجب تصفيرها من خلال البرنامج ).
# 0 : not occurred عدم حدوث مقاطعة خارجية على الطرف INT (يجب تصفيرها من خلال البرنامج ).
  • الخانة RBIF : خانة علم حدوث مقاطعة عند تغيير الحالة المنطقية لبعض أطراف مداخل المنفذ PORTB .
# 1 : changed state حدث تغيير على الأقل لأحد أطراف المنفذ PORTB . عند قراءة المنفذ PORTB يجب تصفير الخانة RBFI من خلال البرنامج .
# 0 : None changed لم يتم حدوث تغيير فى حالة أى طرف من أطراف المنفذ PORTB .


طريقة التنفيذ بالمترجم mikroC




السجل PIE1


ali79
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2007
المشاركات: 117
نشاط [ ali79 ]
قوة السمعة:
قديم 27-03-2011, 08:10 PM المشاركة 16   
افتراضي


استاذي الكريم
جزاك الله عنا كل خير
اريد ان أسأل سؤال بما ان المتحكم pic16f887 يملك مذبذب داخلي
هل تقصد اننا نستطيع ان نستغني عن الكريستالة الخارجية وكم سرعة المذبذب الداخلي وكيف نضبط تردده من خلال البرمجة
وشكرا



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