منتدى التحكم الآلي والإلكترونيات
مرحبا بك عزيزي الزائر يشرفنا أن تقوم بالدخول إذا كنت من الأعضاء أو التسجيل إذا كنت زائرا ويمكنك إنشاء حسابك ببساطة ويمكنك التفعيل عن طريق البريد أو الانتظار قليلا حتى تقوم الإدارة بالتفعيل
منتدى التحكم الآلي والإلكترونيات

Automatic control , PLC , Electronics , HMI , Machine technology development , Arabic & Islamic topics , Management studies and more
 
الرئيسيةالبوابة*مكتبة الصوراليوميةس .و .جبحـثالتسجيلقائمة الاعضاءالمجموعاتدخول

شاطر | 
 

 ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
انتقل الى الصفحة : الصفحة السابقة  1, 2, 3  الصفحة التالية
كاتب الموضوعرسالة
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 6:26

نظرة عامة على المحول من تناظرى إلى رقمى A/D CONVERTER

الإشارات الخارجية عادة ما تكون مختلفة جذريا عن تلك التي يفهمها الميكروكونترولر (الآحاد والأصفار) وبالتالي يجب تحويلها إلى قيم مفهومة للميكروكونترولر .

المحول من تناظرى إلى رقمي هو دائرة إلكترونية تقوم بتحويل الأشارات المستمرة continuous إلى أعداد رقمية منفصلة .

وبعبارة أخرى هذه الدائرة تقوم بتحويل القيمة التناظرية analogue value إلى عدد ثنائي binary number وتمريره إلى وحدة المعالجة المركزية CPU لمزيد من المعالجة.

ولذلك يستخدم هذا الموديول لقياس جهد طرف مدخل (القيمة التناظرية).
نتيجة القياس هى عدد (القيمة الرقمية) والتى تستخدم وتعالج فى البرنامج فيما بعد .


















الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 11:25

إسلوب البناء الداخلى INTERNAL ARCHITECTURE

يستخدم فى التركيب البنائى الداخلى لجميع الميكروكونترولر نموذج تصميم من اثنين يسميان Harvard "هارفارد" أو von-Neumann "فون نيومان" . وهما يمثلان طريقتان مختلفتان فى تبادل البيانات بين وحدة المعالجة المركزية CPU والذاكرة memory .



إسلوب البناء "فون نيومان" VON-NEUMANN ARCHITECTURE














الميكروكنترولر الذى يستخدم إسلوب البناء فون نيومان به كتلة واحدة من الذاكرة وناقل بيانات 8-bit واحد .حيث يتم تبادل جميع البيانات من خلال هذه الخطوط الثمانية ومن ثم ويكون الناقل bus محمل فوق طاقته overloadedكما أن الاتصال يكون بطىء جدا وغير فعال .

يمكن لوحدة المعالجة إما قراءة التعليمة أو قراءة / كتابة البيانات من / إلى الذاكرة .ولا يمكن حدوث كلاهما في نفس الوقت لأن التعليمات والبيانات تستخدم نفس الناقل .

على سبيل المثال إذا كان سطر البرنامج ينص على أن سجل بذاكرة RAM يسمى SUM يجب أن يتزايد بواحد (شكل التعليمة : incf SUM ) فإن الميكروكونترولر يقوم بما يلي :

الخطوة الأولى : هى قراءة الجزء من تعليمات البرنامج التى تحدد ما ينبغي القيام به (في هذه الحالة هى التعليمة incf لعمل تزايد بواحد ).

الخطوة الثانية : قراءة الجزء الآخر من نفس التعليمة والتي على أساسها يتم تحديد البيانات التى تجرى عليها عملية التزايد (في هذه الحالة هى السجل SUM ).

الخطوة الثالثة : بعد أن يتم التزايد بواحد ينبغي كتابة محتويات هذا السجل فى السجل الذى يمكن قراءته منه (عنوان السجل SUM ).
يتم استخدام نفس ناقل البيانات فى جميع هذه العمليات الوسيطة.



إسلوب البناء "هارفارد" HARVARD ARCHITECTURE



الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 11:30

إسلوب البناء "هارفارد" HARVARD ARCHITECTURE












الميكروكنترولر الذى يستخدم إسلوب البناء هارفارد به ناقلين مختلفين للبيانات . واحد منهما بعرض(بسعة) 8-bit ويوصل وحدة المعالجة المركزية بذاكرة RAM .

والآخر يتكون من 12أو 14 أو 16 خط ويوصل وحدة المعالجة المركزية بذاكرة ROM .

وبناء عليه يمكن لوحدة المعالجة المركزية قراءة التعليمات ( من ذاكرة البرنامج) والوصول إلى ذاكرة البيانات في نفس الوقت.

حيث أن جميع سجلات ذاكرة RAM بعرض 8-bit فإن جميع البيانات التي يتم تبادلها تكون بنفس العرض.

أثناء عملية كتابة البرنامج يتم الأخذ فى الاعتبار أن البيانات بالعرض 8-bit فقط .

بعبارة أخرى كل ما يمكنك تغييره من داخل البرنامج وكل ما يمكنك أن تؤثر عليه هو بالعرض 8-bit .

جميع البرامج المكتوبة للميكروكونترولر فى هذا النظام سوف يتم حفظها فى الذاكرة ROM الداخلية بعد ترجمتها إلى شفرة الآلة .

مواقع ذاكرة ROM ليست بالعرض 8-bit لكن بالعرض 12 , 14 , or 16-bit.

البتات المتبقية 4 , 6 , or 8 تمثل التعليمة التى تحدد لوحدة المعالجة المركزية ماذا تفعل بالبيانات ذات العرض 8-bit .

