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

الصفحات

الدارات المندمجة القابلة للبرمجة pic 16f 84 a

 الدارات المندمجة القابلة للبرمجة pic 16f 84 a





و لأن هذا الدرس طويل نوعا ما، سنظطر إلى تقسيمه إلى جزئين.

الجزء الأول في هذا الدرس سوف نتحدث الجان النظري و المكونات الداخلية و الخارجية للميكرومراقب،.

أما الجزء الثاني سوف نتحدث عن البرمجة و حساب زمن التأجيل.


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


        I.  تمهيد:

إن المتطلبات التكنولوجية الهادفة على للحصول على تحكم دقيق و سريع جدا في مساحات صغيرة أدى إلى اكتشاف الدارات المندمجة،  و لكن الدارات المندمجة التي تعرفنا عليها لحد الآن تقوم بعمليات معينة و محدود.

 في العام 1969م طلبت شركة Intel من بعض العلماء اليابانيين تصميم دارة مندمجة تقوم بعدة عمليات منطقية و حسابية، لكن ذلك كان صعب جدا في البداية و تم في الأخير إنتاج أول دارة مندمجة  تقوم 6000 عملية في الثانية ب 4 bits فقط أي سعة تخزين البرامج ضعيفة جدا و سميت هذه الدارة ب 4004  في العام 1971م.

لم يمضي وقت طويل حتى سارعت كبرى الشركات الاليكترونية في طلب المزيد من الدارات المندمجة القابلة للبرمجة ذات سرعة أكبر و سعة تخزين البرامج أكبر، و تمكنت شركة Zilog  في عام 1976 من إنتاج معالج ب 8bit وأسمته  Z80 و قد لاق رواجا كبيرا في ذلك الوقت.

و مع مرور الوقت تمكنت شركة MICROCHIP من إنتاج ميكرومراقب مدمج أي أنه يحتوي كل متطلبات العمل في دارة واحدة. و هو المستعمل حاليا في تسيير و مراقبة الأنظمة البسيطة مثل التلفاز، الغسالة، الهاتف النقال... الخ

pic 16f 84 a



        I.     الميكرو مراقب من نوع PIC  16F84  




1-    مواصفات الميكرومراقب PIC16F84 A   :


 تضم عائلة PIC ثلاث مجموعات وهي :

·        Base- Line   التي تستعمل تعليمة بـ 12 بيت .

·        Mide-Range   التي تستعمل تعليمة  بـ 14 بيت والتي ينتمي اليها PIC16F84.

·        High-End  التي تستعمل تعليمة بـ 16بيت

يعرف الميكرومراقب من خلال عناصر تسميته حيث:  

  PIC: 16F84a: جهازالتحكم في الأجهزة المحيطة

-         PIC : مراقب المحيط الخارجي

-         16 : تشير إلى فئة Mide – Range –

-         F   : ذاكرة من نوع FLASH  .

-          84 : النوع الخاص بالـ PIC   :

-         A : السرعة الأعظمية للكوارتز (تردد إشارة الساعة ) أي 20MHz .

·        فبإمكانه  أن يخزن  في ذاكرته برنامجا بـ 1024 تعليمة , وهي ذاكرة من نوع  ( FLASH)  EEPROM   أي  من الممكن الكتابة عليها ومحوها كهربائيا بلا حدود .

·        كما أنه ينتمي إلى فئة RISC . ( Reduce Instructions Set Computer )  أي أنه مكون بعدد تعليمات محدودة  حيث كلما قل عددها  كلما كان فك ترميزها  أسرع و أسهل  ومن ثم تنفيذها .

   الفرق بين  PIC 16F 84 A و PIC 16F 84  في الجدول التالي:



زمن المسح أو الكتابة

IDDmax

IDD

درجة حرارة الاستعمال

مجال توتر التغذية

تردد الاستعمال الاعظمي

النوع

20mS

 

45μA

15μA

-40oc..85 oc

2V-6V

10MHZ

PIC16F84

8mS

 

 45μA 

15μA

-40oc..85 oc

2V-5.5V

20MHZ

PIC16F84A

·        يتمتع بسرعة فائقة في تنفيذ التعليمات من رتبة 1 مليون تعليمة / ثانية .


الميكرومراقب


يتكون الميكرومراقب من 18 قدم  للربط الخارجي و هي

منقسمة إلى مايلي:

