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

اذهب الى الأسفل

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

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:01 pm

اهلا وسهلا بكم في منتدى  مصر  التقني المتوسط الاول
------------------------------------------------
هذه اول تجربة لبرمجة المايكروكنترولر ونستخدم النوع PIC16F84A  
الهدف من التجربة هو تشغيل LED سنوصله على الرجل B0
القارئ العزيز يجب عليك ان تعلم ان التجارب الاولى لها اهمية كبيرة جدا لانك اذا نجحت في تنفيذها سيصبح الامر لديك اسهل واكثر متعة وستخترق هذا العالم وتفتح لك ابوابه --- اتمنى لك التوفيق 
اول تجربة في برمجة الماكروكنترولر Egy-tech13917785061
ملاحظات مهمة :   
1- البك يحتاج الى خمسة فولت لكي يعمل واذا وصلنا به 9 فولت سوف يتلف لذلك نتبع البطارية بمنظم جهد 7805 والذي يخرج خمسة قولت
2- يمكن استبدال البطارية واستخدام محول كهربائي يخرج تيار مستمر 9 فولت او 6 فولت بحيث تكون قيمة الخرج الخاص بالمحول اكبر من خمسة فولت
3- بدون التوصيلة التي  على الرجل رقم 16   لن يعمل البك    هذه التوصيله تعتبر نوع من انواع المؤقتات وسنشرح ذلك لاحقا
4- من المفترض ان البك سوف يخرج على الرجل رقم 6 جهد مقداره 5 فولت وهذا الجهد هو الذي يستطيع اخراجه البك من اطرافه -- ولكن اذا تم توصيل الرجل رقم 6 مباشرة ب ليد   سوف يتلف اليد لذلك نضع مقاومة ولتكن قيمتها 420 اوم او مقاومة قريبة من هذه القيمة ويمكن حساب المقاومة المطلوبة باستخدام قانون اوم
5- الدارة السابقة يمكن تبسيطها حيث ترسم بالطريقة التالية
اول تجربة في برمجة الماكروكنترولر Egy-tech13917790011
التتمة في المساهمة التالية
-------------------------------

_________________
بتوفيق لجميع
العلم نور
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

اول تجربة في برمجة الماكروكنترولر Empty رد: اول تجربة في برمجة الماكروكنترولر

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:03 pm

اهلا وسهلا بكم مجددا في المنتدى مصر التقني المتوسط الاول
--------------------------------------------------
الان ننتقل الى كتابة البرنامج المطلوب
-----
الخطوة الثانية هي كتابة البرنامج المطلوب الذي يؤدي الوظيفة التي نريدها --- في هذه التجربة نريد ان نجعل البك يخرج جهد على الرجل B0 ليشتغل الليد الموصل بها ---    لنأمر البك بذلك نحتاج ان نخاطبه باللغة التي يفهمها ---  
اذا سنستخدم لغة  برمجة ولتكن لغة MIKROC   بعد تحميل اللغة اي بعد عمل SETUP   اتبع الخطوات التالية
1- نقوم بفتح البرنامج ثم انشاء مشروع جديد بالضغط بالماوس على NEW PROJECT كما في الشكل

2- نقوم بكتابة اسم المشروع ونحدد المكان الذي سيحفظ فيه ونحدد نوع البك المستخدم وكذلك المؤقت --   سنشرح المؤقت فيما بعد ان شاء الله

الان ستظهر لنا شاشة سنكتب فيها البرنامج كما في الشكل


تلاحظ في المكان المخصص لكتابة البرنامج ذو اللون الاسود   كتبنا فيه اوامر او كود الذي سيقوم بتشغيل الليد الموصل ع B0
اذا لم تكن واضحة الاكواد   هذه اي الاكواد

الرمز:
   
الكود:
void main()


   {


   TRISB=0B00000000;


   PORTB=0B00000001;


   }





سنشرح الكود بعد تنفيذ بقية خطوات التجربة
ملحوظه هامة : الحروف الكبيرة الكابتال  اكتبها كبيرة والاحرف الصغيرة اكتبها صغيرة كما في الشكل السابق بالضبط وبكل دقة ولا تنسى الاقواس وعلامة ; وانتبه كذلك للمسافات
---------------------------------------------------------
التتمة في المساهمة التاليه