مميزات هذا التصميم هي مايلى :

· جميع البيانات في البرنامج بعرض(بسعة) بايت واحد (8-bit) .ولأن ناقل البيانات

data bus المستخدم فى قراءة البرنامج به 12, 14 or 16 خط فيمكن قراءة كل من التعليمة والبيانات في وقت واحد باستخدام هذه البتات الزائدة .

لهذا السبب كل التعليمات هي تعليمات "دورة واحدة" ما عدا تعليمة القفز التي تستغرق دورتين من دورات التعليمة .

· ونظرا لحقيقة أن ذاكرة البرنامج الدائمة ROM وذاكرة البيانات المؤقتة RAM

منفصلة فإن وحدة المعالجة المركزية يمكن أن تنفذ تعليمتين في وقت واحد. فببساطة أثناء تقدم عملية قيام ذاكرة RAM بالقراءة أو بالكتابة (نهاية أحد التعليمات ) ، يتم قراءة تعليمة البرنامج التالية من خلال الناقل الآخر .

· عند استخدام ميكروكنترولر بإسلوب " فون نيومان " لا أحد يعرف مقدار الذاكرة التي

سوف يشغلها البرنامج.

أساسا معظم تعليمات البرامج تحتل موقعين من الذاكرة ( موقع يحتوي على معلومات حول ما ينبغي القيام به ، في حين يحتوى الآخر على معلومات عن البيانات التي يتم هذا الفعل عليها ). ومع ذلك ، فإنها ليست قاعدة جامدة وسريعة، ولكنها الحالة الأكثر شيوعا.

في الميكروكنترولر الذى يستخدم إسلوب "هارفارد" يكون ناقل كلمة البرنامج أعرص (أوسع) من من بايت واحد، مما يسمح بأن تتكون كل كلمة برنامج من تعليمة وبيانات ، أي موقع ذاكرة واحد وتعليمة برنامج واحدة .



مجموعة التعليمات INSTRUCTION SET

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 11:33

مجموعة التعليمات INSTRUCTION SET














جميع التعليمات القابلة للفهم بواسطة الميكروكونترولر تسمى "مجموعة التعليمات " Instruction Set .

عندما تقوم بكتابة برنامج بلغة الأسمبلى فأنت بالفعل تحدد التعليمات والترتيب الذى يجب أن تنفذ به .

القيد الرئيسي هنا هو عدد التعليمات المتاحة . غالبا ما تعتمد الشركات المصنعة أى من الإسلوبين التاليين :



مجموعة التعليمات المخفضة RISC

REDUCED INSTRUCTION SET COMPUTER



في هذه الحالة يتعرف وينفذ الميكروكونترولر العمليات الأساسية فقط (الجمع والطرح والنسخ وغيرها).

يتم تنفيذ العمليات الأخرى الأكثر تعقيدا من خلال الجمع أم المزج بين العمليات الأساسية .

على سبيل المثال يتم تنفيذ عملية الضرب بإجراء عمليات جمع متتالى .



مجموعة التعليمات المركبة CISC

COMPLEX INSTRUCTION SET COMPUTER



يصمم الميكروكونترولر للتعرف على أكثر من 200 تعليمة مختلفة تقوم بعمل الكثير من الأشياء بسرعة عالية .



كيف تتخذ قرار الاختيار الصحيح؟


الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 11:35

كيف تتخذ قرار الاختيار الصحيح؟
أنت مبتدىء وقد اتخذت قرارا الذهاب في مغامرة العمل بالميكروكنترولر.

نهنئك على اختيارك!

ومع ذلك فإنه ليس من السهل اختيار الميكروكونترولر كما قد يبدو.

المشكلة ليست فى أن الأجهزة محدودة ولكن العكس!

قبل البدء في تصميم جهاز يعتمد على الميكروكونترولر فكر في ما يلي :

· كم عدد خطوط المداخل / المخارج التى سوف تحتاجها للعمل ؟

· هل يجب تنفيذ بعض العمليات الأخرى غير توصيل وفصل ليدات وريلايات ؟

· هل تحتاج إلى وحدات (موديولات) متخصصة مثل الاتصال التسلسلى و المحول من تناظرى لرقمى إلخ؟

عندما تقوم بتكوين صورة واضحة عن ما تحتاج إليه ، فأن حدود الخيارات تقل بشكل كبير ويحين وقت التفكير فى السعر.

· هل تخطط فى عمل العديد من نفس الجهاز ؟ عدة مئات ؟ مليون ؟



إذا كنت تفكر فى كل هذه الأشياء لأول مرة فسوف يبدو كل شيء مربكا بعض الشيء.

لهذا السبب إمضى خطوة بخطوة.

· بادئ ذي بدء، حدد الشركة المصنعة أي عائلة الميكروكونترولر الذى يمكنك الحصول عليها بسهولة.

· إدرس نموذج واحد بعينه.

· تعلم بقدر ما تحتاج ولا تخوض في التفاصيل .

· حل مشكلة محددة (بتنفيذ مشروع) وسوف يحدث شيء لا يصدق !! فسوف تكون قادرا على التعامل مع أي نموذج ينتمى لعائلة هذا الميكروكونترولر .

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

بطبيعة الحال فأنك لن تنسى البرمجة تماما كما أنك لم تنسى ركوب الدراجات حتى الآن!
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
metwally.mustafa
فريق أول
فريق أول


عدد الرسائل : 4211
العمر : 30
الموقع : Egypt
العمل/الترفيه : automation engineer
تاريخ التسجيل : 12/01/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الثلاثاء 1 مارس 2011 - 12:40

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

