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

   

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



سجلات الوظائف الخاصة الأساسية 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 ]
قوة السمعة:
قديم 29-09-2011, 03:50 AM المشاركة 42   
افتراضي


سجل الخيارات 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 ]
قوة السمعة:
قديم 29-09-2011, 03:51 AM المشاركة 43   
افتراضي


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






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


سجلات نظام المقاطعة 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 ]
قوة السمعة:
قديم 29-09-2011, 03:53 AM المشاركة 45   
افتراضي


سجل التحكم فى المقاطعات 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


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


مذبذب الساعة CLOCK OSCILLATOR

يبين الشكل التالى أن إشارة السشاعة يمكن أن تتولد بواسطة واحد من المذبذبات الموجودة ضمن بناء الميكروكونترولر






المذبذب الخارجى :
مثبت داخل الميكروكونترولر ومتصل بالطرفين OSC1 و OSC2 . ويسمى خارجى ‘external’ لأنه يعتمد على دائرة خارجية فى توليد إشارة الساعة وفى تثبيت التردد وتتمثل فى كريستال الكوارتز quartz crystal أو فى دائرة الرنين السيراميكى ceramic resonator أو فى دائرة مكونة من مقاومة ومكثف RC-Circuit. يتم اختيار النظام بواسطة خانات بايت يسمى "كلمة الإعدادات أو التهيئة" Config Word والتى ترسل أثناء البرمجة .

المذبذب الداخلى :








يتكون المذبذب الداخلى من مذبذبين منفصلين داخليين :
المذبذب HFINTOSC " مذبذب التردد العالى الداخلى " الذى يعمل على تردد 8MHz . يمكن للميكروكونترولر استخدام مصدر الساعة المتولد عند هذا التردد أو بعد قسمة هذا التردد على معامل لقسمة التردد prescaler .
المذبذب LFINTOSC" مذبذب التردد المنخفض الداخلى " والذى يعمل على 31 kHz . تستخدم مصادر ساعته لكل من لمؤقت الحراسة watch-dog ولمؤقت بناء القدرة power-up . ولكن يمكن استخدامه أيضا كمصدر ساعة لعمل باقى كامل الميكروكونترولر .
يمكن اختيار نظام الساعة بين المصدر الخارجى للساعة أو المصدر الداخلى للساعة عن طريق الخانة (SCS) "اختيار ساعة النظام " الموجودة بالسجل OSCCON "سجل التحكم فى المذبذب" .

سجل التحكم فى المذبذب OSCCON :
يتحكم السجل OSCCON فى ساعة النظام وفى خيارات اختيار التردد . يحتوى هذا السجل على الخانات التالية : خانات اختيار التردد (IRCF2, IRCF1, IRCF0) و خانات حالة التردد (HTS, LTS) وخانات التحكم فى ساعة النظام (OSTA, SCS) .






تعريف الخانات :
الخانات IRCF2-0 : خانات اختيار تردد المذبذب الداخلى . يعتمد معدل (معامل) القسمة على المجموعات المركبة من هذه الخانات الثلاثة . يتم تحديد تردد المذبذب الداخلى بنفس الطريقة .






الخانة OSTS : "خانة بيان حالة إنتهاء زمن بدء المذبذب " لبيان أى مصدر للساعة مستخدم حاليا . هذه الخانة قابلة للقراءة فقط .
# 1 : بيان أن المذبذب المستخدم حاليا هو المذبذب الخارجى .
# 0 : بيان أن المذبذب المستخدم حاليا هو أحد المذبذبات الداخلية (HFINTOSC or LFINTOSC) .

الخانة HTS : "خانة حالة المذبذب HFINTOSC " (8 MHz - 125 kHz) لبيان طريقة استقرار عمل هذا المذبذب .
# 1 : المذبذب HFINTOSC مستقر stable .
# 0 : المذبذب HFINTOSC غير مستقر not stable .

الخانة LTS : " خانة حالة استقرار المذبذب LFINTOSC" (31 kHz) لبيان طريقة استقرار عمل هذا المذبذب .
# 1 : المذبذب LFINTOSC مستقر stable .
# 0 : المذبذب LFINTOSC غير مستقر not stable .

الخانة SCS : "خانة اختيار ساعة النظام" تحدد أى المذبذبات هو الذى يستخدم كمصدر لساعة النظام .
# 1 : استخدام المذبذب الداخلى كمصدر لساعة النظام .
# 0 : استخدام المذبذب الخارجى كمصدر لساعة النظام .
يتم تحديد نظام المذبذب عن طريق الخانات الموجودة بكلمة الإعدادات Config Word والتى تكتب على ذاكرة الميكروكونترولر خلال عملية البرمجة .



تعليق :

الخلاصة أنه اثناء البرمجة نحدد التردد المطلوب العمل عليه لضبط التوقيتات اللازمة للعمليات المتعاقبة وللعمليات الزمنية ولا نهتم كون المذبذب داخلى أو خارجى .
اثناء البرمجة فقط نختار نوع المذبذب خارجى أو داخلى فى برمجيات البرمجة مثل ICPROG وغيره .


sohaib A.Z
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2007
الدولة: SUDAN
المشاركات: 145
نشاط [ sohaib A.Z ]
قوة السمعة:
قديم 29-09-2011, 09:52 AM المشاركة 47   
افتراضي


السلام عليكم
ماشاء الله تبارك الله
مجهود كبير
وفقك الله وزادك من فضله


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


السلام عليكم
ماشاء الله تبارك الله
مجهود كبير
وفقك الله وزادك من فضله
أخى الكريم

شكرا جزيلا لك

بارك الله فيك

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



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