|
السلام عليكم
بالنسبة للمبرمجة التي استخدمها فهي مبرمجة معدة اصلا للمتحكم 16f84...
ولكني قمت بتغيير الاطراف لتناسب المتحكم 16f877a
وقد استخدمت برنامج WINpic لبرمجتها لانه الوحيد الذي تعامل معها ...وقد اخترت خيار JDM...or....COM84 فلم اجد اختلاف ...
وقمت بوصل المتحكم كما بالصورة
حيث هو برنامج فلاشر led على المخرج A0 فقط...وللاسف لم يعمل...هل من اقتراحات حيث قمت بتعريف الهزاز ΗS...and ..XT فلم يتغير شيء؟؟وشكرا...
|
السلام عليكم
1/ الطرف RA0 /AN0 يجب ان يعد كديجيتال بواسطة المسجل ADCON1
بما انك لا تحتاج المحول ADC من الضروري ان تعد الاطراف كديجتال .. الطريقة بسيطة : نسند القيمة 0x06 لهذا المسجل ..
2/ توصيل الليد بدون مقاومة (من 330 اوم الى 1 كيلو اوم) يعرض البيك للخطر.
3/ المبرمجة عنصر اساسي لنجاح العملية .. الافضل ان تكون عندك دارة مبرمجة مجربة سابقا لتصنع شبيهة لها ..
4/ سألتك عن برنامج التمرير حتى اضع لك كيفية اعداده مع المثال الذي اعدته لك ..
اعدادات برنامج الفلاشر المرافق بالنسبة لwinpic800 مع مبرمجة jdm وبتوصيل com:
http://www4.0zz0.com/2009/01/28/19/102607740.gif
لاحظ نتيجة الاعدادات : 3F32 ستجدها كذلك في ملف الاسمبلي
-----
winpic800 ver : 3.55G
http://kudelsko.free.fr/prog_pic_usb/winPIC800/WinPic800_3.55G.exe
طبعا هناك اعدادات اخرى لا يسع المجال لذكرها..
برنامج فلاشر بسيط بالاسمبلي (ليد موصولة مع المخرج RB0 عبر مقاومة 330 اوم):
بالاسمبلي: برنامج صغير تعليماته هي :
START
BSF PORTB , 0
CALL Pause ; 1 seconde
BCF PORTB , 0
CALL Pause ; 1 seconde
GOTO START
End
كود:
;------------------------------------------
; Led cli sur RB0 _ PIC16F877a
;------------------------------------------
errorlevel -302
LIST p=16f877a ; Définition de processeur
#include <P16f877a.inc> ; Définitions des constantes
__CONFIG 0x3F32
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Zone Variables
CBLOCK 0x20
V_20
V_21
V_22
ENDC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Demarrage sur Reset
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0x000
GOTO Init
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Initialisation:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Init
BCF STATUS , RP1
BCF STATUS , RP0
CLRF PORTA
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
BCF STATUS , RP1
BSF STATUS , RP0
MOVLW 0x06
MOVWF ADCON1
BCF TRISB , 0
BCF STATUS , RP0
BCF STATUS , RP1
GOTO START
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Routine:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Pause ; 1 seconde
NOP
MOVLW .117
MOVWF V_22
boucle_5 MOVLW .173
MOVWF V_21
boucle_4 MOVLW .81
MOVWF V_20
boucle_3 DECFSZ V_20,f
GOTO boucle_3
DECFSZ V_21,f
GOTO boucle_4
DECFSZ V_22,f
GOTO boucle_5
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Programme Principal:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START
BSF PORTB , 0
CALL Pause ; 1 seconde
BCF PORTB , 0
CALL Pause ; 1 seconde
GOTO START
End
ملف Hex
كود:
:020000040000FA
:100000000128031383128501860187018801890174
:100010000313831606309F000610831203131E2855
:1000200000007530A200AD30A1005130A000A00B3F
:100030001728A10B1528A20B13280800061410205E
:06004000061010201E282E
:02400E00323F3F
:00000001FF
جربته على بروتوس وهو يعمل كالتالي :
دقيقة اضاءة تعقبها دقيقة انطفاء في حركة مستمرة ..