_________________
I am so far behind, I think i am first
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 4:17



1-4- الميكروكونترولر PIC

الميكروكنترولر PIC مصمم بمعرفة شركة ميكروشيب تكنولوجى

Microchip Technology هو الخيار المرجح (المفضل) للمبتدئين لما يلى .



الاسم الأصلي لهذا الميكروكونترولر هو PICmicro

(Peripheral Interface Controller) ولكنه يعرف باسم PIC .

كل عائلات الميكروكنترولر PIC تستخدم إسلوب بناء "هارفارد" وهو ما يعني أن ذاكرة البرنامج تتصل بوحدة المعالجة المركزية بناقل مكون من أكثر من 8 خطوط ( 12 أو 14 أو 16 خط ) .

هذا الكتاب يصف عمل أحد نماذج الميكروكونترولر والتى تنتمى إلى العائلة "المتوسطة" . إنه الميكروكونترولر PIC16F887 وهو قوى بما يكفي ليكون جديربالاهتمام وهو بسيط بما فيه الكفاية ليقدم بسهولة إلى الجميع.

باستثناء الميكروكونترولر الضخم (الوحش) PIC 24FXXX و PIC 24HXXX فإن جميع الميكروكنترولر PIC مبنية على أساس هارفارد ذو الثمانى بتات وتنتمي الى واحدة من أصل ثلاث مجموعات كبيرة اعتمادا على سعة كلمة البرنامج حيث يوجد فئات ذات كلمة برنامج بسعات12-, 14- or 16-bit وكلها تستخدم نفس مجموعة التعليمات .



مجموعة التعليمات INSTRUCTION SET

مجموعة التعليمات للعائلة 16F8XX تتضمن ما مجموعه 35 تعليمة .

السبب فى هذا العدد الصغير من التعليمات يكمن في استخدام إسلوب التعليمات المخفضة RISC.وهو ما يعني أن هذه التعليمات مثالية جدا من حيث سرعة التشغيل ، والبساطة في البناء المعمارى ية وإحكام الكود .

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

هذا الكتاب يتناول البرمجة بلغة السى عالية المستوى ، مما يعني أن معظم العمل يتم القيام به من قبل شخص آخر ( المترجم) . ما عليك إلا استخدام تعليمات تعليمات بسيطة نسبيا فقط .



زمن تنفيذ التعليمة INSTRUCTION EXECUTION TIME

جميع التعليمات هي"تعليمات بدورة مفردة " single-cycle . والاستثناء الوحيد فى تعليمات حالة التفرع الشرطى ( عند تحقق الشرط ) أو التعليمات التى تتم على عداد البرنامج .

في كلتا الحالتين نحتاج لدورتين لتنفيذ التعليمة ، حيث تنفذ التعليمة الثانية فى شكل التعليمة NOP ) عدم فعل شىء) (No Operation) .

تعليمات "الدورة المفردة" تتكون من من أربع دورات للساعة four clock cycles .

فإذا تم استخدام مذبذب بتردد 4MHz يكون الوقت الإسمى nominal لتنفيذ التعليمة هو 1μS بينما تعليمات القفز تنفذ فى 2μS .










الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 4:27

الفصل الثانى

برمجة الميكروكونترولر

Programming Microcontrollers

مقدمة

بالتأكيد أنت تعرف أنه لا يكفي مجرد توصيل الميكروكونترولر إلى المكونات الأخرى ثم توصيل مصدر القدرة ليعمل ، أليس كذلك؟

هناك شيء آخر يجب القيام به.

يحتاج الميكروكونترولر للبرمجة ليكون قادرة على أداء شيء مفيد.

إذا كنت تعتقد أن الامر معقد فأنت مخطئ.

جميع الخطوات في غاية البساطة.

مجرد قراءة هذا الفصل بتأنى وسوف تغير رأيك

هذا الفصل يشمل على :

· لغات البرمجة .

· قواعد (أسس) البرمجة بلغة السى .

· المترجم (الكومبيلر) MIKROC PRO FOR PIC



2-1 لغات البرمجة PROGRAMMING LANGUAGES












ينفذ الميكروكونترولر البرنامج المحمل بذاكرتة الدائمة الفلاش .هذا البرنامج يسمى أيضا الكود (الشفرة) القابلة للتنفيذ والذى يتألف من تتابع (تسلسل) من الآحاد والأصفار على ما يبدو لا معنى له .

هذا الكود ينظم فى شكل كلمات words وكل كلمة بسعة إما 12 أو 14 أو 16 بت إعتمادا على بناء الميكروكونترولر .

تعتبر كل كلمة من قبل وحدة المعالجة المركزية كأمر commandينفذ خلال تشغيل الميكروكونترولر .

لأسباب عملية ، وحيث أنه انه من الاسهل بكثير بالنسبة لنا التعامل بنظام الأعداد السداسى عشر فغالبا ما يتم تمثيل الكود القابل للتنفيذ كتسلسل من الأعداد السداسى عشر ويسمى بالهكس كود Hex code .ويستخدم للكتابة من قبل المبرمج .

جميع التعليمات التي يمكن للميكروكونترولر التعرف عليها تسمى مجموعة التعليمات .

بالنسبة للميكروكنترولر PIC الذى يستخدم كلمات البرمجة بسعة 14 بت فإن مجموعة تعليماته عبارة عن 35 تعليمة مختلفة ككل .












نظرا لأن عملية كتابة الكود القابل للتنفيذ كانت متعبة لأقصى درجة تم تأسيس أول لغة برمجة "أعلى" سميت لغة الأسمبلى .

