منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-10-2015, 01:06 AM المشاركة 25   
افتراضي



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

الرابط :

http://www.micro-es.com/up2//view.php?file=267b3f12ca




http://micro-es.com/vb4/forum.php


اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-10-2015, 01:49 AM المشاركة 26   
افتراضي


هام إنشاء برنامجك الأول وميض ليد متصل بطرف منفذ بالميكروكونترولر PIC بفترات زمنية متساوية

الرابط :

http://www.micro-es.com/up2//view.php?file=e33082a658


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

ibrahimaa
:: مهندس ::
تاريخ التسجيل: Jul 2014
المشاركات: 45
نشاط [ ibrahimaa ]
قوة السمعة:
قديم 17-10-2015, 06:35 AM المشاركة 27   
افتراضي


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


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


أساسيات برمجة الميكروكونترولر
أ- الافكار الرئيسية فى برمجة الميكروكونترولر ( او اى جهاز يعمل بمبدأ الكومبيوتر) هى :
1- الميكروكونترولر لديه مجموعة تعليمات محددة instruction set يمكنه التعرف على كل تعليمة وتنفيذها .
2- البرنامج الذى يقوم الميكروكونترولر بتنفيذه هو قائمة من التعليمات ماخوذة من مجموعة تعليماته يقوم بقراءتها بالنظام الثنائى binary من ذاكرة البرنامج الخاصة به . يسمى البرنامج فى هذا الشكل (الهيئة) بشفرة (كود) الماكينة (الالة machine code (.
3- لتنفيذ ذلك يعمل الميكروكونترولر بلا هوادة من خلال تعليمات البرنامج ويفعل تماما ما تخبره به كل تعليمة أن يفعله لا اكثر ولا اقل فيما عدا عند حدوث تحويل مؤقت (المقاطقة) .
· حتى الان هذا امر بسيط ولكن الصعوبة تكمن فى :
4- يجب على المبرمج إيجاد طرق أو وسائل لتجزئة وترجمة أفكاره على شكل خطوات يمكن للميكروكونترولر القيام بها حيث كل خطوة فى جوهرها يجب ان تكون تعليمة من مجموعة تعليماته.
ب‌- مشكلة البرمجة
مشكلة البرمجة ملخصة فى الشكل رقم 1.



فنحن كبشر نعبر عن افكارنا بطريقة معقدة وغالبا ما يكون تعريفها باشكال لغوية غير محددة المعالم .
الميكروكونترولر يقرأ ويفهم النظام الثنائى ويستجيب بشكل دقيق لتعليمات دقيقة . فهو منطقى الى اقصى الحدود ويفعل تماما ما يؤمر به.
مع هذا الفرق اللغوى كيف يمكن للمبرمج كتابة برامج الميكرومونترولر؟
هناك ثلاثة طرق لسد هذه الفجوة تفرض نفسها وهى :
1- ان يتعلم الانسان لغة الالة .
وهذا ما كان يستخدمه المبرمجين فيما مضى .
بمشقة يكتب المبرمج كل تعليمة بشفرة الكود الثنائية حتى يستطيع الميكروكونترولر قراءتها .
وهذه الطريقة بطيئة للغاية ومملة وعرضة للأخطاء ولكن على الاقل فان المبرمج يستجيب مباشرة لحاجات وقدرات الميكروكونترولر .
2- استخدام لغات البرمجة ذات المستوى المرتفع .
وهذه الطريقة كما لو كنا بطريقة ما نطلب من الميكروكونترولر(أو الكومبيوتر) تعلم لغتنا . فى لغات البرمجة ذات المستوى المرتفع تكتب التعليمات بشكل يرتبط بادراكنا للغتنا .
فى هذه الحالة نحتاج الى برنامج كومبيوتر اخر يسمى مفسر أو مترجم يقوم بتحويل برنامجنا الى كود لغة الالة الذى يفهمها الميكروكونترولر.
بهذه الطريقة يستمتع المبرمج بوقته فى البرمجة كما يكتب برامج متطورة .
والنتيجة فان المبرمج ينفصل عن امكانيات الميكروكونترولر وقد يؤدى ذلك الى برنامج غير فعال نسبيا من حيث استخدام الذاكرة وسرعة التنفيذ .
3- استخدام لغة الاسمبلى وهذا هو الحل الوسط .
فى هذه اللغة تستخدم مجموعة من التعليمات وكل تعليمة من مجموعة التعليمات تحتوى على كلمة تذكير (تفكير – مفكرة ) mnemonic وهى كلمة مكونة من ثلاثة او اربعة حروف تستخدم للتمثيل المباشر لتعليمة واحدة من مجموعة التعليمات .
عندئذ يكتب المبرمج البرنامج مستخدما تلك التعليمات .فى هذه اللغة يتعامل المبرمج مباشرة مع الميكروكونترولر كما لو كان يعمل مباشرة بتعليماته ولكن على الاقل فان المبرمج لديه مفكرات mnemonics لأستخدامها افضل من التعامل بشفرة لغة الالة .
يوجد برنامج كومبيوتر خاص يسمى الاسمبلر المتقاطع Cross-Assembler ويختصر بالاسمبلر يعمل على الكومبيوتر الشخصى ويحول الكود من الاسمبلى الى كود لغة الالة التى يفهمها الميكروكونترولر .
طريقة كتابة البرنامج بلغة الاسمبلى ، على سبيل المثال
العملية الفعلية فى الكتابة بلغة الاسمبلى موضحة بالشكل رقم 2 .





1- يكتب مبرمج الميكروكونترولر البرنامج بلغة الأسمبلى .ويمكن فعل ذلك فقط باستخدام محرر نصوص .
فى الشكل سطرين من برنامج بلغة الاسمبلى وهما من مجموعة تعليمات عائلة الميكروكونترولر PIC 16 لتوضيح الفكرة فقط .
2- المصطلح Cross-Assembler اى الأسمبلر المتقاطع يعنى ان الكومبيوتر الذى يعمل عليه يقوم بعمل شفرة الأسمبلى لنوع آخر من الكومبيوتر وهو فى حالتنا الميكروكونترولر واتفق على تسميته اختصارا بالاسمبلر.
3- يقوم الأسمبلر بتحويل البرنامج من لغة الاسمبلى (بمفكراتها) إلى شفرة لغة الآلة الجاهزة (المطلوبة) للميكروكونترولر .
فى الشكل قام الأسمبلر بتحويل سطرين من أسطر كود لغة الأسمبلى إلى شفرة لغة الآلة على شكل كلمات ذات 14-bits لعائلة الميكروكونترلر PIC 16 .
4- يستخدم جهاز برمجة خاص لتحميل download البرنامج بشفرة الآلة من الكومبيوتر الشخصى إلى ذاكرة البرنامج فى الميكروكونترولر .


عملية تطوير البرنامج :
عملية الكتابة بلغة الأسمبلى يجب أن توضع فى السياق الأوسع فى تطوير المشروع .
المراحل الممكنة فى عملية تطوير البرنامج لنظام مشروع بسيط مبينة فى الشكل رقم 3 .




وتتم فى الخطوات التالية :
1- يكتب المبرمج البرنامج الذى نسميه شفرة او كود المصدر source code بلغة الأسمبلى .
2- يتم تحويله شفرة البرنامج باستخدام الأسمبلر وكومبيوتر شخصى إلى ملف سداسى عشر .
3- اذا كان لدى المبرمج محاكى simulator يقوم المبرمج باختبار البرنامج بالمحاكاة ومن المرجح أن يؤدي هذا البرنامج إلى اكتشاف الأخطاء الأمر الذي يتطلب تغيير شفرة المصدر الأصلي .
4- عندما نشعر بالارتياح لهذا البرنامج عندئذ يقوم المبرمج بتحميل البرنامج فى ذاكرة البرنامج للميكروكونترولر نفسه مستخدماإما جهاز برمجة منفصل متصل بكومبيوتر شخصى او استخدام إمكانيات نظام المشروع نفسه فى ذلك.
5- يقوم المبرمج باختبار البرنامج بتشغيله فعليا على الجهاز hardware ومرة اخرى قد يقودنا ذلك إلى ان نحتاج إلى التغيير فى شفرة المصدر .

من الواضح أنه لتطوير ولو مشروع بسيط فإن اختيار البرمجيات software المختلفة يكون مفيدا . وعادة ما تكون هذه البرمجيات مجمعة فيما يعرف بيئة التطوير المتكاملة واختصارا IDE .


http://micro-es.com/vb4/forum.php


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 18-10-2015 الساعة 12:31 AM

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 18-10-2015, 01:24 AM المشاركة 29   
افتراضي



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

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



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

مخططات الحالة : State Diagrams
مخططات التدفق تظهر الحياة على شكل سلسلة من الإجراءات أو الأحداث التي تمر بسرعة.
والعديد من المنتجات تتصرف بشكل مختلف عن هذه الطريقة. حيث تميل إلى الانتقال من حالة إلى أخرى ، وربما تستغرق فترة طويلة من الوقت في هذه الحالة وتتركها فقط عند اكتمال الفترة الزمنية أو وقوع حدث معين .
هذه ، من الأفضل تمثيلها بمخطط الحالة والذي يشكل بديلا لمخطط التدفق .
كما هو الحال مع مخططات التدفق يجب التدريب عليها للوصول إلى شكلها الكامل .
وكل ما نحتاج القيام به هو رسم كل حالة كدائرة أوحلقة لها عنوانأاو وصف والتوصيل بينها بأسهم .
وتظهر أو تتصرف تحت هذا الشرط (أو الشروط)كحالة واحدة وتنتقل إلى أخرى .
كل سهم يكون (يأخذ) اسما أو عنوانا لشرط يتسبب في تغيير الحالة.
الشكل أدناه يبين وظيفة آلة غسيل الملابس المنزلية ممثلة بمخطط حالة بسيط .
عند تشغيلها فانها أولا تدخل إلى حالة التجهيز Ready .
فإذا كان الباب مغلق وبدأ المستخدم الغسيل تقوم الآلة بتحميل (فتح-دخول) المياه.
يقوم حساس(جهاز استشعار) مستوى المياه بالاحساس بتمام مستوى المياه .
ومع ذلك فإن الآلة تقبس الزمن الذى تستغرقه عملية الملء بالماء . فاذا لم يتم الملء فى حدود الزمن المخصص أو المسموح به نفترض حدوث خلل او عطل .
قد يكون هذا راجعا إلى عدم كفاية ضغط المياه أو خلل الصمام.
استخدام طريقة إنتهاءالمهلة كطريقة منخفضة التكلفة وبديلة عن استخدام حساسات لاستشعار ضغط أو تدفق المياه .
حالة الملء يتبعها حالة تسخين المياه .
مرة أخرى طريقة (انتهى الوقت )إذا لم تسخن المياه فى المدة المحددة .
وتستمر العملية كما هو موضح وكل حالة لها خرج مشروط هو النجاح “successful” وخرج آخر يؤدى إلى حالة العطل .
من وجهة نظر البرمجة فإن مخططات الحالة أكثر صعوبة من مخططات التدفق ولا يمكن بسهولة أن تترجم مباشرة إلى لغات البرمجة .
في الواقع ، غالبا ما يكون من المفيد تحويل كل حالة إلى مخطط تدفق خاص بها .
للحفاظ على وضوح الهيكل أو البناء وضمان ممارسة جيدة للبرمجة ينبغي أن يكون لكل حالة تعريف محدد واضح يحدد نقط الدخل والخرج .







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