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

   

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 381
نشاط [ abnidal ]
قوة السمعة:
قديم 04-10-2011, 03:51 PM المشاركة 105   
Thumbs up اكرمك الله



جزاك الله خيرا

ماشاء الله .... جهد مشكور .... لك مني الدعاء انشاء الله ولكل الاخوة الكرام..........

اعلانات

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


2-1-12 المقاطعات Interrupts
المقاطعة هى "حدث" event والذى يتطلب وقف وحدة المعالجة المركزية CPU عن تنفيذ البرنامج العادى ومن ثم تنفيذ كود برنامج متعلق بالحدث المسبب للمقاطعة . يمكن توليد المقاطعات داخليا ( عن طريق بعض الأحداث داخل الشريحة ) أو خارجيا ( عن طريق بعض الأحداث الخارجية) . مثال للمقاطعة الداخلية هو حدوث طفحان فى المؤقت أو اكتمال التحويل للمحول A/D . ومثال للمقاطعة الخارجية هو تغيير حالة طرف دخل / خرج .
يمكن أن تكون المقاطعة مفيدة فى العديد من التطبيقات مثل :
· التطبيقات الحرجة (الحساسة) للزمن . يمكن استخدام المقاطعات فى التطبيقات التى تتطلب اهتماما فوريا من وحدة المعالجة المركزية . على سبيل المثال , فى الحالات الطارئة emergency مثل إنقطاع (فشل) الكهرباء أو حريق فى مصنع فقد تضطر وحدة المعالجة المركزية إلى إيقاف shut downالنظام على الفور على نحو منظم ( بترتيب محدد ) . فى مثل هذه التطبيقات يمكن لمقاطعة خارجية إجبار force وحدة المعالجة المركزية لوقف كل ما تقوم به واتخاذ إجراءات فورية .
· أداء المهام الروتينية . العديد من التطبيقات تحتاج لقيام وحدة المعالجة المركزية CPU بأداء عمل روتينى فى أوقات محددة , مثل فحص حالة جهاز طرفى كل واحد ملى ثانية بالضبط . يمكن لمقاطعة بالمؤقت مجدولة أن تعمل على تحويل (انحراف) وحدة المعالجة المركزية من التنفيذ العادى للبرنامج إلى إنجاز المهمة فى التوقيت المحدد بدقة .
· تبديل المهام فى التطبيقات متعددة المهام multi-tasking. فى التطبيقات متعددة المهام , كل مهمة قد قد يكون لها وقت محدد لتنفيذ كودها . يمكن استخدام آليات المقاطعة لوقف مهمة استهلكت وقتا أكثر من الوقت المخصص لها .
· لخدمة الأجهزة الطرفية بسرعة . بعض التطبيقات قد تحتاج إلى معرفة متى يتم النتهاء من المهمة , مثل اكتمال التحويل A/D . يمكن تحقيق ذلك عن طريق الفحص المستمر لعلم الاكتمال للمحول A/D . ولعل الحل يكون أكثر أناقة بتمكين مقاطعة اكتمال التحويل A/D بحيث تجبر وحدة المعالجة المركزية على قراءة البينات المحولة بمجرد أن تصبح متاحة .

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

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


بسم الله ماشاء الله
نشاط رائع وحماس قوي
مشكور جدا ويارب الاستمرارية حتي النهاية

أخى الكريم

شكرا جزيلا لك

يارب

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


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


جزاك الله خيرا

ماشاء الله .... جهد مشكور .... لك مني الدعاء انشاء الله ولكل الاخوة الكرام..........


أخى الكريم

شكرا جزيلا لك

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


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


الميكروكونترولر PIC18F452 به كل من مصادرة المقاطعة الأساسية الموجودة فى لبها core ومصادر المقاطعة الطرفية .
مصادر المقاطعة الأساسية هى :
· المقاطعة الخارجية "بحافة البدء" edge-triggered على الأطراف INT0, INT1, INT2 .
· المقاطعات بتحول أطراف المنفذ PORTB ( تغيير حالة أى من الأطراف RB4–RB7 ) .
· مقاطعة طفحان overflow المؤقت Timer 0 .

