القائمة الرئيسية

الصفحات

الدارات المندمجة القابلة للبرمجة PIC16F 84A الجزء 2

 

الدارات المندمجة القابلة للبرمجة PIC16F 84A






الجزء الأول من الدرس تجدونه هنا 

 ويمكنك مشاهدة شرح مبسط للدرس  هنا



-----------------------------------

الجزء الثاني من الدرس وهو مخصص للبرمجة والاعمال التطبيقية



 أعمال تطبيقية على الميكرومراقب PIC16F84A


o       مثال تطبيقي 1TP :


نريد برمجة ميكروراقب من نوع pic16f84  للتحكم في ثنائية (LED) ، حيث عند الضغط على زر ضاغط  يتم عكس حالة الثنائية ذلك حسب التركيب التالي:




pIC16F84A




قبل بداية البرمجة يجب التخطيط للبرنامج، وهناك عدة طرق كإنشاء الخوارزمية ثم تحويلها إلى برنامج أو مباشرة  باستعمال برمجية MPLAB أو باستعمال البرمجيات Multisim  أو Porteuse( الأنسب و الأفضل).

v    نستعمل برنامج MPLAB في البرمجة باستعمال لغة المجمع  langage assembleur

v    قبل ذلك يجب معرفة بعض التوجيهات و التعليمات الأكثر استعمالا أهمها:

List p=16f84 : تعريف اﻟ μc المستعمل

Include ‘p16f84.inc’ : إدراج الملف 16f84  

_CONFIG_CP_OFF&_WDT_OFF &_PWRTE_ON &_XT_OSC  تعريف الإعدادات المادية:

ملاحظة: - يمكن كتابة بعض التعليقات التي قد تساعد في فهم التعليمات، حيث توضع هذه التعليقات بعد نقطة فاصلة وهي وصف لكل عملية من البرنامج حيث يكتب بالفرنسية أو الانجليزية أو العربية... لان كل ما يأتي بعد النقطة فاصلة لا يهتم به ﺍﻟ PIC




طريقة تحويل البرنامج من لغة ASSEMBLEUR الى HEX مع الأستاذ قشطولي نجيب

برنامج PIKIT2  لرفع البرنامج على الميكرومراقب     من   هنا 




البرنامج:

;**************************************************************

;BP_LED - Commande d'une LED à l'aide d'un BP  تسمية البرنامج ( فكرة مختصرة عن الهدف منه) 

    La LED change d'état à chaque appui sur le BP 

;***************************************************************

list p=16f84                                                ; المستعملPIC تعريف ﺍﻟ

_CONFIG_CP_OFF&_WDT_OFF &_PWRTE_ON &_XT_OSC  ; تعريف الإعدادات المادية

   #include "p16f84.inc"  ;           16f84 ادراج الملف

;****************** Define                  ; تعريف المداخل و المخارج  *************

         #DEFINE       LED    PORTA,2            ; RA2 في القطب  LED تعريف المتغير

         #DEFINE       BP      PORTB,2      ; RB2 في القطب  BP تعريف المتغير

;************* Demmarage sur RESET ;  شعاع الإرجاع للصفر    *************

         org     0                                                 ; عنوان بداية البرنامج

         goto    Start                         ;  Start الذهاب الى التعليمة المسماة

         org     10                                                   ;  10 الذهاب إلى العنوان  

;********** Configuration des ports        ;  برمجة المداخل و المخارج**************

Start                                                                 ; Start تعليمة باسم

         bsf     STATUS,RP0                                ; اختيار البنك1 

         bcf     TRISA,2                                    ;  كمخرج   RA2   برمجة

         bsf     TRISB,2                                        ;   كمدخل  RB2      برمجة  

         bcf     STATUS,RP0                           ; اختيار البنك0 

         bcf     LED                                            ;     وضع الثنائية في 0(راحة)              

;************** Principale *****************************************

Lab1                                                                 ; Lab1 تعليمة باسم

         btfss  BP                                              ;  مضغوط  BP قفز التعليمة الموالية إذا كان                  

         goto   Lab1                                            ; Lab1  الذهاب للتعليمة

         comf  PORTA,F                                  ; بدل حالة الثنائية

Lab2                                                                 ; Lab2 تعليمة باسم

         btfsc   BP                                             ; محرر  BP قفز التعليمة الموالية إذا كان   

         goto   Lab2                                           ; Lab2 رجوع للتعليمة

         goto   Lab1                                            ; Lab1 رجوع للتعليمة

         end                                                ;    نهاية البرنامج                                                


 

      مثال تطبيقي 2TP :  

التأجيل باستعمال الميكرومراقب

ليكن برنامج التأجيل  الفرعي التالي (جزء من برنامج كامل):

************;programme de temporisation*************** برنامج فرعي للتأجيل

tempo                          ; (tempo نداء البرنامج الفرعي للتأجيل (     

movlw 0xff                 ; (255) ff بالقيمة W السجل تحميل

movwf  retard             ; retard السجل  في W تحميل

boucleانشاء حلقة ;                                 

nop                              ;لا توجد عملية

nop                              ; لا توجد عملية(ضياع دورة كاملة)

decfsz  retard              ; retard=0 انقص1من محتوى العداد مع القفز(تجاوز التعليمة الموالية) إذا كان

goto boucle                 ; الذهاب للحلقة  

return                          ; العودة الى البرنامج  الرئيسي

end                              ;نهاية البرنامج

 

Ø     احسب مدة التأجيل باستعمال العلاقةNcy x1µs   t =NcyxT=

لحساب ذلك  يجب معرفة عدد دورات تعليمات البرنامج الفرعي للتأجيل.

نعلم جميع التعليمات يتم تنفيذها من طرف المعالج خلال دورة واحدة( أي بمقدار  1µs  إذا كان الكوارتز من نوع 4MHz)إلا تعليمات القفز (,GOTO ; CALL, RETURN   و DECFSZ (إذا تم القفز) ) فإنها تنفذ خلال دورتين للميقاتية أي بمقدار  2µs   أي أن التعليمة DECFSZ تنفذ خلال (دورة أو دورتين)    

برنامج فرعي للتأجيل

عدد الدورات

زمن التأجيل   t(µs)

call tempo

movlw   0xff

movwf   retard

boucle

nop

nop

decfsz  retard

goto   boucle

return

2

1

1

 

1

1

1او2

2

2

2

1

1

 

(N) x 1

(N) x 1

(N-1) x 1+2

(N-1) x 2

2

2

1

1

 

255

255

256

254x2

2

 

t = 1280 µs

- أكمل الجدول التالي

 

 

 

 

 

 

 

 

 

 

 

ملاحظة

التعليمة nop إذا كانت ليست بداخل الحلقة  فإنها تعاد 1 مرة فقط وليس N x 1 مرة كما هو في الجدول السابق

التعليمة decfsz تعاد 1 مرة إذا لم يتم القفز ومرتان  إذا تم القفز

مدة التأجيل تكون أقصى إذا كان '255'd N=  

t = t (movlw 0xff)+t (movwf  retard)+ t(nop)+ t(nop)+ t(decfsz  retard)+ t(goto)       

         t=1+1+255+255+255+ 508= 1275µS

بإضافة التعليمة  return و call أي  2 +2  تصبح مدة التأجيل=1.279ms ≈1.2ms   t=1279µs

·        بطريقة أخرى مدة التأجيل تحسب

t = t(movlw)+ t(movwf  )+ t(nop)+ (N-1)[t( nop+nop)+ t(decfsz(1)  )+ t(goto)]+ t(nop)+ t(decfsz(2)

عدد الدورات داخل الحلقة بدون goto+ ]عدد الدورات داخل الحلقة (N-1)[+  عدد الدورات خارج الحلقة  t =

 

 t = (1)+ (1)+ (1)+ (254)[(1+1)+ (1)+ (2)]+ (1)+ (2 )     

t = 3+ (254)[5]+ 3=1275 µs    

 

بإضافة التعليمة  return و call أي  2 +2  تصبح مدة التأجيل=1.28ms   t=1280µs

مثال

-         احسب مدة التأجيل للبرنامج الفرعي التالي                     - احسب مدة التأجيل للبرنامج الفرعي التالي       

call       tempo              

tempo

            movlw  d'249'  

            movwf  cmpt1                          

boucle1

            nop                                                      

            decfsz   cmpt1 , f                                 

            goto      boucle1                                   

            return 

                   

t=1 +1+(1+1+2)x248 + (1+2)x1 = 997 µs   








tempo

     movlw 0xF9

     movwf compt

     nop

boucle

    nop

   decfsz compt,1

   goto boucle

   return


Ncy=3+(1+1+2)248+(1+2)+2=1000 cy
t =1000 x1µs=1ms

 

        


 

 ملاحظة:

بعد كتابة البرنامج يمكن تحميله على pic  غلى احد البرامج السابقة الذكر ومحاكة الدارة، كما يمكن تحميله على دارة حقيقية باستعمال دارة وسيطة تدعى Programmateur

 

 




 

1.     سجل ضبط الخيارات:  OPTION_REG 


هو يستعمل للتحكم في عدة وحدات مثل مؤقت كل الحراسة WDT، والمؤقت المعزول TMR 0، وقاسم التواتر prescaler، وغيرها

 



· RBPU: تفعيل مقاومة ضمان القيمة 1 الداخلية

 ( 0: المقاومة مفعلة، 1: المقاومة غير مفعلة)






·INTEDG: اختيار نوع الجبهة بالنسبة للمداخل في المرفأPORT B

(0: المداخل تعمل بالجبهة النازلة،  1: المداخل تعمل بالجهة الصاعدة)



·       T0CS: اختيار نوع الساعة (المذبذب) بالنسبة للمؤقت

TMR0

( 0: مذبذب داخلي،  1: مذبذب خارجي (كوارتز)


·T0SE: اختيار نوع الجبهة بالنسبة للمؤقت TMR0

(0: المداخل تعمل بالجبهة النازلة،  1: المداخل تعمل بالجهة الصاعدة)


·       PSA:  إسناد قاسم التردد

( 0: يسند قاسم التردد إلى TMR0 ، 1: يسند قاسم التردد إلى WDT)

 



PS0 ,PS1, PS2 : معاملات قاسم التردد ، وهو يعتمد كذلك نوع المتعامل WDT أو TMR0 حسب الجدول التالي





                    اشارة المرور  باستعمال الميكرومراقب 




كتابة كلمة '' كهرباء''' باستعمال الميكرومراقب و التلاعب بها





تحكم في محرك خطوة خطوة باستعمال الميكرومراقب





جانب معرض الهندسة الكهربائية يوضح بعض الأعمال باستعمال الميكرومراقب للأستاذ  لحسن عبد الصمد






****  مدونة الأستاذ حمدي شريف محمد ****

روابط تحميل الدرس

وثيقة التلميذ

تحميل على شكل  word      من     هنا         

تحميل على شكل  pdf       من     هنا                  

وثيقة الأستاذ

تحميل على شكل  word      من    هنا            

تحميل على شكل  pdf       من     هنا         

 

ملف العرض PowerPoint   من   هنا


برنامج PIKIT2  لرفع البرنامج على الميكرومراقب     من   هنا 


تمارين تطبيقية حول الميكرومراقب 


ملخص الدرس للأستاذ حمدي شريف محمد  


كتاب رائع بشرح مفصل للميكرومراقب          

 

      كتاب المعطيات DATA BOOK للميكرومراقب نتوع  PIC 16F628



 

إذا أعجبك الدرس و كنت تريد شكري شارك الدرس مع أصدقائك في مختلف مواقع التواصل الاجتماعي

 

***************  مدونة الأستاذ حمدي شريف محمد ****************

 

طريقة التحميل من الموقع 



https://www.youtube.com/watch?v=tniDadBMlfY&t=2s



تعليقات