_________________
بتوفيق لجميع
العلم نور
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

اول تجربة في برمجة الماكروكنترولر Empty رد: اول تجربة في برمجة الماكروكنترولر

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:05 pm

اهلا وسهلا بكم مجدددا في منتدى مصر التقني المتوسط
-----------------------------
الان ننتقل الى ترجمة البرنامج ومراجعته من الاخطاء
-----
الخطوة التالية هي ترجمة البرنامج حيث ان الاوامر التي كتبناها لا تستطيع ان يفهمها البك مباشرة ولكن يجب ان نترجمها للغة التي يفهمها وتسمى هذع العملية ببناء المشروع  build project  وذلك بالضغط من لوحة المفاتيح على ctrl+f9 او كما في الشكل
اول تجربة في برمجة الماكروكنترولر Egy-tech13917806611
الان اذا كنت قد كتبت الكود بشكل صحيح ولم تنسى شيئا فسيتم اظهار هذه الرسالة بالاسفل
اول تجربة في برمجة الماكروكنترولر Egy-tech13917807851
اما اذا كتبت الكود بشكل خاطئ لن تظهر لك الرسالة السابقة   وعندها راجع ما كتبته بدقة واضغط على زر ترجمة مرة اخرى build project  وسنشرح الاخطاء في كتابة الكود بشكل مفصل فيما بعد بعد عمليةالترجمة السابقة ستكون لغة البرمجة mikroc  قد وضعت الترجمة هذه في ملف امتداده hex اي اننا سنجد في نفس المكان الذي سيحفظ فيه المشروع الذي حددناه مسبقا     سنجد ملف له نفس الاسم المشروع بامتداد hex    اي سنجد ملف اسمه first_experiment.hex
-------------------------------------------------------
التتمة في مساهمة التالية قريبا ان شاء الله

_________________
بتوفيق لجميع
العلم نور
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

اول تجربة في برمجة الماكروكنترولر Empty رد: اول تجربة في برمجة الماكروكنترولر

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:09 pm

اهلا وسهلا بكم في منتدى مصر التقني المتوسط
-------------------------------------
كتابة ( حرق ) البرنامج على البك
البك لن يعمل في الدارة التي كونها لانه ليس عليه برنامج يحدد وظيفته لذلك سنكتب عليه البرنامج
الذي كتبناه الذي تحول الى ملف hex وسنتبع الخطوات التالية
سنضع البك في جهاز البرمجة كما بالشكل 
اول تجربة في برمجة الماكروكنترولر Egy-tech13918099321
واذا كنت تستخدم جهاز برمجة اخر   اتبع تعليماته وضع البك بالطريقة الصحيحة
في النوع الذي نستخدمه من اجهزة البرمجة 
في هذا الدورة يجب وضع البك بهذا الشكل بالاعلى
ويجب الانتباه الى النصف دارة التي ترشدنا للطريقة الصحيحة للتركيب
وطبعا توصيل جهاز البرنامجة بالكمبيوتر عن طريق الكابل خطوه يجب لا تنسى
الخطوة التالية هي تشغيل برنامج picpgm programmer 
هذا البرنامج هو الذي سيكتب على البك   هذا البرنامج سيقوم باخد ملف ال hex  وسيقوم بكتابته على  البك ولكن يجب  ضبط اعدادات  البرنامج اولا --  في حالتنا هذه جهاز البرمجة نوعه JDM  لذلك سنضبط الاعدادات باتباع الخطوات التالية
اول تجربة في برمجة الماكروكنترولر Egy-tech13918118991
نختار نوع جهاز البرمجة   كما في الشكل التالي
اول تجربة في برمجة الماكروكنترولر Egy-tech13918121081
بعد ذلك نضغط اوكي
ثم اضغط على زر BROWSE  وحدد المكان الذي يوجد فيه المشروع ومن ثم حدد ملف الهيكس حيث سيكون في تجربتنا هذه اسمه first_experiment.hex
ثم نختار الملف ثم نضغط على زر open
ونختار نوع البك المستخدم وهو في هذه التجربة من النوع PIC16F84A
اول تجربة في برمجة الماكروكنترولر Egy-tech13918124871
ثم نضغط على الزر سيبدأ بعملية الكتابة كما هو واضح بالشكل
اول تجربة في برمجة الماكروكنترولر Egy-tech13918127151
وانتظر الى ان تنتهي عملية الكتابة
بهذا تكون انتهت عملية الكتابة على البك يمكنك الان ان تقوم بفك البك من جهاز البرمجة بحذر وتركيبه يف الدارةومن الافضل ان تفصل التيار الكهربي في الدارة عند التركيب البك وبعد تركيب البك يمكنك توصيل التيار الكهربائي
------------------------
امل ان تكون قد نجحت في تنفيذ التجربة   واذا واجهتك اي مشاكل يمكنك الاستعانة باهل الخبرة في المجال
---