الحقيقة أنها جعلت عملية البرمجة أكثر تعقيدا ، ولكن من ناحية أخرى توقف كابوس عملية كتابة البرنامج .

يتم تمثيل التعليمات في لغة الأسمبلى في شكل اختصارات ذات مغزى ، وتترك عملية ترجمة أو تفسير الكود القابل للتنفيذ لبرنامج خاص على الكمبيوتر يسمى المترجم أو الأسمبلر .

الميزة الرئيسية للغة البرمجة هذه هى بساطتها ، أي أن كل تعليمة برنامج تناظر موقع ذاكرة واحد في الميكروكونترولر . وهي تمكن من السيطرة الكاملة على ما يجري داخل الرقاقة، مما يجعل هذه اللغة مستخدمة حتى اليوم.

ومع ذلك فإن المبرمجين يحتاجون دائما للغة برمجة قريبة من اللغة المستخدمة في الحياة اليومية. نتيجة لذلك، تم إنشاء لغات البرمجة ذات المستوى المرتفع .وأحد هذه اللغات هى لغة السى .

الميزة الرئيسية لهذه اللغات هي بساطة كتابة البرنامج.

لم يعد من الممكن أن نعرف بالضبط كيف يتم تنفيذ كل أمر ، ولكنه لم يعد ذو فائدة على أي حال. في حال ما إذا كان ذو فائدة يمكن إدراج تتابع مكتوب بلغة الأسمبلى بالبرنامج .












كما فى لغة الأسمبلى يوجد برنامج متخصص في الكمبيوتر يسمى المترجم أو الكومبيلر هو المسؤول عن ترجمة البرنامج إلى لغة الآلة .

وخلافا لمترجم الأسمبلى فإن الكود القابل للتنفيذ فى هذه الحالة ليس دائما الأقصر إمكانية .
















الشكل العلوى يعطي مثال تقريبى لما يجري من خلال عملية ترجمة البرنامج من لغة برمجة أعلى إلى لغة أدنى.

فيما يلى مثال لبرنامج بسيط مكتوب بلغة السى :












مزايا لغات البرمجة العليا
إذا كان لديك أي وقت فيما مضى لكتابة برنامج لميكروكونترولر بلغة الأسمبلى فربما عرفت أن إسلوب البناء ذو التعليمات المخفضة RISC به نقص (فقر) فى التعليمات. فعلى سبيل المثال لا توجد تعليمات مناسبة لضرب رقمين ، ولكن لا داعى للقلق حول هذا الموضوع.

فكل مشكلة لها حل وهذه المشكلة غير مستثناة والفضل يرجع للرياضيات التى تمكننا من تنفيذ العمليات المعقدة عن طريق تقسيمها إلى عدد من العمليات البسيطة.

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

(a x b = a + a + a + ... + a) .

ونحن هنا ما رلنا في بداية قصة طويلة جدا... لا تقلق فلقد أهتمت بذلك لغات البرمجة العليا مثل لغة السى حيث يقوم بالفعل شخصا ما نيابة عنك (متمثلا فى المترجم) بحل هذه المشكلة بل والكثير من المشاكل المشابهة . فقط سوف تكتب a*b .





ما قبل معالج PREPROCESSOR
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 4:32

ما قبل معالج PREPROCESSOR

ما قبل المعالج preprocessor هو جزء لا يتجزأ من مترجم لغة السى ووظيفته هو التعرف على وتنفيذ تعليمات تسمى توجيهات أو أوامر ما قبل المعالج .

تعليمات ما قبل المعالج هي تعليمات خاصة لا تنتمي إلى لغة السى ، ولكنها جزء من حزمة البرمجيات software التى تأتى مع المترجم .

يبدأ كل أمر من أوامر ما قبل المعالج بالرمز "هاش" '#'.

قبل ترجمة البرنامج يقوم المترجم بتفعيل الجزء "ما قبل المعالج" والذي يمر خلال البرنامج في بحث عن هذه العلامات. فإذا وجد أى منها يقوم "ما قبل المعالج" ببساطة باستبدالها بنص آخر والذى يعتمد على نوع الأمر الموجود بعد الرمز # ، حيث يمكن أن يكون محتويات ملف أو مجرد سلسلة قصيرة من الأحرف.عندئذ يمكن أن تبدأ عملية الترجمة .

تعليمات ما قبل المعالج يمكن أن تكون في أي مكان في البرنامج المصدر، وتشير فقط إلى الجزء من البرنامج التالي لظهورها وحتى نهاية البرنامج.



توجيه ما قبل المعالج # include " ضم أو تضمين"
فى العديد من البرامج غالبا ما يتم تكرار نفس المجموعة من الأوامر لعدة مرات.

من أجل تسريع عملية كتابة البرنامج عادة ما يتم تجميع هذه الأوامر commands والإعلانات declarations في ملفات خاصة والتي يمكن ضمها أو دمجها بسهولة في البرنامج باستخدام هذا التوجيه.

لنكون أكثر دقة ، الأمر #include يستورد imports نص من وثيقة أخرى بغض النظر عن ما هو عليه (أوامر وتعليقات الخ) إلى البرنامج.















توجيه ما قبل المعالج # define " تعريف "

هذا الأمر يقوم باستبدال تعريفات identifiers فى البرنامج بقيمها values .


الصيغة :

#define symbol sequence_of_characters

شرح الصيغة :

التوجيه أو الأمر #define يليه الرمز المراد تعريفه , ثم يليه قيمة هذا الرمز والتى يتم استبدال الرمز أينما وجد بهذه القيمة .

مثال :

...

#define PI 3.14

...

أينما وجد الرمز PI يتم استبدالة بالقيمة 3.14 .


الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:14



2-2 قواعد (أسس) البرمجة بلغة السى

الفكرة الرئيسية لكتابة برنامج بلغة سي هو تجزىء المشكلة الكبيرة إلى عدة أجزاء صغيرة .

لنفترض أن المطلوب :

كتابة برنامج لميكروكونترولر والذى سوف يقوم بقياس درجة الحرارة وعرض (إظهار) النتائج على شاشة عرض الكريستال السائل LCD .












يتم إجراء عملية القياس بواسطة جهاز استشعار (حساس) لدرجة الحرارة والذى يقوم بتحويل درجة الحرارة إلى جهد.

يقوم الميكروكونترولر باستخدام محوله الداخلى من تناظرى إلى رقمى فى تحويل هذا الجهد (قيمة تناظرية) إلى عدد (قيمة رقمية) والتى عندئذ ترسل إلى وحدة العرض LCD من خلال عدة موصلات .



وبناء عليه يقسم البرنامج إلى أربعة أجزاء والتى يجب عليك الذهاب خلالها (تتبعها) وفق الترتيب التالي :



1- تفعيل وإعداد المحول A/D الداخلى .

2- قياس القيمة التناظرية .

3- حساب درجة الحرارة .

4- إرسال البيانات فى الشكل المناسب لوحدة العرض LCD .



كما ترى فإن لغات البرمجة العليا مثل لغة السى تمكنك من حل هذه المشكلة بسهولة عن طريق كتابة أربع دوال (وظائف) ليتم تنفيذها دوريا مرارا وتكرارا .



هيكل بناء برنامج لغة السى :
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:23

هيكل بناء برنامج لغة السى :



الشكل التالى يبين هيكل structure برنامج بسيط مبينا عليه الأجزاء التى يتكون منها .













التعليقات COMMENTS


التعليقات هي جزء من البرنامج تستخدم لتوضيح عمل البرنامج أو تقديم مزيد من المعلومات حوله .

يتم تجاهل التعليقات ولا يتم ترجمتها لكود قابل للتنفيذ من قبل المترجم .

ببساطة يمكن للمترجم التعرف على أحرف خاصة تستخدم فى تعيين مكان بداية ونهاية التعليقات ويتجاهل تماما النص الموجود بينها عند الترجمة .

يوجد نوعان من هذه الأحرف.

واحد لتعيين التعليقات الطويلة التى تمتد لعدة خطوط من البرنامج , والأخرى لتعيين التعليقات القصيرة والتى لا تتعدى سطر واحد من البرنامج .

على الرغم من أن التعليقات لا تؤثر على تنفيذ البرنامج إلا إنها لا تقل أهمية عن أي جزء آخر من البرنامج ، واليك السبب .

غالبا ودائما ما يحتاج البرنامج المكتوب للتحسين والتعديل والتحديث والتبسيط . بدون التعليقات تكون محاولة فهم حتى أبسط البرامج هو مضيعة للوقت.





أنواع البيانات في لغة السي
يوجد عدة أنواع من البيانات التي يمكن استخدامها في البرمجة بلغة السى .

الجدول التالى يبين مدى القيم التى يمكن أن تأخذها هذه البيانات عند استخدامها في شكلها الأساسي.














بإضافة بادئة إلى أي نوع من البيانات يتغير مدى قيمه الممكنة فضلا عن عدد بايتات الذاكرة التى يحتاجها .














المتغيرات VARIABLES
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:27

المتغيرات VARIABLES


أى عدد تتغير قيمته أثناء عمل البرنامج يسمى " متغير " variable .

ببساطة إذا كان البرنامج يقوم بعملية جمع عددين ( العدد number1 والعدد number2 ) فمن الضروري أن يكون هناك قيمة تمثل نتيجة عملية الجمع sum . فى هذه الحالة كل من العدد number1 والعدد number2 وحاصل الجمع sum تكون من المتغيرات .



إعلان (تعريف) المتغيرات Declaring Variables

اسم المتغير يمكن أن يشمل أي من الأحرف الأبجدية A-Z (a-z) و الأرقام 0-9 و رمز الشرطة التحتية '_' .
المترجم حساس لحالة الحرف ويفرق بين الحروف الكبيرة capital والصغيرة small.

أسماء الدوال والمتغيرات عادة ما تحتوي على أحرف صغيرة في حين أن أسماء الثابت تحتوي على أحرف كبيرة.

يجب أن لا تبدأ أسماء المتغيرات برقم.
بعض الاسماء لا يمكن استخدامها كأسماء لمتغيرات لأنها محجوزة بالفعل للاستخدام من قبل المترجم نفسه. المترجم mikroC يتعرف على ما مجموعه 33 كلمة محجوزة وهى ما يلى :









المؤشرات Pointers
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:35

المؤشرات Pointers

المؤشر هو متغير من نوع خاص يحفظ (يخزن) عنوان address لمتغيرات حروف .

بعبارة أخرى المؤشر 'يشير إلى' ‘points to’ متغير أخر . يتم إعلان المؤشر على النحو التالي :














من أجل تخصيص عنوان متغير لمؤشر من الضروري استخدام العلامة تساوى ' = ' وكتابة اسم المتغير يسبقه الحرف '&'.

في المثال التالي يتم إعلان المؤشر‘multiplex’ وتخصيص عنوان المخرج الأول لوحدات العرض ذات الثمانى ليدات :










لتغيير قيمة المتغير المشار إليه فإنه يكتفي بكتابة الحرف '*' أمام مؤشره وتخصيص القيمة الجديدة له كما يلى :