-  2 منافذ أو مرافئ ( Ports ) A وB تسمح للميكرومراقب بتبادل المعلومات مع الوسط الخارجي حيث يمكن برمجتها كمداخل أو كمخارج و هي:

  منفذ A: ﺑ 5 أبيات ( RA4…RA0 )

و منفذ B ﺑ 8  أبيات ( RB7…RB0 ) .

-         أقطاب التغذية          Vss=0V و VDD= 5V.






أطراف توصيلات الساعة OSC1 و OSC2 : تحددها دارة اهتزازية خارجية  ممكن أن تكون مقاومة مع مكثفة (دارة RC) أو ببساطة حجر الكريسطال Quartz (XT) الذي يمكن وصله كيفما  نشاء ( ليس له قطبية ) و من المستحسن ربط مكثفة ذات سعة (20-30)pF على طرفيه مع الكتلة لتفادي الضجيج  ( ضمان استقراره)  لأن الكوارتز يحدث تذبذب عند مرور التيار به




يتم تقسيم قاعدة الزمن إلى أربع فترات t1, t2, t3, t4 وهذه الأربع فترات تكوِّن دورة لتعليمة واحدة  وهى كالآتي: في الفترة t1 يتم استدعاء التعليمة التي عليها الدور في التنفيذ وفي الفترة من t2 إلى t3 يتم تحويل التعليمة إلى صورة مفهومة للميكرومراقب العملية تسمى Decoding ثم تنفيذها وأما في الفترة t4 يتم كتابة هذه التعليمة في السجل الخاص بها  (أنظر الشكل)


pic 16f 84a



زمن تنفيذ تعليمة  4 TOSC  T =

 

مثال:

- مذبذب من نوع  XT  كوارتز 20MHZ   فان كل تعليمة تنفذ خلال زمن قدره

4 TOSC =4/fOSC =4/20=0.0000002s= 200ns  T =

o    مذبذب من نوع XT  كوارتز 4MHZ(الأكثر استعمالا) فان كل تعليمة تنفذ خلال زمن قدره

 4 TOSC =4/fOSC =4/4=1μs  T =

نستنتج أن:

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


1.    البنية الداخلية


 

pic 16g 84a

-       ذاكرة البرنامج من نوع فلاش FLASH

سعتها 1K x 14 أي تحتوي على 1024 موقع متكون من 14 خانة تحمل تعليمات البرنامج المراد تطبيقه من طرف المعالج تحتفظ بمعلوماتها لمدة أربعين عاما ولو بعد انقطاع التيار ويمكن برمجتها كهربائيا دون اللجوء إلى الأشعة فوق البنفسجية.

ذاكرة 8k أي ذاكرة 8k bits = 1k octet

تتكون من1024 كلمة (1K)  وكل كلمة تتكون من14بت (Bit).




العناوين من0000h إلى03FFh مخصصة للميكرومراقب والبقية  من0005h إلى 03FFh مخصصة لتعليمات البرنامج

العنوان 0000h:بداية البرنامج.

و العنوان0004h:شعاع القطع.

 

تنبيه

h : يعني النظام السداسي عشر(hexadécimal)




- ينفذ برنامج المراقب من طرف عداد البرنامج  Compteur de Programme PC ( سجل يزداد محتواه آليا عند تنفيذ كل تعليمة البرنامج).

- تعاقب و تتابع تنفيذ البرنامج تضمنه الساعة أو الميقاتية Horloge  .

- دارة الإرجاع للصفر Reset التي تقوم بتهيئة PC في الموضع صفر.

- مفكك الترميز لفك ترميز التعليمات.

- منتخب معلومات Mux لتحويل المعلومات التفرعية إلى معلومات تسلسلية.

- تنفيذ التعليمات بواسطة الوحدة المنطقية و الحسابيةUAL  

- سجل الحالة STATUS يعطي معلومات حول نتائج العمليات كما يستعمل ايضا في العنونة.

- السجل FSR يستعمل في العنونة مباشرة و يراقب ناقل ( BUS ) العناوين.

- كل ناقل المعطيات يربط بالذاكرة RAM سعتها 68x8 أي تحتوي على 68 اوكتي.

- عند مناداة البرنامج الفرعي Sous Programme يجب تخزين عنوان محتوى عداد البرنامج في الذاكرة PILE

- المنافذ أو المرافئ ( A وB ) لبرمجتهما كمداخل أو كمخارج.

- ناقل المعطيات يربط بالذاكرة EEPROM سعتها 64x8 أي تحتوي على 64اوكتي.

- سجلات خاصة تسمح بمراقبة الكتابة في ذاكرة EEPROM و تأمينها.

- عداد مؤقت TMR 0 و سجل خاص بالمراقبة للحصول على مرجع زمني دقيق.

- سجل خاص لمراقبة الانقطاع .

- مؤقت الحراسة WATCH DOG بمثابة نظام يحمي البرنامج ضد الانقطاع. عبارة عن دارة مهتزة RC تهتز بصفة مستقلة داخليا و خارجيا بدور أدنى قدره ms18 و يمكن إسناد قاسم تواتر إليه يصل إلى القيمة 128 بواسطة سجل الخيارات للتحكم بدقة في الزمن. في حالة توقف تنفيذ البرنامج لسبب ما، سيوقف ويعيد تشغيل الميكرومراقب ومن ثم إعادة تنفيذ البرنامج مرة أخرى .

 

 

- من خلال ما سبق ما هي المكونات الموجودة بكثرة في ﺍﻟ PIC ؟

السجلات منظمة في ذاكرة RAM حيث طول كل سجل  8hأي 8أبيات (octet) من bit0 إلى bit7   

أغلب هذه السجلات في الذاكرة RAM قسم  منها في الصفحة0)  Bank0 (و القسم الأخر في الصفحة1 Bank1


البيك



 

Ø    أهم السجلات المستعملة في برمجة الميكرومراقب


1.    سجل الحالة STATUS

و هو يعتبر من أهم السجلات حيث يعطي دلالات متعددة عن نتائج العمليات الحسابية أو حالة التهيئة للميكرومراقب، كما يسمح باختيار الصفحة المستعملة في الذاكرة RAM من أجل الوصول إلى سجلات الوظائف الخاصة الأخرى.



C:البيت0 يشير إلى الاحتفاظ خلال عملية حسابية ويستعمل في عمليات الإزاحة يمين RRF، يسار RLF

DC: البيت1يأخذ القيمة 1 عندما يكون هناك تجاوز للرقم 9 في الخانات الأربعة الأولى الأقل أهمية ( يمكن توظيفه في ترميز BCD )

Z:البيت2 يأخذ القيمة 1 عندما تكون النتيجة لعملية حسابية أو منطقية معدومة

PD:البيت3 يأخذ القيمة 1 عند بداية التشغيل أو بتطبيق الأمر CLRWDT ( مسح مؤقت كلب الحراسة).

TO: البيت4 يشير إلى التجاوز في الزمن حيث يأخذ القيمة 1 عند بداية التشغيل أو بتطبيق أحد الأمرين CLRWDT، SLEEP (وضع الميكرومراقب في حالة سبات).

RP0:البيت 5 يستعمل لاختيار الصفحة في الذاكرة RAM (عنونة مباشرة) بحيث RP0=0 من أجل الصفحة 0

(  العنوان 00الى 7F )أي البنك 0 و RP0=1 من أجل الصفحة 1( العنوان 80 إلى FF ) أي البنك 1.

RP1، IRP غير مستعملين  في هذا النوع من الميكرومراقب، ويجب أن يأخذا القيمة 0.


1.     PORTA & PORTB :

 وهي سجلات الاتصال الخارجي بها 13 بيت(خط) من مداخل و مخارج 5 على المنفذ A  ) RA0…RA4 ) و8 على المنفذB ( RBO…RB7 )، تستعل في تسمية المداخل و المخارج.


2.     السجلان PORT A, PORT B 




3    السجلان& TRISB   TRISA : 


يعينان اتجاه كل بيت في المنفذين A&B بحيث يبرمج كل بيت(خط) كمدخل E إذا أعطي القيمة1 و كمخرج  Sإذا أعطي القيمة0



تنبيه

المرافئ x غير مستعملة يمكن برمجتها كمداخل أو كمخارج أي أخذها 1 أو 0




4     سجل العمل W : 


يستعمل كوسيط يلجأ إليه خاصة في العمليات الحسابية .

5     سجل الإعدادات المادية CONFIG_




                                    

Ø     إشكال

كيف يتلقى ( يفهم ) ﺍﻟ 16F84 PIC البرنامج لانجاز تطبيق ما ؟

بواسطة تعليمات Instructions و عددها 35.


.

الوصف

التعليمة

اجمع محتوى السجل W مع القيمة المباشرة k . المجموع يضع في

WADD Literal to W

ADDLW  k

اجمع محتوى السجل W مع محتوى السجل f.

إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

ADDWF  f,d

اطرح من محتوى السجل W القيمة المباشرة k . المجموع يضع في W

SUBLW  k

اطرح من محتوى السجل W محتوى السجل f.

إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

SUBWF   f,d

ضرب منطقي رقما رقما لمحتوى السجل W مع القيمة المباشرة k . المجموع يضع في W

ANDLW   k

ضرب منطقي رقما رقما لمحتوى السجل W مع محتوى السجل f.

إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

ANDWF  f,d

جمع منطقي رقما رقما لمحتوى السجل W مع القيمة المباشرة k . المجموع يضع في W

IORLW   k

جمع منطقي رقما رقما لمحتوى السجل W مع محتوى السجل f.

إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

IORWF   f,d

أو استبعادي بين محتوى السجل W والقيمة المباشرة k . المجموع يضع في W

XORLW  k

أو استبعادي لمحتوى السجل W مع محتوى السجل f.

إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

XORWF   f,d

مكمل محتوى السجل f. إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

COM  f,d

انقص محتوى السجل f ﺑ 1 .إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

DECF   f,d

زد محتوى السجل f ﺑ 1 .إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

INCF   f,d

دوران يسار لمحتوى السجل f .إذا كان d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

RLF  f,d

دوران يمين لمحتوى السجل f .إذا كان  d=0 النتيجة تخزن في W وإذا كانd=1 تخزن في  f

RRF  f,d

تبادل في محتوى السجل f . إذا كان  d=0 النتيجة تخزن في W واذا كانd=1 تخزن في  f

SWAPF   f,d

وضع في 0 البيت b للسجل f

BCF   f,d

وضع في 1 البيت b للسجل f

BSF   f,d

انسخ محتوى السجل f في السجل المحدد حسب d. إذا كان  d=0  السجل المحدد هوW وإذا كانd=1 فهوf

MOVF  f,d

اشحن مباشرة المعلومة k في السجل W

MOVLW   k

اشحن محتوى السجل W في السجل f

MOVWF   f

امسح محتوى السجل                                                                   fCleaR File

CLRF    f

امسح محتوى السجل  W

CLRW   

امسح محتوى مؤقت كلب الحراسة

CLRWDT

فراغ -لا توجد أي عملية

NOP

وضع  اﻟ μc في سبات

SLEEP

اذهب إلى عنوان معين

GOTO

اختبار البيت b للسجل f .قفز إذا كان             0   0  Bit Test File ,Skip if Clear

BTFSC    f,b

اختبار البيت b للسجل f .قفز إذا كان                   1     1Bit Test File ,Skip if Set

BTFSS    f,b

زيادة محتوى السجل f  ﺑ 1 مع القفز إذا كانت النتيجة معدومة .

إذا كان d=1 النتيجة تكون في f وإذا كان 0 تكون في W

INCFSZ

نقصان محتوى السجل f  ﺑ 1 مع القفز إذا كانت النتيجة معدومة

DECrement File,Skip if Zero

إذا كان d=1 النتيجة تكون في f وإذا كان 0 تكون في W

DECFSZ  f,d

مناداة لبرنامج فرعي

CALL

العودة إلى البرنامج  الرئيسي بعد انجاز برنامج فرعي

RETURN

تعتبر مثل RETURN مع تحميل السجل W بالقيمة المباشرة k

RETLW   k

العودة إلى البرنامج  الرئيسي بعد انجاز برنامج انقطاع

      RETurn From IntErrupt

RETFIE

 


تنبيه

L : Literal  كلمة من 8 أبيات ( 00 إلى FF )

 

فسر التعليمات التالية :

BCF STATUS,RP0 : ضع 0 في البيت RPO من السجل STATUS للذهاب إلى الصفحة 0 من الذاكرة RAM

BSF STATUS,RP0 : ضع 1 في البيت RPO من السجل STATUS للذهاب إلى الصفحة1 من الذاكرة RAM

BCF   LED : ضع في0 (أطفئ) الثنائية LED

BSF   LED : ضع في1 (أشعل) الثنائية LED


شاهد شرح مبسط للدرس




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

بقية الدرس و الأمثلة التطبيقية تجدونه  هنا 

او يمكنك تحميل الملفات أسفل المقال



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

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

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

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

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

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

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

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

 

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

 

 ملخص الدرس         من     هنا 


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


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


كتاب المعطيات DATA BOOK للميكرورمراقب من نوع PIC 16F628A الشبيه للميكرومراقب من نوع PIC 16F 84A   من  هنا 




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

 

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

 

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


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

تعليقات