مصادر مقاطعة الأجهزة الطرفية هى :
· مقاطعة القراءة / الكتابة للمنفذ التفرعى التالبع .
· مقاطعة اكتمال التحويل A/D .
· مقاطعة الاستقبال USART .
· مقاطعة الإرسال USART .
· مقاطعة المنفذ التسلسلى المتزامن .
· مقاطعة CCP1 .
· مقاطعة طفحان المؤقت TMR1 .
· مقاطعو طفحان المؤقت TMR2 .
· مقاطعة المقارن .
· مقاطعة الكتابة EEPROM/FLASH .
· مقاطعة تعارض الناقل Bus .
· مقاطعة كشف الجهد المنخفض .
· مقاطعة طفحان المؤقت Timer 3 .
· مقاطعة CCP2 .
يمكن تقسيم المقاطعات فى العائلة PIC18F إلى مجموعتين : مجموعة ذات أولوية مرتفعة ومجموعة ذات أولوية منخفضة . يمكن وضع التطبيقات التى تتطلب مزيدا من الاهتمام فى مجموعة الأولوية المرتفعة . يمكن للمقاطعة ذات الأولوية المرتفعة وقف المقاطعة ذات الأولوية المنخفضة والتى هى قيد التنفيذ والوصول إلى وحدة المعالجة المركزية . مع ذلك , لا يمكن وقف المقاطعة ذات الأولوية المرتفعة عن طريق المقاطعة ذات الأولوية المنخفضة . إذا كان التطبيق لا يحتاج إلى تحديد أولويات المقاطعات فيمكن للمستخدم تعطيل جدول أولوية المقاطعة حتى يتسنى لجميع المقاطعات أن تكون على نفس المستوى من الأولوية . المقاطعات ذات الأولوية المرتفعة تتجه نحو العنوان 00008H والمقاطعات ذات الأولوية المنخفضة تتجة نحو العنوان 000018H من ذاكرة البرنامج . عادة , يجب أن يكون كود برنامج المستخدم ( روتين خدمة المقاطعة ISR ) عند عنوان متجة المقاطعة لخدمة الجهاز المقاطع .



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


يوجد بالميكروكونترولر PIC18F452 10 سجلات تتحكم فى عمليات المقاطعة وهى :

· RCON
· INTCON
· INTCON2
· INTCON3
· PIR1, PIR2
· PIE1, PIE2
· IPR1, IPR2

كل مصدر مقاطعة ( ماعدا INT0 ) له 3 بتات تتحكم فى عمله . هذه البتات هى :
· بت العلم flag bit لبيان ما إذا وقعت المقاطعة . هذه البت اسمها ينتهى بالحروف …IF .
· بت تمكين المقاطعة enable bit لتمكين أو تعطيل مصدر المقاطعة . هذه البت اسمها ينتهى بالحروف …IE .
· خانة الأولوية priority bit لاختيار الأولوية المرتفعة أو المنخفضة . هذه البت اسمها ينتهى بالحروف …IP .

السجل RCON
يستخدم أعلى بت فى السجل RCON , المسمى IPEN , فى تمكين enable نظام أولوية المقاطعة . عندما يكون IPEN = 0 يتم تعطيل (عدم تمكين) مستويات أولويات المقاطعة ويصبح بناء مقاطعات الميكروكونترولر مشابة للموجود بالسلسلة PIC16 . عندما يكون IPEN = 1 , يتم تمكين مستويات أولويات المقاطعة . الشكل 2-46 يوضح بتات السجل RCON .

تمكين / عدم تمكين المقاطعات – بناء بدون أولوية


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