بالمثل من أجل قراءة قيمة المتغير المشار إاليه يكتفى بكتابة :








تغيير البتات بصورة منفردة

توجد عدة طرق لتغيير بت واحدة فقط من المتغير .

أسهل طريقة هى تحديد أسم السجل و موقع (مكان) البت أو اسمها والحالة المطلوبة كما يلى :












الإعلانات Declarations
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:41

الإعلانات Declarations

يجب إعلان (تعريف) كل متغير قبل أن يتم استخدامه لأول مرة في البرنامج.

حيث أنه يتم تخزين المتغيرات في ذاكرة RAM فمن الضروري حجز حيز لها (حسب النوع , بايت أو اثنين أو أكثر ).

أنت تعلم ما هو نوع البيانات التي تكتب أو تتوقع كنتيجة لعملية ، في حين أن المترجم لا يعرف ذلك.

لا تنسى أن البرنامج يتعامل مع المتغيرات التي قمت أنت بتخصيص أسماء لها مثل gate, sum, minimum .

يتعرف المترجم عليها كسجلات فى ذاكرة RAM .

عادة يتم تخصيص تعيين) أنواع المتغيرات في بداية البرنامج.












وبصرف النظر عن الاسم والنوع فإن المتغيرات عادة ما يخصص لها قيم أبتدائية (أولية) في بداية البرنامج كذلك.

هذه الخطوة لا تدخل ضمن "ما يجب فعله" ولكنها تعتبر عادة جيدة.

الآن يبدو الشكل على النحو التالي :













يمكن تنفيذ عملية تخصيص (تعيين) القيمة الأولية وإعلان النوع فى خطوة واحدة :












إذا كان هناك العديد من المتغيرات المراد تخصيص نفس القيمة الأولية لها يمكن تبسيط العملية كما يلى :










نوع المتغير لا يصاحبه علامة '+' أو علامة '-' فى الوضع الافتراضى . على سبيل المثال يمكن كتابة char بدلا signed char . في هذه الحالة يعتبر (ينظر) المترجم القيم الموجبة للمتغير.
إذا نسيت لأى سبب إعلان نوع المتغير فإن المترجم سينظر اليه تلقائيا كعدد صحيح. وهو ما يعني أن هذا المتغير سوف يشغل اثنين بايت منالذاكرة وله القيم في المدى -32768 to +32767 .


الثوابت CONSTANTS
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الأربعاء 2 مارس 2011 - 16:50

الثوابت CONSTANTS

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

وعلى عكس المتغيرات يتم تخزين الثوابت في ذاكرة البرنامج الفلاش للميكروكونترولر بغرض توفير مساحة قيمة من ذاكرة RAM .

يتعرف المترجم على الثابت باسمه مسبوقا بكلمة const .





ثوابت العدد صحيح INTEGER CONSTANTS

ثوابت العدد الصحيح يمكن أن تكون عشرية أو سداسى عشرية أو ثمانية أو ثنائية .

يتعرف المترجم على شكلها بناء على البادئة المضافة. وإذا كان العدد لا يوجد به بادئة يعتبرعدد عشرة كحالة افتراضية .

نوع الثابت يتم التعرف عليه تلقائيا من حجمه . في المثال التالي سوف يتم يعتبر تلقائيا الثابت MINIMUM كعدد صحيح نوع signed integer ويخزن فى عدد 2 بايت (16 بت) من ذاكرة البرنامج الفلاش :



















ثوابت الأعداد الحقيقية FLOATING POINT CONSTANTS

ثوابت الأعداد الحقيقية تتألف من جزء صحيح ونقطة (علامة عشرية) الجزء الكسري والحرف e أو E متبوع بعدد صحيح يمثل "الأس" exponent .












في كلا المثلين : الثابت المسمى T_MAX تم إعلانه بالقيمة 32.60 . وهو ما يمكن البرنامج من مقارن درجة الحرارة المقاسة بثابت ذو معنى (أقصى درجة حرارة ) بدلا من الأعداد التى تمثله ( 32.60 ).



الثوابت الحرفية (حروف أسكى) CHARACTER CONSTANTS (ASCII CHARACTERS)

الثابت الحرفى هو حرف يوضع بين علامتي اقتباس مفردة ' … ' .

في المثال التالي يتم الإعلان عن ثابت اسمه I_CLASS كحرف A كما يتم الإعلان عن ثابت اسمه II_CLASS كحرف B .








عند التعريف بهذه الطريقة فأن تنفيذ الأوامر بإرسال الثوابت I_CLASS و II_CLASS لوحدة العرض LCD سوف تتسبب فى عرض الحروف A و B على الترتيب .

ثوابت السلسلة النصية STRING CONSTANTS

الثابت الذى يتكون من سلسله من الحروف يسمى ثابت "السلسلة النصية" string .

يتم وضع ثابت السلسلة النصية بين علامات اقتباس مزدوجة " .... " .










فى هذا المثال : أرسال الثابت Message_1 لوحدة العرض LCD سوف يتسبب فى عرض الرسال

'press the START button' .





ثوابت التعداد أو السرد ENUMERATED CONSTANTS



ثوابت التعداد هي نوع خاص من ثوابت الأعداد الصحيحة والتي تجعل البرنامج أكثر شمولا وأسهل للمتابعة عن طريق تخصيص (تعيين) عناصر لأعداد مرتبة .

في المثال التالي العنصر الأول UP في الأقواس المتعرجة { } يخصص له تلقائيا القيمة 0 والعنصر الثانى DOWN يخصص له القيمة 1 والعنصر الثالث LEFT يخصص له القيمة 2 الخ.










