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

   

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



الفصل الثانى
برمجة الميكروكونترولر
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 .



ما قبل معالج</SPAN> PREPROCESSOR

اعلانات

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


ما قبل المعالج</SPAN>PREPROCESSOR
ما قبل المعالج preprocessorهو جزءلا يتجزأمن مترجم لغة السى ووظيفته هو التعرف على وتنفيذتعليمات تسمى توجيهات أو أوامر ما قبل المعالج.
تعليمات ما قبل المعالج هي</SPAN>تعليمات خاصةلا تنتمي إلىلغة السى ،</SPAN>ولكنها جزء</SPAN>منحزمةالبرمجيات software التى تأتى مع المترجم .
يبدأ كل أمر من أوامر ما قبل المعالج بالرمز "هاش" '#'.</SPAN>
قبل</SPAN> ترجمة البرنامج يقوم المترجم بتفعيل الجزء "ما قبل المعالج" والذييمر خلال البرنامج في</SPAN>بحثعنهذه العلامات.فإذا وجد أى منها يقوم "ما قبل المعالج" ببساطة باستبدالها بنص آخر والذى يعتمد على نوعالأمر الموجود بعد الرمز # ، حيث يمكن</SPAN>أن يكونمحتوياتملفأومجردسلسلة قصيرةمن الأحرف.عندئذ يمكن أن تبدأ</SPAN>عملية الترجمة .
تعليمات ما قبل المعالج</SPAN> يمكن أن تكون في أي مكانفي البرنامج المصدر،وتشير فقطإلىالجزءمنالبرنامج التاليلظهورها وحتىنهاية البرنامج</SPAN>.

توجيه ما قبل المعالج</SPAN># include " ضم أو تضمين"
فى العديد من البرامج غالبا ما يتم تكرارنفس المجموعةمنالأوامرلعدة مرات.
من أجلتسريععملية كتابةالبرنامج عادة مايتم تجميعهذهالأوامرcommandsوالإعلاناتdeclarations فيملفاتخاصة والتييمكن ضمها أو دمجها بسهولةفيالبرنامج باستخدامهذاالتوجيه.
لنكون أكثر دقة ،الأمر</SPAN>#include يستورد imports نصمن وثيقة أخرى بغض النظر عنما هو عليه(أوامر وتعليقات الخ) إلى البرنامج</SPAN>.




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

الصيغة :
#define symbol sequence_of_characters

شرح الصيغة :
التوجيه أو الأمر #define يليه الرمز المراد تعريفه , ثم يليه قيمة هذا الرمز والتى يتم استبدال الرمز أينما وجد بهذه القيمة .
مثال :
...
#define PI 3.14

...

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

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

allam_1988
:: موقوف ::
تاريخ التسجيل: Jul 2010
المشاركات: 1
نشاط [ allam_1988 ]
قوة السمعة:
قديم 02-03-2011, 08:17 PM المشاركة 59   
x1


مشكور على هاذا المجهود
عفوا اخي
كيف يمكن تحميل الكتاب لانه في الموقع غير كامل وتقبل فائق الاحترم


microfast
:: مهندس ::
تاريخ التسجيل: Aug 2005
المشاركات: 46
نشاط [ microfast ]
قوة السمعة:
قديم 02-03-2011, 08:56 PM المشاركة 60   
افتراضي


السلام عليكم

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


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


السلام عليكم

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

اخى الكريم

شكرا جزيلا لك

بارك الله فيك

تقدير اعتز به

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

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

ان شاء الله سوف احاول ان اراسله .

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


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 02-03-2011, 11:41 PM المشاركة 62   
افتراضي


بارك الله فيك استاذى العزيز موضوع فوق الممتاز و ارجو ان تقوم بتثبيت الموضوع حتى اكتمال الموضوع نضرا لاْهميته وجزاك الله كل الخير


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


بارك الله فيك استاذى العزيز موضوع فوق الممتاز و ارجو ان تقوم بتثبيت الموضوع حتى اكتمال الموضوع نضرا لاْهميته وجزاك الله كل الخير
اخى الكريم

شكرا جزيلا لك

تقدير اعتز به

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


اختصاصي تكييف
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2008
المشاركات: 182
نشاط [ اختصاصي تكييف ]
قوة السمعة:
قديم 03-03-2011, 01:35 AM المشاركة 64   
Smile


السلام عليكم
اخي العزيز عبد العزيز لدي بعض الاسئلة لك
لقد كنت من المتتبعين لدورة المهندس الرائع احمد سمير فايد للبرمجة بلغة الميكرو سي والان انا اتعلم ةاقرأ من حضرتك البرمجة بلغة السي سؤالي كالاتي:
1
-هل يستطيع البيك مثل pic16f84a ان يفهم كلتا اللغتين يعني ادا اردت برمجته بالسي او الميكروسيوالفرق فقط الكومبيلر واللغة البرمجه ؟
2
-ماهو في رأيك اللغة الاكثر انتشارا ؟اعني ممكن السي لها جانب معين والميكرو لها جانب اخر؟
انا كنت متتبع شغوف والله للمهندس احمد بس الراجل كانت عندو ضروف قاهرة واعتدر عن المواصلة وربنا ييسر لو امرو ودعوة الخير معاه...

اما حضرتك جئت لتنقدنا ...والله خلص الكلام فيك.....اتمني من كل قلبي ان تواصل للنهاية,منتضر ردك ان شاء الله بارك الله فيك......مشكور



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