تمكين / عدم تمكين المقاطعات – بناء بدون أولوية
عندما يتم مسح البت IPEN , يتم تعطيل خاصية الأولوية . جميع المقاطعات تتفرع من العنوان 00008H بذاكرة البرنامج . فى هذا النظام , البت PEIE بالسجل INTCON تعمل على تمكين / عدم تمكين جميع مصادر المقاطعات الطرفية . بالمثل , البت GIE بالسجل INTCON تقوم بتمكين / عدم تمكين جميع مصادر المقاطعة . الشكل 2-47 يوضح بتات السجل INTCON .
حتى تقبل المقاطعة بواسطة وحدة المعالجة المركزية يجب أن تتحقق الشروط التالية :
· يجب تمكين بت تمكين المقاطعة لمصدر المقاطعة . على سبيل المثال إذا كان مصدر المقاطعة خارجى عن طريق الطرف INT0 , عندئذ يجب تحديد البت INT0IE بالسجل INTCON بواحد set .
· يجب مسح (تصفير) علم المقاطعة لمصدر المقاطعة . على سبيل المثال , على سبيل المثال إذا كان مصدر المقاطعة خارجى عن طريق الطرف INT0 , عندئذ يجب مسح البت INT0IF بالسجل INTCON (بصفر clear ) .
· يجب تحديد خانة تمكين/عدم تمكين المقاطعات الطرفية PEIE بالسجل INTCON بواحد set=1 إذا كان مصدر المقاطعة طرفى .
· يجب تحديد بت تمكين/عدم تمكين عموم المقاطعة global interrupt وهى GIE بالسجل INTCON بواحد .
مع مصدر المقاطعة الخارجى يجب علينا عادة تعريف ما إذا كانت المقاطعة تحدث عن الانتقال من منخفض إلى مرتفع أو من مرتفع إلى منخفض لمصدر المقاطعة .
مع المقاطعات عن طريق INT0 , على سبيل المثال , يتم عمل ذلك عن طريق تحديد/مسح البت INTEDG0 بالسجل INTCON2 .
عند حدوث مقاطعة , توقف وحدة المعالجة المركزية CPU مسار التنفيذ العادى وتدفع بعنوان العودة إلى المكدس , وتقفز إلى العنوان 00008H بذاكرة البرنامج حيث يقيم برنامج المستخدم لروتين خدمة المقاطعة . بمجرد أن تكون وحدة المعالجة المركزية فى روتين خدمة المقاطعة , يتم يتم مسح خانة تمكين عموم المقاطعة (GIE) لتعطيل مزيد من المقاطعات .
عندما يتم تمكين المقاطعة من مصادر متعددة , يمكن تحديد مصدر المقاطعة عن طريق الانتخاب (الاقتراع) polling لبتات إعلام المقاطعة . يجب مسح بتات علم المقاطعة برمجيا قبل إعادة تمكين المقاطعة لتجنب إرجاع المقاطعات . عند عودة وحدة التحكم المركزية من روتين خدمة المقاطعة يتم تلقائيا تحديد set خانة تمكين عموم المقاطعة GIE برمجيا .

تمكين/عدم تمكين المقاطعات – بناء الأولوية


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


البرمجة بلغة السى C Programming Language
يوجد العديد من مترجمات لغة السى C compilers فى السوق لسلسلة الميكروكونترولر PIC18F . هذه المترجمات لها العديد من السمات المتشابهة وجميعها تستخدم فى تطوير (إنشاء) برامج لغة السى ذات المستوى المرتفع للميكروكونترولر PIC18F .



إليك بعض مترجمات لغة السى المستخدمة فى تطبيقات الميكروكونترولر PIC18F سواء التجارية أوالصناعية أوالتعليمية :
  • MikroC
  • PICC18
  • C18
  • CCS
المترجم الشائع والأقوى هو mikroC ( المطور بمعرفة :MikroElektronika بالموقع


http://www.mikroe.com/ ) وهو "سهل التعلم" وهو "غنى بالموارد" مثل العدد الكبير من مكتبات الدوال وبيئة التطوير المتكاملة والمدمج بها "برنامج محاكاة" و"مصحح بالدائرة" . النسخة التجريبية demo من المترجم متاحة بالموقع ومحددة ببرنامج 2K .

1.3 هيكل (بناء) برنامج الميكروسى Structure of a mikroC Program



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