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

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

الصورة الرمزية D-Unit
D-Unit
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2006
المشاركات: 103
نشاط [ D-Unit ]
قوة السمعة:0
قديم 15-06-2009, 10:26 AM المشاركة 1   
ha هناك مشكلة في برمجة الPIC16F84A !! Twitter FaceBook Google+



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

البرنامج:

لقد كتبت برنامج بسيط لتجربة المبرمج (programmer) الجديد من شركة cytron
و هو مطابق تماما للPICkit-2 من شركة microchip. عموما البرنامج بلغة الاسمبلي و هو كالتالي:

status equ 03
porta equ 05
trisa equ 05
portb equ 06
trisb equ 06
;
org 00
;Initialize
start bsf status,5 ; select memory bank 1
movlw b'11111111'
movwf trisa ;
movlw 00
movwf trisb ;all port B bits output
bcf status,5 ;select bank 0
;
clrf porta
clrf portb
loop bsf porta, 3
goto loop

end

هذا البرنامج كتبته لعمل شيء بسيط جدا و هو تشغيل ال(RA2) PIN1 بشكل متواصل.
طبعا هناك احتمال كبير جدا ان يكون هناك اخطاء في اسلوب البرمجة...ولكن الغريب في الامر انه على الاقل من المفترض ان يكون هناك استجابة من قبل الPIC
بعد البرمجة..ولكن للاسف لايوجد استجابة.

2\ المبرمج:
انا استخدم برنامج MPLAB 8.3 النسخة الاخيرة...و طبعا للاسف لا يمكن الاتصال ببرنامج الPICkit 2 عن طريق هذه النسخة...في الواقع في جميع النسخ لا يمكن ايصال الMPLAB مع الPICkit 2, لذا فانا اقوم بحفظ الHex file و بعد ذلك اقوم فعل EXPORT من الMPLAB الى PICkit 2 من دون الاتصال بين البرنامجين.
لا اعلم ان كان هذا خطأ ام صحيح...علما باني لم اقوم بتحديد اي خصائص (مثلا : تردد الكرستال المستخدمة , الwatchdog , و الخ من هذه الخواص) و لا اعلم من اين يتم تحديدها.

بالنسبة لبرنامج لPICKit 2 فهو يعمل بسلاسة حيث يقوم باكتشاف نوع الmicrocontroller التي تم ايصالها بالمبرمج مباشرة و يقوم بعملية ال Import file بكل سهولة...وبعد ذلك يتم تحميل البرنامج بنجاح في الPIC .

بعد كل هذا , قمت بتجربة الPIC16F84A المبرمج بايصاله مع الدائرة الرئيسية , و هي عبارة عن كرستال 4MHz و مكثفين 10pf , و ايصال الريسيت بمصدر 5V و الارضي بالارضي و المصدر بال5v ....بعد ما جهزت الدائرة قمت بفحص الفولت عند الPIN 1 (RA2( و النتيجة هي 0V بينما عند PIN14 الفولت هو 5.1V مما يعني ان المصدر موصل.

اسف على الاطالة...ولكني فعلا لا اعلم ما هي المشكلة...و انا احتاج الى الحل لاكمل تجاربي و مشاريعي.


تحياتي لكم

اعلانات

metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 06:09 PM المشاركة 2   
افتراضي


سلام :
هل قمت بوصل بن الريسيت
عبر مقاومة لل+5


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

metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 06:12 PM المشاركة 3   
افتراضي


mcrl





metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 06:15 PM المشاركة 4   
افتراضي


اذا كنت تحب النصح استعمل pic16f628a
حيث أنه يحتوي كرستالة داخلية ويمكنك تعطيل الرستارت
ويعمل بمجرد وصل gnd &+5
فقط لا غير




metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 06:17 PM المشاركة 5   
افتراضي




الصورة الرمزية D-Unit
D-Unit
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2006
المشاركات: 103
نشاط [ D-Unit ]
قوة السمعة:0
قديم 15-06-2009, 07:18 PM المشاركة 6   
افتراضي


اشكرك اخي على المشاركة

نعم لقد قمت بايصال الريسيت بمصدر 5 فولت عبر مقاومة 20k
اعتقد ان المشكلة في كيفية استخراج الHex file من برنامج الMplab حيث اني لا اعرف كيف اقوم بتعديل قيمة الكرستال بالاضافة الى هذه التفاصيل الصغيرة.


metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 15-06-2009, 07:22 PM المشاركة 7   
افتراضي


أسف عيوني لكني لا أعرف شيئا عن mblab
هناك الكثير من البرامج اللتي تغني عنه
أتمنى أن تنضم الينا
http://www.qariya.com/vb/showthread.php?t=47045
كما أعود لأنصحك ب pic16f682a
وهو أرخص حتى .......


rimawi2008
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2007
المشاركات: 104
نشاط [ rimawi2008 ]
قوة السمعة:0
قديم 17-06-2009, 09:01 PM المشاركة 8   
not funny



clrf porta
clrf portb
loop bsf porta, 3
goto loop

end


المشكلة عندك اخي الكريم في البرمجة نفسها انت معرف البورت a ك input وفي برنامجك بدك اتخلي output وهذا خطا فالاصل ان تجعل بورت b فتصبح
bsf portb, 3
وهكذا يصبح البين portb,3 هو المخرج وهو البين رقم 9 في البيك
او تجعل بورت a مخرج


التعديل الأخير تم بواسطة : rimawi2008 بتاريخ 17-06-2009 الساعة 09:23 PM
إضافة رد

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

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

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


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

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