_________________
بتوفيق لجميع


أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

اول تجربة في برمجة الماكروكنترولر Empty رد: اول تجربة في برمجة الماكروكنترولر

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:14 pm

اهلا وسهلا بكم في منتدى مصرالتقني المتوسط الاول
-----------------------------------------
الان سأقوم بشرح الكود الذي جعل البك يشغل الليد  وسنقوم بطرح تجارب اخرى مع تغيرات بسيطه في الاوامر
------
في اي برنامج ال MIKROC سنضع الكود بالشكل التالي

الرمز:
الكود:
void main()
{
………………..
………………..
}

انتبه الى نقاط الفراغ في الكود بالاعلى  هنا يتم كتابة الكود المراد تنفيذه
ولكن ماذا تعني  void main()  انها تعني ان هذه هي الدالة الرئيسية للبرنامج 
دالة ؟ نعم ان البرنامج او الكود يمكن تقسيمه الى دوال حيث ان كل دالة تحتوي على مجموع من الاوامر وكلمة void  هي نوع الدالة وتعني انها لا ترجع قيمة وسنشرح الدوال بالتفصيل فيما بعد   اذا لم تفهم الشرح السابق جيدا لا تقلق كل ما عليك ان تعرفه انه في اي برنامج سنقوم بكتابته سنكتب في بدايته هذا السطر  void main()    ولا ننسى الاقواس اعلم هذه المعلومة البسيطة   مؤقتا
اعلم عزيزي القارئ ان البك لا يستطيع ان يخرج جهد على احد اطرافه   الا في حالة ان اخبره ان هذا الطرف سيكون خرج    كيف سأخبره    عن ريق الامر او المسجل trisb واذا اردت ان اجعل رجل من PORTAتخرج جهد كهربي لا بد من استخدام TRISA وهكذا
احفظ معي هذه العلاقة التي تخص TRIS والتي ستساعدنا على فهم الكود الذي كتبناه
0 ------- تعني خرج OUTPUT
1-------- تعني دخل INPUT
في مشروعنا كنا نريد تشغيل الليد الموجود في PORTB  حيث سيكون الليد موصل ب B0  لذلك سنستخدم المسجل او الامر TRISB حيث سنجعل الرجل رقم B0  خرج ليتسنى لنا بعد ذلك اخراج جهد كهربي منها -- اذا سنجعل الرجل رقم B0 بصفر لتصبح خرج  -- تذكر العلاقة السابقة  
ولكن كيف سأجعل BO بصفر ؟؟؟؟ الامر بسيط الان المسجل TRISB يتكون من 8 اجزاء او يمكن ان تقول عنهم 8 بت   كل بت خاص برجل معينة اذا كان هذا البت يساوي واحد ستكون الرجل الخاصة به دخل واذا كان البت يساوي صفر ستكون الرجل الخاصة به خرج
في الرسم التالي نرى مكونات المسجل TRISB يتكون من ثمان اجزاء كل جزء او كل بت مرتبط برجل معينة يستطيع جعلها دخل او خرج
اول تجربة في برمجة الماكروكنترولر Egy-tech13918546801
في مشروعنا جهلناهم جميعا باصفار اي ان الرجول من b0 الى B7  وظفناهم كخرج للمايكروكنترولر
كيف وظفناهم كخرج ؟؟ انظر للشكل التالي ليتضح الامر اكثر
اول تجربة في برمجة الماكروكنترولر Egy-tech13918549101
لعلك لاحظت 0B بعد العلامة = وهي تعني ان الرقم الذي سيكتب بعدها سيكون بالبايناري
بعد ان وظفنا الرجل رقم B0  كخرج سوف نجعل البك يخرج جهد كهربائي عليها من خلال استخدامنا لامر اخر مسجل اخر  اسمه PORT - ولكي يفهمه جيدا احفظ معي العلاقة الخاصة ب PORT
1- تعني جهد موجب خمسة فولت
0- LOW تعني جهد صفر فولت  سالب البطارية
لكي يعمل الليد سنخرج على الطرف B0  جهد موجب  وذلك باستخدام الامر PORTB حيث سنجعل B0 بواحد   واحد تجعله يخرج جهد موجب خمسة فولت    تذكر العلاقة السابقة
PORTB مثل TRISB  ينقسم الى ثماني اجزاء  8 بت   كل بت خاص برجل معينة نستطيع من خلال اي بت ان نخرج جهد موجب او صفر على اي رجل من ارجل البك من B0 الى B7 بأن تجعل قيمة البت = 1
لكي يخرج جهد موجب خمسة او نجعل قيمة البت = 0  لكي يخرج صفر فولت
اول تجربة في برمجة الماكروكنترولر Egy-tech13918555801
في تجربتنا جعلنا اول بت في PORTB بواحد لكي يخرج جهد كهربائي على هذه الرجل ليضيء الليد اما باقي الرجول فلم نستخدمها
( لم نوصل بها ليدات او عناصر اخرى )  لذلك جعلناها باصفار حيث كتبنا الامر التالي  
PORTB=0B00000001
اول تجربة في برمجة الماكروكنترولر Egy-tech13918558271
ملحوظة في غاية الاهمية  لا يكفي ان اكتب PORTB=0B0000001 بل يجب ان اضع في نهاية السطر علامة ;  وكذلك الحال بالنسبة لكود TRIS فنكتب 
الرمز:
الكود:
TRISB=0B00000000;
هذه العلامة وغيرها من العلامات وغيرها من العلامات مثل اقواس وطريقة الكتابة مثل كتابة TRIS و PORT بحروف كبيرة تسمى هذه الاشياء ب SYNTAX اللغة اي الطريقة التي يجب ان يكتب بها الكود واذا اخطأنا في الكتابة لن تتم عملية الترجمة ولن نحصل على ملف HEX 
----------------------------------------------------------------------------------

