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

أدوات الموضوع

eng_mina
:: مهندس ::
تاريخ التسجيل: Jun 2007
المشاركات: 15
نشاط [ eng_mina ]
قوة السمعة:0
قديم 15-08-2009, 06:32 PM المشاركة 1   
افتراضي محتاج مساعدة في pic 16f84a Twitter FaceBook Google+



انا كنت اشتريت ميكرو pic 16f84a و نزلت عليه برنامج يضئ و يطفئ ليدات و لكن بكل اسف لم يعمل بالشكل الصحيح حيث انه يضئ الليدات و لا يطفئها

و لكنى لاحظت انه عند كتابة البرنامج على الميكرو على برنامج winpic يظهر البرنامج في صيغة ال hex كما بالصورة التالية



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



فيا ترى ما سبب هذه المشكلة ؟؟؟

و شكرا لكم مقدما

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 15-08-2009, 09:29 PM المشاركة 2   
افتراضي


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

كنت اشتريت ميكرو pic 16f84a و نزلت عليه برنامج يضئ و يطفئ ليدات و لكن بكل اسف لم يعمل بالشكل الصحيح حيث انه يضئ الليدات و لا يطفئها
في أي مشروع يحتمل أن يكون هناك عدة مشاكل يمكن تقسيمهم لعدة أقسام:
1- أن تكون المشكلة بسبب الكود الذي تم كتابته .
2- أن تكون المشكلة في أن الميكروكنترولر لم تتم عليه الكتابة(الحرق) بشكل سليم لعيب في جهاز البرمجة(المبرمجة) أو في البرنامج المستخدم لذلك .

3- أن تكون المشكلة بسبب التوصيلات .

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

ولكن ماذا لو جربنا الكود على برنامج المحاكاة ولم يعمل جيدا ؟؟ فماذا نفعل .

بالتأكيد لابد من مراجعة الكود جيدا . ويجب الانتباه لأخطاء شائعة يقع فيها الكثيرون:

هناك من يكتب الكود بهذه الطريقة :
كود:
void main() { trisb=0; loop: portb=ob11111111; delay_ms(500); portb=0; goto loop; }
هل تعلم ماذا سيحدث إذا تم كتابة الكود السابق .. ؟؟ سنلاحظ أن الليد يضيء فقط ولا ينطفئ . نعم هذا ماسيحدث . لماذا ؟؟ لأننا جعلنا أمر انتظار واحد فقط بعد عملية الإضاءة ولم نجعل أمر انتظار بعد الإطفاء . لذلك سنلاحظ أن الليدات مضيئة ولا تنطفئ .

وهذا الخطأ يقع فيه الكثيرون سهواً .

هناك خطأ أيضا شائع :

أن يكتب الكود كما يلي :
كود:
void main() { loop: trisb=0; portb=0; delay_ms(500); portb=0b11111111; goto loop; }
هنا الخطأ أنه وضع أمر الانتظار بعد إطفاء الليدات ولم يتم وضع أمر الانتظار بعد الإضاءة لذلك عند تشغيل الدائرة في الواقع أو في برنامج المحاكاة فسنلاحظ أن الليدات غير مضيئة .


إليك خطأ آخر خطير يقع فيه البعض :
كود:
void main() { loop: portb=0; delay_ms(500); portb=0b11111111; delay_ms(500); goto loop; }
الخطأ هنا أن المبرمج نسي الأمر trisb=0; . وبالتالي لن تعمل الدائرة كما يريد .

===============================
النوع الثاني من المشاكل : وهو أن يكون بسبب جهاز البرمجة , أو بسبب البرنامج المستخدم في عملية الكتابة على البك ( الحرق كما يسميها البعض ) .

لابد من التأكد أن جهاز البرمجة لديك يعمل جيداً . وأن يكون السوفت وير (البرنامج) المستخدم للكتابة برنامج جيد ونسخة جيدة وليس بها مشاكل .

بالنسبة لي أنا لا أستخدم برنامج winpic الذي تستخدمه أنت وأستخدم برنامج آخر

يمكنك تحميله من هنا
http://members.aon.at/electronics/pi...cpgm_v1015.zip


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

وهنا في مشكلتك أنت يحتمل احتمال كبير جداً أن تكون المشكلة في أنك لم تقم بتوصيل مقاومة 10 كيلو للطرف MCLR (الطرف رقم 4 في البك ) . فيجب توصيل مقاومة طرف منها يوصل بـ MCLR والطرف الآخر لها يوصل بجهد موجب 5 فولت .

هذه التوصيلة أؤكد أنها مهمة جداً وكثيرا ما تسبب نفس مشكلتك التي تواجهها .

أيضا يحتمل أن تكون البورده (أو Tested Board ) التي تستخدمها سيئة وبها مشاكل .

=======================
أظن الآن انك عرفت ماذا ستفعل ؟؟ ... فلتحاول اكتشاف المشكلة بناءا على المعلومات السابقة ... والله الموفق
=======================

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

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

eng_mina
:: مهندس ::
تاريخ التسجيل: Jun 2007
المشاركات: 15
نشاط [ eng_mina ]
قوة السمعة:0
قديم 16-08-2009, 03:16 PM المشاركة 3   
افتراضي


شكرا ليك يا باشمهندس على سرعة الرد

و انا ان شاء الله سوف اخذ في الاعتبار جميع النقاط المذكورة في الرد

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025