عند كل ظهور للكلمات 'LEFT', 'RIGHT', 'UP' and 'DOWN' فى البرنامج فإن المترجم يستعيض عنها بالأعداد المناسبة (0-3) .

وبشكل ملموس : إذا كانت أطراف المنفذ port B أرقام 0 و 1 و 2 و 3 متصلة بالمحركات التى تقوم بجعل شىء ما يتحرك لأعلى up أو للأسفل down أو لليسار left أو لليمين right فأن أمر تشغيل محرك الحركة لليمين ‘RIGHT’ يكون كما يلي :










الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
metwally.mustafa
فريق أول
فريق أول


عدد الرسائل : 4211
العمر : 30
الموقع : Egypt
العمل/الترفيه : automation engineer
تاريخ التسجيل : 12/01/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 4:58

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

_________________
I am so far behind, I think i am first
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:04

المؤثرات (العوامل) OPERATORS والعمليات OPERATIONS والتعبيرات EXPRESSIONS



المؤثر(العامل) operator هو رمز يدل على عملية operation معينة حسابية أو منطقية أو بعض العمليات الأخرى .

يوجد أكثر من 40 عملية متوفرة في لغة السى ولكن فى الغالب يستخدم من 10 ألى 15 عملية عند الممارسة العملية .

يتم تنفيذ (إجراء) كل عملية على معامل operand أو أكثر والذى يمكن أن يكون متغيرأو ثابت .

الى جانب ذلك كل عملية لها خاصية أولوية تنفيذ محددة .



المؤثرات(العوامل) الحسابية ARITHMETIC OPERATORS

تستخدم المؤثرات الحسابية في العمليات الحسابية ودائما ما تعطى عائد (نتيجة) موجب .

يتم تنفيذ العمليات الأحادية على معامل operand واحد، ويتم تنفيذ العمليات الثنائية على معاملين .

وبعبارة أخرى : لتنفيذ عملية ثنائية يتطلب الأمر وجود عددين . على سبيل المثال : a+b أو a/b .

فى هذا المثال الحرف + هو المؤثر operator والعملية التى يستخدم فيها هى عملية operation جمع وتتم على معاملين operand هم a و b والصيغة a+b تسمى تعبير expression








مؤثرات التخصيص ASSIGNMENT OPERATORS
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:07

مؤثرات التخصيص ASSIGNMENT OPERATORS

يوجد نوعان من التخصيص فى لغة السى :

التخصيص العدى البسيط : بمعنى "تخصيص فقط" وفيه تخصص قيم للمتغيرات باستخدام علامة تساوى '=' الشائعة الاستخدم.
على سبيل المثال : a = 8 .

التخصيص المركب : بمعنى " تأتير وتخصيص " وهو خاص بلغة السى ويتكون من حرفين هما المؤثر وعلامة = كما هو موضح بالجدول التالى :









مثال : a + = 8

