السلام عليكم
لدي مشكلة في برمجة ال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 مما يعني ان المصدر موصل.
اسف على الاطالة...ولكني فعلا لا اعلم ما هي المشكلة...و انا احتاج الى الحل لاكمل تجاربي و مشاريعي.
تحياتي لكم