الدارات المندمجة القابلة للبرمجة pic 16f 84 a
و لأن هذا الدرس طويل نوعا ما، سنظطر إلى تقسيمه إلى جزئين.
الجزء الأول في هذا الدرس سوف نتحدث الجان النظري و المكونات الداخلية و الخارجية للميكرومراقب،.
أما الجزء الثاني سوف نتحدث عن البرمجة و حساب زمن التأجيل.
---------------------------------------------------------------
I. تمهيد:
إن المتطلبات التكنولوجية الهادفة على
للحصول على تحكم دقيق و سريع جدا في مساحات صغيرة أدى إلى اكتشاف الدارات
المندمجة، و لكن الدارات المندمجة التي تعرفنا عليها لحد الآن تقوم بعمليات معينة و
محدود.
في العام 1969م طلبت شركة Intel من بعض العلماء اليابانيين تصميم
دارة مندمجة تقوم بعدة عمليات منطقية و حسابية، لكن ذلك كان صعب جدا في البداية و
تم في الأخير إنتاج أول دارة مندمجة تقوم 6000 عملية في الثانية ب 4 bits فقط أي سعة تخزين البرامج ضعيفة جدا و سميت
هذه الدارة ب 4004 في العام 1971م.
لم يمضي وقت
طويل حتى سارعت كبرى الشركات الاليكترونية في طلب المزيد من الدارات المندمجة
القابلة للبرمجة ذات سرعة أكبر و سعة تخزين البرامج أكبر، و تمكنت شركة Zilog في عام 1976 من إنتاج معالج ب 8bit وأسمته Z80 و قد لاق رواجا كبيرا في ذلك الوقت.
و مع مرور
الوقت تمكنت شركة MICROCHIP
من إنتاج ميكرومراقب مدمج أي أنه يحتوي كل متطلبات العمل في دارة واحدة. و هو
المستعمل حاليا في تسيير و مراقبة الأنظمة البسيطة مثل التلفاز، الغسالة، الهاتف
النقال... الخ
I. الميكرو مراقب من نوع PIC 16F84
1- مواصفات الميكرومراقب PIC16F84 A :
تضم عائلة PIC ثلاث
مجموعات وهي :
·
Base-
Line التي تستعمل تعليمة بـ 12 بيت .
·
Mide-Range التي تستعمل تعليمة بـ 14 بيت والتي ينتمي اليها PIC16F84.
· High-End التي تستعمل تعليمة بـ 16بيت
يعرف الميكرومراقب من خلال عناصر تسميته حيث:
PIC: 16F84a: جهازالتحكم في الأجهزة المحيطة
-
-
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 يتم كتابة هذه التعليمة في
السجل الخاص بها (أنظر الشكل)
زمن تنفيذ تعليمة 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. البنية الداخلية
-
ذاكرة البرنامج من نوع فلاش 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
تعليقات
إرسال تعليق