تعلم برمجة الميكرو كنترول من الصفر
هدا البرنامج الخاص بى البرمجة
هدا هو ربط البرنامج الخاص بى البرمجة
وسوف اقوم فى الايام القادمة بوضع دروس عن كيفية البرمجة وهى بلغة التجميع
والبرنامج الخاص بى البرمجة والتحكم الكانل فى المايكرو
مع تحياتى لكم
والله ولى التوفيق
بارك الله فيك
و في إنتظار الجزء الخاص بالبرمجه
<span style='color:blue'> بارك الله فيك </span><span style='color:orange'> mohamad1977 </span><span style='color:blue'>..كتبت و أفدت :D .
أنا كنت أستعمل دارة Serail Port RS232 المسماة والمعروفة ب JDM لبرمجة كل المركبات الإلكترونية التي تقبل المريجة بالنظام التسلسلي ك µControlerPic Familly و الذاكرة 24Cxx وغيرها ....
(لقد أرفقتها في مشاركاتك ;) )
فبرمجة كل PIc تعتمد فقط على 3 ماداخل للبرمجتها: MCLR و DataClck =RB6 و DataIO= RB7.
هذه صورة لها مع بعض التعديل
ميزة هذه الدارة أنها صغيرة جدا ولاتحتاج لمركبات رقمية أو نشيطة غير المكونات Passiv :
diods + resistors&Capacitors+Transistors.فقط يجب إضافة تغدية خارجية لزيادة ثباتها وقدرتها على البرمجة في معظم الحاسبات سواء المكتبية أو المحمولة..
وصلات مفيدة حول JDM Programmer Interface:
http://www.jdm.homepage.dk/newpics.htm
http://www.jdm.homepage.dk/newpic0.htm
http://users.tpg.com.au/btkelly/jdm_b.htm
</span> (h)
تم تعديل هذه المشاركة بواسطة HGB في 23 يونيو 2007 في 14:11
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
اخوتى فى المنتدى اسف لتاخرى عنكم ولكن كل ما فى الامر انى مشغول فى اعداد مشروع
واعدكم فى الايام القادمة بانى سوف اضع دروس عن كيفية برمجة الميكرو كنترول
والله ولى التوفيق
مع تحياتى
الحرباوى
mohamad1977
;)
غدا باذن الله سوف نبدا فى الدروس
وارجو منكم ارسل اركم حول الموضوع
مع تحياتى
:wacko:
نبدا اليوم واضع بين ايديكم هده الملفات
المايكروكنترلر
المتحكم الصفـري أو المايكروكنترلر هـو في الواقـع كمبيـوتر صغير مصمـم خصيصـا ليقوم بأعمال معينة. ويستخدم الذاكرة لتخزين الأوامر المبرمجـة و القيــام بتنفيذ هــذه الأوامـر مثـل التشغيل والإطفاء , التوقيت , العد ، الحساب وغير ذلك من العمليات.
تم استعمال أول ميكروكنترولر فـي عام 1969 ومنذ ذلك الـوقت بدأت هذه المتحكمات بالانتشار حتى بات من الصعب العمل في مجال الإليكترونيات الحديثة بدون معرفة الميكروكنترولر.
وهذه المتحكمات العجيبة موجودة في داخــل العديـد من الأجهـزة التي نستخدمهــا في حيـاتنا اليومية. فمثلاً في السيارة نجد أن الفرامل (الكوابح) و مثبت السرعة يتم التحكم فيها عن طريق الميكروكنترولر.
ولو نظرنا إلى فرن المايكروويف في المطبخ لوجدنا بداخله ميكروكنترولر للتحكم بالتوقيت والحرارة بحسب الخيارات التي نطلبها عند الطبخ.
والأمثلة على الأجهزة التي يوجد بداخلهـا ميكروكنترولر كـثيرة منهـا الهواتـف الجوالة ، الثلاجات ، الغسالات ، التلفزيونات ، كاميرات الفيديو ، الكاميرات الرقمية وغير ذلك كثير .
هناك مصانع وطائرات و أقمار اصطناعيـة وجــدول لا نهايـــــة لــه يدخـل الكومبيوتــر في تـركيبته الأساسية.وما علاقة ذلك بالميكروكونترولر.؟ العلاقة هو أن الميكروكونترلر بحد ذاته هو عبارة عن كومبيوتر بكل ميزاته موضوع في تشيـب واحـــد,تصور ذلك.باثنين سنتم طول ونصف سنتم عرض وربع سنتم ارتفاع و أحيانا اقل من ذلك بكثير يوجد كومبيوتر متكامل.إنها ثوره صناعية بحق .واجزم بان التقدم في أي مجال كان يعتمد على الميكروكونترولير.وخاصة السعر الرخيص من دولارين وما فوق.لماذا المتحكم ؟ لأنه قلب أي داره أو شبكه إلكترونية ويتحكم بإدارتها جيدا . .الميكروكونترولير تصنعـه شركـات مختلفـة وبـدوره هنـاك أنواع عديـدة ووظائف مختلفة الخ.ولكي ندخل معا عالم الميكروكونترولير سندرس واحد على وجه الخصوص ألا وهو التشبيبPIC16F84a من إنتاج شركه MICROCHIP ونستعمله كعامود أساس لانطلاق إلى ما فوق بعون الله
خواص الميكروكنترولر
كما ذكرنا فإن الميكروكنترولر هو عبـارة عن كـمـبـيـوتـــــر صغير ولكن ما هي الخواص التي تميز الميكروكنترولر عن باقي الكمبيوترات ؟
أهم هذه الخواص هي:
1) ) يكون الميكروكنترولر عادة بداخل جهاز آخر للتحكم بذلك الجهاز كما ذكرنا سابقاً.
2) ) يكون في الميكروكنترولر ما يحتاجه من الذاكرة مثل الرام والروم (RAM & ROM)
فهو ليس بحاجة إلى شرائح خارجية للذاكرة.
(3) يكون عمل الميكروكنترولر محدد بمهمة واحدة وتنفيذ الأوامر في برنامج واحد يكون مخزناً في ذاكرة الميكروكنترولر.
(4) يكون استهلاك الميكروكنترولر من الطاقة صغيراًً جدا بالنسبة للكمبيوترات الأخرى فمثلا
بعضها يستهلك 50 مبللي وات بينما الكمبيوتر العادي الذي نستخدمـه فـي منـازلنـا قد
يستهلك 50 وات.
مكونات الميكروكنترولر
تحتوي شريحة الميكروكنترولر على معالج بيانات ، ذاكرة رام و ذاكرة روم ، منافذ للمداخل والمخارج (I/O interfaces) ، مؤقتات وأنظمة أخرى مثل محولات القيم التمثيلية إلى رقمية (ADC).
والآن لنعطي نبذة عن عمل كل من هذه الأجزاء:
معالج البيانات:
و يعتبر قلب الميكروكنترولر ويختلف باختلاف الجهاز المستخدم وكذلك مصنع الجهاز فمثلاً معالج البيانات المستخدم في جهاز الهاتف الجوال يختلف عن ذلك المستخدم في فرن المايكروويف.
الذاكرة:
وتنقسم إلى رام و روم. أما الرام فتستخدم لتخزين المعلومات ويتراوح حجمها بين 25 بايت و 4 كيلو بايت بحسب الميكروكنترولر.
أما الروم فيتراوح حجمها بين 512 بايت و 4096 بايت وقد يصل حجمها إلى 128 كيلو بايت في بعض المايكروكنترولات. وتستخدم الروم لتخزين البرامج التي تحتوي الأوامر التي ينفذها الميكروكنترولر.
وذاكرة الروم قد تكون من نوع الروم (ROM) حيث يمكن برمجتها مرة واحدة فقط وقد تكون من نوع إي بروم (EPROM) أو إي ايبروم (EEPRPM) حيث يمكن برمجتها عدة مرات.
منافذ المداخل والمخارج:
وهذه المنافذ الرقمية توفر للمايكروكنترولر الطريق للتعامل مع الأجهزة الخارجية. حيث يمكن استعمالها لتشغيل الدايودات المضيئة والمرحلات ويختلف عدد هذه المنافذ بحسب الميكروكنترولر
المنفذ التسلسلي:
المنفذ التسلسلي يسمح بتبادل المعلومات بين الميكروكنترولر و الأجهزة الأخرى مثل الكمبيوتر و المايكروكنترولات الأخرى.
المؤقت:
يسمح للمايكروكنترولر بالقيام بالمهمات لفترات زمنية محددة
المحول التمثيلي إلى رقمي:
و هو يترجم المعلومات الداخلة بالهيئــة التمثيـليـة (Analog) إلى هيئـة رقميـة (Digital) حتـى يتمكن الميكروكنترولر من فهمها والاستجابة لها.
برمجة الميكروكنترولر
توفر الشركات المصنعة العديد من أنواع المايكروكنترولات للمحترفين والهواة حيث يمكن عمل التجارب المختلفة عليها.
هذه المايكروكنتولات يمكنها القيام بمهام مختلفـة بحسـب الأوامر التي تعطى لها وهذه الأوامر تسمى بالبرنامج. فبإمكان الشخص تغيير العمل الذي يقوم به الميكروكنترولر بتغيير هذه الأوامر في البرنامج.
كتابة البرنامج تحتاج من الشخص إلى معرفة جيدة بلغات البرمجة مثل الاسمبلي أو غيرها من اللغات.
لتغيير البرنامج في الميكروكنترولر سيحتاج الشخص إلى جهاز وسيط لتحميل البرنامج الجديد من الكمبيوتر الشخصي إلى الميكروكنترولر. حيث يركب فيه الميكروكنترولر لتحميل البرنامج فيه ثم بعد ذلك يزال الميكروكنترولر إلى الدائرة التي سوف يستخدم فيها
أما جمال وروعة الميكروكنترولر هو إننا نستطيع برمجته ثم انتزاعه من المبرمج ووضعه أينما شئنا في أي داره فهو يحتفظ بالمعلومات لمدة أربعين عاما وبدون كهرباٍ ناهيك عن قدرته الفائقة في تنفيذ الأوامر مليون ومليونان أمر في الثانية حسبما نريد, فلا تترك هذا الأمر يفوتك فهيا بنا لندرسه وبأسهل الطرق والله المعين
وبإذن الله تبارك وتعالي سنبدأ بالمتكاملة PIC16f84A لما له من مميزات هي :-
(1) - يفهم 35 كلمه أوامر فقط !
(2) - يستطيع أن يخزن بذاكرته برنامج من 1024 أمر.
وهذه الذاكرة من نوع فلاش ,وذلك يعني إننا نستطيع أن نكتب ونمحيها بواسطة الكهرباء
,وإذا قطعنا الكهربـاء عنهـا فهـي تحفـظ المعلـومات لمدة أربعين عاما, هائل,إنها تمثل دور
الهارد ديسك في الكومبيوتر.
(3) يحتوي علي 68 بايت من ذاكره رام RAM ومعناها ذاكره مؤقتة,أي عندما نقطع الكهربـاء
عنها خسرنا المعلومات.
(4) يحتوي علي 64 بايت للمعلومات من نوع EEPROM نفس مواصفات الفلاش.
15 سجل عمل خاص.
(5) يحتوي علي 13 بين دخول/ خروج O/I د/خ .معنى ذلك أن البين يمكن أن يستعمل
كدخول وهو أن يستلم من العالم الخارجي بيت ما.ويستعمل كخروج من خلال البين ليضع
في العالم الخارجي البيت المناسب.أي بين يمكن أن يستعمل في كلا الطريقتين.
وله مواصفات عديدة أخري ولكن حرصا مني على أن لا اعقد الأمر , فلنبدء من هنا.
ما معنى انه يفهم 35 أمر أو كلمه وكيف تتم عمليه برمجته؟
لدينا 35 كلمة بلغة اسمبلي نبرمج بها الميكروكنترولر بواسطة برنامج MAPLAB وهو برنامج
مجاني يمكن تحميله من موقع الشركة MICROCHIP . COM .
أين نضع الميكروكونترولير
له مبرمج مخصوص يمكن تصميمه وتوصيله علي منفذ الطابعة أو منفذ الماوس
ويوجد في نادي الإلكترونيات العربي اكثر من نموذج يمكن تصنيعه ويمكنني أن أساعد من يريد في تصنيع المبرمج الخاص به
منافذ الميكروكنترولر
قلنا بان هنالك 13 بين د/خ وشرحنا ذلك فهي أمامــك. وهذه 13 بين تنقسـم بدورهـا إلى PORTA و PORTB منفذين وتلاحظ أن كل بين له رقم واسم و يعرف عن البورت مثلا 1 PORTA أو PA1 فما معنى أن يكون لهذا التشيب 2 بورت وما معنى أن كل بين له اسم؟
الهدف من ذلك هو أن كلاهما بورت ا و بورت ب هم عبارة عن سجل عمل خاص مؤلف من 8 بيت.كما في الشكل التالي أما منا الآن سجل عمل PORTB فهو وببساطه عن موقع في ذاكرة التشيب أو بايت مؤلف من ثماني بيت فكل ما يكتب في سجل العمل هذا تظهر نتيجته في البين التابع له .فإذا كتبنا 1 في البيت RP3 من سجل العمل ستكون كهرباٍ البين نفسه +5 فولت وهذا يعني 1 .والعكس صحيح .
لاحظ إن آخر ثلاثة بيت غير موجودة فكل ما تكتبه هنا لا قيمة له.
من مميزات سجلان العمل هذه انك تستطيع أن تكتب البايت مباشرة أو أن تختار أي بيت لتكتبه دون أن يتأثر ما تبقى وهذا هو الجواب لما 2 بورت ولكل بورت اسم.
لاحظ أن كل ما تكلمناه سابقا,ركيزته إننا اعتمدنا أن بورت ا و بورت ب كخروج فكل ما نكتبه هنا في هذان السجلان للعمل الخاص يظهر إلى العالم الخارجي من خلال البين المناسب. فما يحدث عندما يكون البين أو البورت مبرمج كدخول .؟سهل جدا كل ما هنالك إنها تنقلب الأمور.فسجل العمل يتغير بتغير البين من الخارج معنى ذلك انه يقرأ من العالم الخارجي.
الأنظمة الرقمية
النظام الثنائي
النظام الثماني
النظام العشري.
النظام السادس عشري
النظام العشري المشفر ثنائيا
النظام العشري.
قاعدة عشره , أو النظام الرقمي العربي. DECIMAL
الأرقام عبارة عن رموز تستعمل لتمثيل كميات معينه , النظام الرقمي الأكثر شيوعا والأقدم هو النظام العشري أو قاعدة 10 [ لأنه يتكون من عشرة رموز], وسمي كذالك بالنظام الرقمي العربي , نسبة إلى مخترعيه العرب اللذين أدخلوه إلى أوروبا قبل 800 سنه , وكل الدول المتحضرة تبنته رسميا , هو النظام الأكثر استعمالا في حياتنا اليومية , وتكيفنا الذهني معه أكثر من غيره من الأنظمة, لذالك اخترنا دراسته قبل غيره.
النظام العشري يستعمل عشرة رموز أو أرقام [ 0,1,2,3,4,5,6,7,8,9 ] وربما يرجــــع ذلك إلى أن الإنسان له عشرة أصابع , يستعملها بطريقة عفوية أو معتمدة للعد, منذ قدم العصور
عندما نعد عشريا , نبدأ بالرقم الأقل قيمة [0] الصفر, ثم [1] واحد, [2] .…الخ حتى الوصول إلى [9] تسعه , وهو الرقم الأكبر قيمة, أي عد إضافي ينتج انتقال إلى اليمين ,(Carry) منتجا الرقم عشره [ 10] في هذا الرقم الواحد [1] يحتل موقع أو خانة العشرات ( 10^1=10), بينما ال [ 0 ] الصفر يحتل خانة الأحادي (10^0=1) . .
تتابع هذه العملية , كلما نصل إلى ( 9) في موقع الآحاد , وعندما نصل إلى ( 9 ) في موقع العشرات يحدث انتقال إلى موقع المئات ( 2^10=100 ) لاحظ أن أي رقم في موقع العشرات له قيمه أو (ثقل) 10 مرات أكثر منه في موقع الأحادي. وهذه القاعدة صحيحه لكل المواقع الأكثر ثقلا , وانطلاقا من هذه العلاقة , فإن النظام العشري هو نظام موقعي وقاعدته عشره .
عامة , إن كل الأنظمة الرقمية التي سندرسها , هي أنظمه موقعيه ( قاعدة 2, 8, 10, 16 ) وتطبق عليها القوانين التالية
(1) كل موقع أو خانه يضرب قيمة العدد بالقاعدة .
(2) الانتقال من موقع إلى التالي يكبر الثقل بعامل يساوي القاعدة .
(3) عدد الأرقام المستعملة في النظام مساوي للقاعدة.
(4) الرقم الأكبر قيمه يساوي القاعدة ناقص واحد.
لنأخذ العدد ( 735 ) على صعيد المثال ,
الرقم 5 هو الرقم الأقل قيمة LSD ( (Least Significant Digit.
والرقم 7 هو الرقم الأكثر قيمة , MSD (Most Significat Digit)
, ويحتل موقع المئاتْ , وهذا الرقم 735 يتضمن أنه هناك ( 7) مِئاتْ , ( 3 ) عشراتْ و ( 3 ) وحدات. ويمكن أن يعبر عنه بالصورة التالية :
735= 7 x 100 + 3 x 10 + 5 x 1
= 7 x 10^2 + 3 x 10^1 + 5 x 10^0
= 700+30+5
الثنائي Binary
النظام الرقمي الثنائي , قاعدة 2 , يستعمل فقط رقمين وهما الصفر والواحد ( 0,1) , وكل من هذان الرقمين يدعى ( بيت) , البيت تتغير قيمته حسب الموقع الموجود به , في أقصى اليسار من أي عدد ثنائي يوجد البيت الأكثر ثقلا MSBوفي أقصى اليمين البيت الأقل ثقلا LSB
المواقع أو الخانات في النظام العشري ( أحاد , عشرات , مئات , ألوف , عشرات الألوف .... الخ ) بينما في النظام الثنائي ( أحاد , اثنان , أر بعات , ثمانيات , ستة عشرات , اثنان وثلاثينات , أربعه وستينات , مائه وثمانية وعشرينات .... الخ).
في نظامنا العشري , إذا وجد الرقم تسعه في الخانة الثالثة , فهو يعني 900 أي 9×100 , كذلك الأمر في النظام الثنائي , فإذا وجد الواحد في الخانة الثالثة فهو يعني أربعه أي 1×4 . فعملية التحويل من عشري إلى ثنائي وبالعكس لهي في غاية السهولة.
أمامنا عدد من خمسه بيت 10010 ونريد تحويله إلى عشري. نأخذ الخانة الأكثر ثقلا وهي الخامسة. نرى أنها تحتوي على البيت 1 , وهذا معناه أن هناك واحد ستة عشرات أي 1×16 أي 16 ...... في الخانة الرابعة هناك البيت صفر , الآن نقوم بنفس العملية , والناتج صفر لأن كل ما يضرب بصفر نتيجته صفر. نفس الأمر في الخانة الثالثة النتيجة صفر , في الخانة الثانية هناك واحد ومعناه 1×2 أي 2 وفي الأخير صفر.
إذا هناك 16 و 2 فكل ما عليك هو جمعهما لتحصل على 18 , و ها أنت قد حولت العدد الثنائي 10010 إلى عشري.
10010 = 1 x 2^4 + 0 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0
16 + 0 + 0 + 2 + 0 = 18
كيف نحول من عشري إلى ثنائي ؟
يتم ذلك بالقسمة المتتالية للعدد العشري على أثنين ( 2 ) وبالشكل التالي
لنفترض أنني أريد تحويل العدد 37 إلى ثنائي :
أقسم 37 على 2 فالجواب 18 والباقي 1
أقسم 18 على 2 فالجواب 9 والباقي 0
أقسم 9 على 2 فالجواب 4 والباقي 1
أقسم 4 على 2 فالجواب 2 والباقي 0
أقسم 2 على 2 فالجواب 1 والباقي 0
أقسم 1 على 2 فالجواب 0 والباقي 1
لأنه في عملية التحويل لا مجال للكسور.
الباقي هو الرقم الثنائي للعدد العشري 37 , ونبدأ بترتيبه من الأسفل إلى الأعلى ,
حيث البت ( bit ) الأكثر ثقلا هو بيت الباقي الأخير.
إذا 100101 = 37
ملاحظة : الأرقام الثنائية تقرأ , واحد صفر صفر واحد صفر واحد ولا يجوز قراءتها كالنظام العشري لنقول مائة ألف ومائه وواحد.
النظام الثماني Octal
قاعدة 8 , يستعمل ثمانية رموز ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 )
يختلف عن النظام العشري بأنه لا وجود للرقمين
( 8 , 9 ) فأعلى رقم في النظام الثماني هو السبعة
كيف نحول من عشري إلى ثماني ؟
يتم ذلك بالقسمة المتتالية للعدد العشري على
ثمانية ( 8 ) وبالشكل التالي
لنفترض أنني أريد تحويل العدد 267 إلى ثماني :
أقسم 267 على 8 فالجواب 33 والباقي 3 (Lsd)
أقسم 33 على 8 فالجواب 4 والباقي 1
أقسم 4 على 8 فالجواب 0 والباقي 4 (MSD)
الباقي هو الرقم الثماني للعدد العشري 267,
ونبدأ بترتيبه من الأسفل إلى الأعلى , حيث الرقم الأكثر
ثقلا هو الباقي الأخير.
إذا 267 عشري يساوي 413 ثماني .
النظام السادس عشري Hexadecimal أو Hex
هو النظام الأكثر استعمالا في الأجهزة الإلكترونية , وبالحاسب على وجه الخصوص , يسمى بنظام قاعدة 16 كذلك , يتألف من ستة عشر رمزا وهما الأرقام من 0 إلى 9 بالإضافة إلى الأحرف ( A , B , C , D , E , F )
الرقم الأكبر هو الحرف(F) والذي يوازي 15 عشريا , والأقل قيمة هو الصفر ويعد في هذا النظام من الصفر إلى F أمثله لأعداد سادس عشريه ( 123 , A23F , 23FF , F4 , DF)
كيف نحول من سادس عشري إلى عشري ؟ HEX to Decimal
ففي الرقم السادس عشري A23F
هناك ( عشر ) 4096, و ( اثنان ) 256 , و ( ثلاثة ) 16 , و ( خمسة عشر ) 1
A23F = 10 x 4096 + 2 x 256 + 3x16 + 15 x 1
= 40960 + 512 + 48 +15 4153
كيف نحول من عشري إلى سادس عشري ؟
لنحول العدد العشري 1991
نقسم 1991 على 16 جواب 124 والباقي 7
نقسم 124 على 16 جواب 7 والباقي 12 ©
نقسم 7 على16 جواب 0 والباقي 7 (MSD)
1991 = 7C7
النظام العشري المشفر ثنائيا (BCD) Binary-Coded-Decimal
ليس نظاما رقميا بحد ذاته , بل يمزج ما بين العشري والثنائي , وتعتمد عليه بعض الآلات الحاسبة . وكثير من الشرائح الإلكترونية , فكيف يعمل نظام BCD؟.
لدي الرقم العشري 4975
نأخذ الأرقام رقما رقما ونحولها إلى ثنائي
فالأربعة تساوي 0100
والتسعة تساوي 1001
والسبعة تساوي 0111
والخمسة تساوي 1001
إذا 4975
(BCD) 0100 1001 0111 1001=
هو النظام العشري لكن الأرقام به تكتب ثنائيا.
وهدا ملف ورود به شرح مع الصور (h)
وهده مجموعة التعليمات
شرح التعليمات
شرح تعليمات تدفق برنامج التحكم :blink:
سوف نبدا الان فى شرح البرمجة ولكن بعد ان الاطلاع على التعليمات
وسوف تكون البرمجة عن طريق لغة التجميع
وبالتفصيل الممل
انتظار رددودكم
مع تحياتى
الحرباوى
السلام عليكم
اشكرك يا اخي الكريم على هذه المعلومات القيمة
وبارك الله فيك
هذا الموضوع مغلق.