المعامل a يتم أولا التأثير عليه بالمؤثر + أى إجراء عملية جمع العدد 8 عليه (فيصبح a+Cool ويخصص الناتج له مرة أخرى برمز التخصيص = .





مؤثرات (عوامل) التزايد INCREMENT والتناقص DECREMENT
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:10

مؤثرات (عوامل) التزايد INCREMENT والتناقص DECREMENT

يرمز لمؤثر التزايد بواحد بالرمز '++' ولمؤثر التناقص بواحد بالرمز '--' .

يمكن لهذه الرموز أن تسبق أو تتبع المتغير.

في الحالة الأولى (++x) سوف يتم تزايد المتغير x بواحد أولا ثم بعد ذلك يستخدم فى التعبير .

فى الحالة الثانية (x++) يستخدم المتغير فى التعبير أولا ثم بعد ذلك يتم تزايده بواحد .

الأمر نفسه ينطبق على عملية التناقص .










مؤثرات العلاقات النسبية (المقارنات) RELATIONAL OPERATORS
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:13

مؤثرات العلاقات النسبية (المقارنات) RELATIONAL OPERATORS



تستخدم مؤثرات العلاقات النسبية فى المقارنات بغرض المقارنة بين متغيرين والتي يمكن أن تكون أعداد صحيحة (int) أو أعداد حقيقية (float) .

إذا كانت نتيجة تعبير المقارنة صحيحة أو صواب (متحقق) true فإن عائد التعبير يكون 1 وإن كان غير ذلك أى غير صواب (غير متحقق) false فإن عائد التعبير يكون 0 .

تستخدم هذة المؤثرات فى التعبيرات الشرطية مثل "إذا كان التعبير صحيح عندئذ....."

‘if the expression is true then...’








المؤثرات المنطقية LOGIC OPERATORS
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:16

المؤثرات المنطقية LOGIC OPERATORS

يوجد ثلاثة أنواع من العمليات المنطقية في لغة السى : المنطق "و" AND و المنطق "أو" OR والمنطق "نفى" NOT .

وللتوضيح : الحالات المنطقية المبينة بالجدول التالى تمثل بالمنطق صفر (0=false) وبالمنطق واحد (1=true) .

عائد المؤثرات المنطقية يكون true (logic 1) إذا كانت نتيجة (تقييم) التعبير غير الصفر ويكون العائد

false (logic 0) إذا كانت نتيجة (تقييم) التعبير بالصفر .

العمليات المنطقية تستخدم فى البرنامج مع تعبيرات expressions وليس مع متغيرات فردية (أعداد) .

لذلك فإن العمليات المنطقية تشير إلى نتيجة تعبير .

على سبيل المثال : التعبير 1 && 0 يشبه العبارة (true expression) && (false expression)
وتكون النتيجة 0 أى false فى الحالتين .












المؤثرات التى تؤثر على خانة مفردة (واحدة) BITWISE OPERATORS
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:19

المؤثرات التى تؤثر على خانة مفردة (واحدة) BITWISE OPERATORS

على خلاف المؤثرات المنطقية التى تجرى على المتغيرات فإن مؤثرات الخانة المفردة bitwise تجرى على بتات مفردة داخل المعاملات operands .

تستخدم مؤثرات الخانة المفردة فى تعديل بتات لمتغير كما فى الجدول التالى :








التوضيح :

التعبير : a = ~ b " المعامل a يساوى معكوس أو مكمل المعامل b" فإن كان b = 5 فإن a = - 5



كيف تستخدم المؤثرات ؟
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:22

كيف تستخدم المؤثرات ؟

فيما عدا مؤثرات التخصيص , لا يجب كتابة مؤثرين واحد تلو الآخر .
التعبير التالى يولد خطأ :














· يتم تجميع المؤثرات معا باستخدام الأقواس مثل التعبيرات الحسابية. وتحسب التعبيرات داخل الأقواس المغلقة . وإذا لزم الأمر، يمكن استخدام أقواس متعددة (متداخلة) .

· كل مؤثر له أولويته Priority وارتباطاته فى مجموعات Associativity كما هو مبين بالجدول التالى :











الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:50

عبارات الشرط CONDITIONAL OPERATORS

عبارة الشرط عنصر شائع الاستخدام فى البرنامج . وعندما نلتقى به فمن الضرورى إتخاذ (تنفيذ) إجراء من بين عدة عمليات . وبعبارة أخرى : " إذا تحقق الشرط (...)، إفعل (...). وإلا ، إذا لم يتحقق الشرط ، إفعل (...)". تستخدم عبارات الشرط if-else و switch فى العمليات الشرطية.



عبارة الشرط if-else

يمكن أن تظهر تلك العبارة فى شكلين : if و if-else .

مثال لعبارة if :












إذا كانت نتيجة "التعبير" expression الموجود داخل القوسين غير صفرية 0 أى تحقق true شرط العبارة يتم تنفيذ العملية operation ثم يتقدم البرنامج فى التنفيذ . وإذا كانت نتيجة "التعبير" expression بالقيمة 0 أى أن شرط العبارة غير متحقق false , لا يتم تنفيذ العملية operation ويتقدم البرنامج فورا فى التنفيذ .



مثال لعبارة if-else :














إذا كانت نتيجة "التعبير" expression الموجود داخل القوسين غير صفرية 0 أى تحقق true شرط العبارة يتم تنفيذ العملية operation1 , وإذا كانت نتيجة "التعبير" expression بالقيمة 0 أى أن شرط العبارة غير متحقق false , يتم تنفيذ العملية operation2 . بعد تنفيذ أى من العمليتين يتقدم البرنامج فى التنفيذ .



صيغىة بناء عبارة if-else :










إذا كان أى من operation1 أو operation2 عملية مركبة فأنه يجب وضع مجموعة العمليات المكونة لها داخل قوسين { } :

مثال :










يمكن كتابة عبارة if-else باستخدام معامل الشرط '?:' فى المثال السابق كما يلى :














إذا كانت نتيجة التعبير الأول expression1 غير صفرية 0 أى أن شرطها تحقق true , فإن نتيجة التعبير بالكامل سوف تساوى النتيجة التى نحصل عليها من التعبير الثانى expression2 وإلا , إذا كانت نتيجة التعبير الأول expression1 بالقيمة الصفرية 0 أى أن شرطها عير متحقق false , فإن نتيجة التعبير بالكامل سوف تساوى النتيجة التى نحصل عليها من التعبير الثالث expression3 .

مثال :










عبارة Switch
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
F.Abdelaziz
عقيد
عقيد


عدد الرسائل : 639
تاريخ التسجيل : 20/05/2009

مُساهمةموضوع: رد: ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO   الخميس 3 مارس 2011 - 11:54

عبارة Switch

خلافا لعبارة if-else والتى تصنع خيارا بين خيارين فى البرنامج فإن عبارة switch تمكنك من الاختيار بين عمليات متعددة .



صيغة بناء عبارة switch :










يتم تنفيذ عملية switch بالطريقة التالية :

يتم أولا تنفيذ "المنتخب – الاختيار " selector ويتم مقارنته بالثابت الأول constant1 . إذا تواجد تطابق ، يتم تنفيذ مجموعة عبارات هذه الحالة case block وحتى العثور على كلمة break أو نهاية عبارة switch .

إذا لم يتم العثور على تطابق، يقوم المنتخب selector بالمقارنة التالية وهى مع الثابت constant2فإذا تم العثور على تطابق يتم تنفيذ مجموعة عبارات هذه الحالة case block وحتى العثور على كلمة break أو نهاية عبارة switch , وهلم جرا .

إذا لم يعثر المنتخب على أى حالة تطابق مع أى ثابت يتم تنفيذ العملية الافتراضية التى تلى ذلك .



يمكن أيضا مقارتة تعبير expression مع مجموعة من الثوابت . إذا تواجد تطابق مع أى منهم يتم تنفيذ العمليات المقابلة كما يلى :











الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
ترجمة وإعداد كتاب الميكروكونترولر PIC والبرمجة بلغة السى والمترجم mikroC PRO
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 2 من اصل 3انتقل الى الصفحة : الصفحة السابقة  1, 2, 3  الصفحة التالية

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى التحكم الآلي والإلكترونيات :: منتديات التحكم الآلي والإلكترونيات :: منتدى الميكروكنترولر Micro Controller-
انتقل الى: