Professional Documents
Culture Documents
-1طرح االشكال:
-1االستعمال:
اشارة الساعة
اشارة الساعة
كذلك الميكرومراقب يحتاج إلى إشارة الساعة .حيث يتم توليد إشارة الساعة بعدة طرق منها:
1ـ استعمال الكوارتز Quartez :
الكوارتز ()Quartez
مالحظة:
مالحظة:
ـ يتم تحويل الخوارزمية الى لغة التجميع بواسطة مبرمجات والتي منها:
4ـ تحويل لغة التجميع :))assempleur) )ASMمن اجل الكتابة بلغة التجميع ( )ASMالبد من ما يلي:
2ـ معرفة بصفة خاصة دور السجالت :Les Registresمن اجل معرفة دور السجالت البد من معرفة ما يلي:
1ـ أين يوضع البرنامج المراد تنفيذه (مثال تنفيذ برنامج تنظيم إشارة المرور .))Tricolore
.....هناك دارات مندمجة أخرى مخصصة للتحكم ال يمكن تغير محتوى برنامجها مثل ...... ، SAA1027
أما في دارة الميكرومراقب PIC 16F84فالعكس من ذلك :
ـ نستطيع برمجة أقطابه كمداخل أو كمخارج ( دارات قابلة للبرمجة).
اذن يتم برمجة اقطاب الميكرومراقب ( مثل المداخل ،المخارج )....بواسطة استعمال السجالت (.)Les Registres
2ـ الجزء الثاني :يبدأ من العنوان OChإلى العنوان 2Fوهو مخصص للسجالت العامة GPR ( General
) Purpose Registerويضع في هذا الجزء بعض السجالت المقترحة(غير موجودة في الميكرومراقب) ومتغيرات البرنامج .
يحتوي الميكرومراقب على 13قطب يمكن برمجتها كمدخل أو مخرج ،ويمكن تصنيفها إلى:
ـ أقطاب ( ، )RA0,RA1,RA2,RA3تدعى بالمرفأ ). A (PORTA
ـ أقطاب ( ، )RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7تدعى بالمرفأ ).B (PORTB
3ـ كيف يتم برمجة اقطاب الميكرومراقب كمداخل او مخارج؟
يتم برمجة أقطاب الميكرومراقب كمداخل أو مخارج باستعمال سجالت التوجيه :
يقع في العنوان ( 85hالصفحة )1من الذاكرة RAMوله 8بيت 3 ,منها ال تستعمل. 1ـ السجل : TRISA
مخرج
مدخل
مدخل
مدخل
مخرج
مخرج
مخرج
مخرج
مدخل
مدخل
ـ تم توجيه مخارج الميكرومراقب ولكن كيف يتم الحصول على ) 5V (mise a 1او ) 0V (mise à 0على مستوى المخارج.
ملتقط ) مدخل(RA3
مالحظة هامة جدا :هناك فرق بين السجالت التوجيه ( TRISAو – )TRISBداخل المكرومراقب -والمرافئ ( PORTAو
-)PORTBاالتصال بالخارج -فشحن TRISAأو TRISBبالقيمة ” “1أو“( “0فقط توجيهه كمدخل أو مخرج دون توفير
الطاقة الكهربائية ( )5Vعلى مستوى ذلك القطب ) وإرغام PORTAأو PORTBاخذ القيمة ” “1أو ” “0يعني توفير الطاقة
الكهربائية ()5Vعلى مستوى ذلك القطب من اجل مثال إشعال مصباح( )LEDوإطفائه.
ـ هذه السجالت موجودة إما في الصفحة األولى( )BANK0أو في الصفحة الثانية ( )BANK1فكيف يتم اختيار الصفحة لكي يتم
التعامل مع هذه السجالت.
يتم ذلك بواسطة السجل .STATUS
1ـ السجل : STATUSيقع في العنوان 03hو 83hيسمح هذا السجل باختيار الصفحة األولى أو الثانية للذاكرة " " RAM
وكذلك حالة ناتج العمليات الحسابية وهو ذو (. BIT 8تكراره مرتين حتى يتسنى العمل بالسجالت الموجودة في الصفحة 0أو
الموجودة في الصفحة .)1
سجل العمل ) : W (regitre de travailيستعمل كوسيط في عمل الشحن وكذلك العملية الحسابية.
ـ اذا اردنا استعمال التأجيل في برنامج معين (اشارة المرور) فكيف يتم ذلك؟
يتم ذلك بواسطة السجل .TMRO
السجل : TMR0يقع في العنوان 01hوهو سجل ذو 8بيت وله نمطين للتشغيل :
1ـ نمط المؤقت ( . :) temporisateur-timer
2ـ نمط العـداد (. : ) compteur
1FFF + 1 = 2000:مالحظة
مالحظة :في أسفل الذاكرة ROMتحتوي على 8خانات من العنوان 2000إلى 2007مخصصة للميكرومراقب ( غير ممثل
في الذاكرة ROMذات .( 1kilot
ـ العنوان 2007مخصص لسجل ( )Configurationللميكرومراقب مرمز على 14بيت ( ) bitوهو يحدد وسائط الترميز
للميكرمراقب أثناء البرمجة ،على الشكل التالي :
ـ ) : WDTE (WATCH-DOG TIMER ENABLEمخصص لحماية البرنامج من التعطيل أثناء عملية تنفيذه بحيث:
WDTE = 1مسموح له بالعمل .
WDTE = 0غير مسموح له بالعمل .
ـ : PWRTEمخصص لتأجيل الميكرومراقب عن بداية تنفيذ البرنامج لمدة 72mSمباشرة بعد وضعه تحت التوتر بحيث :
: PWRTEالتأجيل مفعل. =0
: PWRTEالتأجيل غير مفعل. =1
ـ : CPمخصص لحماية البرنامج من القراءة لعدم تقليده بحيث:
: CP = 0البرنامج محمي من القـراءة (الحماية مفعلة).
: CP = 1البرنامج غير محمي من القـراءة (الحماية غير مفعلة).
مثال :
يوجد حوالي 35تعليمة وهي تعتبر اوامر بالنسبة للسجالت ولكن سنقتصر على بعض منها :
تذكير -1
Notion En Benaire Notion En Hexadécimal
‘b‘1001111 0x4F
1ـ التعليمة : MOVLWتسمح بشحن محتوى أي قيمة ( )HEXفي سجل ما Les instructions orientées( .
)registre
كيفية الكتابة:
تعليمة سجل قيمة الشحن بHEX : MOVLWتسمح بشحن محتوى أي قيمة في سجل العمل .W
مالحظة :قيمة الشحن 0x5Cسوف يحددها كل من سجل التوجيه TRISAو TRIBفيما بعد وذلك حسب مداخل ومخارج PIC
كيفية الكتابة:
تعليمة
MOVW سجل W سجل السجل المعني
: Fتسمح بنقل محتوى سجل العمل Wفي أي سجل اخر .
كيفية الكتابة:
مالحظة :هي في الحقيقة هذه القيمة ( )0x5Cتشحن في السجل TRISBغير أن هذا غير ممكن بالطريقة المباشرة .حيث يتم
بالطريقة غير المباشرة عن طريق السجل الوسيط .W
تذكير:
أي يجب شحن سجل التوجيه TRISAبالقيمة (.h)1F أي يجب شحن سجل التوجيه TRISAبالقيمة (.h)4
البرنامج:
او
MOVLW 0x1F شحن القيمة x1Fفي سجل العمل ; W 0
MOVWF TRISA شحن محتوى سجل العمل (0x1F)Wفي السجل التوجيه ; TRISA
2ـ نريد برمجة RB4كمخرج:
اذن البد من توجيه RB4كمدخل. -
يتم ذلك بواسطة سجل التوجيه .TRISB -
أي يجب شحن سجل التوجيه TRISBبالقيمة (.h)EF أي يجب شحن سجل التوجيه TRISBبالقيمة (.h)00
البرنامج:
أي اننا سنرغم البيت RP0للسجل STATUSان يأخذ القيمة " "1او القيمة ""0
BSF وهذا يتم بواسطة التعليمتين BCF :و Les instructions orientées bit
BSF PORTB , RB4 :على الشكل التالي BSF يجب استعمال التعليمة
البرنامج :
MOVLW برمجة RB4كمخرج ; 0x EF
; TRISB شحن محتوى سجل العمل ) W (0xEFفي السجل التوجيه MOVWF TRISB
توفير 5V+على مستوى RB4كي تشتعل LED ; BSF PORTB , RB4
مالحظة هامة جدا :هناك فرق بين السجالت التوجيه ( TRISAو – )TRISBداخل المكرومراقب -والمرافئ ( PORTAو
-)PORTBاالتصال بالخارج -فشحن TRISAأو TRISBبالقيمة ” “1أو“( “0فقط توجيهه كمدخل أو مخرج دون توفير الطاقة
الكهربائية ( )5Vعلى مستوى ذلك القطب ) وإرغام PORTAأو PORTBاخذ القيمة ” “1أو ” “0يعني توفير الطاقة الكهربائية (
)5Vعلى مستوى ذلك القطب من اجل مثال إشعال مصباح( )LEDوإطفائه.
:البرنامج
مالحظة هامة جدا :كل تعليمة يستغرق تنفيذها 1μsإذا كانت إشارة الساعة عبارة عن كوارتز ذو 4MHz
T quartz= 4MHz/4 = 1MHz = 1/T Þ T= 1uS
مالحظة :تنفيذ التعليمة يمر بـ 4مراحل لذلك يقسم التردد على . 4
:البرنامج
MOVLW 0x EF
MOVWF TRISB
Boucle BSF PORT B , RB4
GOTO Boucle
END
:البرنامج كامل
8ـ نريد قاطعة تتحكم في إشعال وإطفاء مصباح.
البرنامج سوف يقوم بالخطوات التالية:
- 1المراقبة و االختبار حتى يفتح ). S (RA2
- 2اذا كان ) S (RA2مفتوح عندئذ يتم اطفاء ).LED (RB4
- 3المراقبة و االختبار حتى يغلق ). S (RA2
- 4إذا كان ) S (RA2مغلق عندئذ يتم إضاءة ).LED (RB4
- 5تكرار العمل .
BTFSC BTFSS
البرنامج:
BTFSC PORTA , RA2 من اجل المراقبة و االختبار لـ RA2=0
الشرح :
التعليمة : BTFSC PORTA , RA2تعنى اختبر( )Testالبيت ) RA2 (Bitللسجل PORTAوتخطى ( )Skeyالتعليمة
الموالية لها إذا كان ).RA2 =0 (Clear
البرنامج:
BTFSS PORTA , RA2 من اجل المراقبة و االختبار لـ RA2=1
الشرح :
التعليمة : BTFSS PORTA , RA2تعنى اختبر( )Testالبيت ) RA2 (Bitللسجل PORTAوتخطى ( )Skeyالتعليمة
الموالية لها إذا كان ).RA2 =1 (Set
حتى يبقى االختبار مستمر للبيت RA2نستعمل الحلقة Boucleو التعليمة .GOTO
في حالة أصبح البيت RA2=0نرغم LEDبان ينطفئ ( )RB4=0لذلك نستعمل التعليمة .BCF
في حالة RA2=0 -1
Boucle1 BTFSC PORTA , RA2 راقب واختبر المدخل RA2وتخطى التعليمة الموالية إذا كان )القاطعة( ; RA2=0
GOTO Boucle1
BCF PORTB , RB4 اطفيء ; LED
في حالة أصبح البيت RA2=1نرغم LEDبان يشتعل ( )RB4=1لذلك نستعمل التعليمة .BSF
في حالة RA2=1 -2
راقب واختبر المدخل RA2وتخطى التعليمة الموالية إذا كان )القاطعة( Boucle2 BTFSS PORTA , RA2 ; RA2=1
GOTO Boucle2
اشعل BSF PORTB , RB4 ; LED
البرنامج:
توجيه المداخل والمخارج
X X X RA4 RA3 RA2 RA1 RA0
(11111)2 = (1F)h
X X X 1 1 1 1 1
مالحطة هامة جدا :هنا RA2=1ثابتة ال تتغير الننا هنا بصدد توجيه السجالت وليس االختبار والمراقبة الذي يخص المرفئ .PORTA