_________________
بتوفيق لجميع
العلم نور



أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

اول تجربة في برمجة الماكروكنترولر Empty رد: اول تجربة في برمجة الماكروكنترولر

مُساهمة من طرف أيمن الإبراهيم في الأحد فبراير 09, 2014 6:15 pm

الان انتقل الى شرح الكود المستخدم في التجربة
void main()

الرمز:
الكود:
{
TRISB=0B00000000;
PORTB=0B00000001;
}

السطر الاول void main()   نكتبه في بداية اي برنامج قم نفتح قوس ونبدأ بكتابة الكود
السطر الثالث سيوظف جميع الرجول من B0 الى B7  على انها خرج من خلال TRISB حيث صفر تعني خرج وواحد تعني دخل
السطر الرابع سيجعل الرجل رقم B0 تخرج او توصل جهد موجب خمسة فولت  وذلك من خلال الامر او المسجل PORT حيث صفر تعني وصل بسالب البطارية وواحد تعني وصل بموجب خمسة فولت
السطر الخامس هو ان تغلق القوس ولا ننسى علامة ; وكذلك لا ننسى ان نكتب  PORTS و TRISB بحروف كبيرة  فلا نكتبها هكذا portb  و trisb
كيف سيتم تنفيذ البرنامج (الكود )
تقول لغة البرمجة MIKROC بترجمة الكود الذي كتبناه سطر سطر     اي تنفيذ الامر الذي في السطر الاول ثم الثاني ثم الثالث وهكذا 
بعد ان انتهينا من التجربة الاولى سنقوم بعمل تجربة اخرى تجعلنا نتأكد من قوة فهمنا للتجربة الاولى  وبالطبع سنشعر ان الامر اصبح اكثر سهولة ومتعة

_________________
بتوفيق لجميع
العلم نور
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 397
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى