18
وى : ت س م ل ا3 ر ت م حك ت ل ا ة ف ي ظع : و و ض و م ل ا! : ه ك ة% ب ع( ش ل ا ل ك( ش ى عل ة% ج م ر% مب ل ا ة ب ق ط ن م ل ا الدارات: % ب ق را م رو ك ي م لا( ة% ج م د ي م دارة( PIC16f84A : ى سم الدرا عا ل ا11/12 ا: ة ب ل كا( شL لإ فP ئ ا وظ ل ا ار% ح نL اV ن مك ي ة ب ق ط ن م ل و ا ة ب[ ب سا ح ل ا. ة ب ق ط ن م وP ا ة ب ل( ث ما ي ة% ج م د ي م دارات واسطة% ب د و ق مع ى ن ق ي ل ر ا ص ن لع ح ا% ب ص ي دما ي عV u ن لك% ب طل ن ب ة% ج ل عا م ار% ح نL ا رة ب( ث ك ومات ل ع م رعة س% ب و، ورى ر لص اV ن م ح% ب ص ي مال ع ي س ا ر( كبP ا% ث ر مب ت ب ر ص ا ي ع ل م ع ي س ب ا هد ل ات% ي طل ن م ل ة ا ع هد م ل م عا يل ل ة ي ز ه ا% و ج درة قu. % ب ق را م رو ك ي م ل ا. ى ع ا ي ص ل ط ا ن ح م ل اV ن م ار( دث الإث% ء ث ى( ش ق ء ى( س تP دا% ث وطة% ب ر م ل ا ة ب% ج و ل و ت ك ي ل اV نL ا ق ق% ت س ى ما لL ا ة اف ضL الإ% ث: ف ئ ز ع تV ح ل عا م رو ك ي م ل اV ن م ور مط د و دث% ل ج ي% ج و ه% u ب ق را م رو ك ي م ل ا( ب ي جV ح ل عا م ل ا ات ق ح مل ع ي م% جV نP اu)... ح ل ، ا لإت% ح س، رات ك ا د( V ن م و واجدة جة ن ر( ش ى ف ها ع ض م و ت. دة ق مع ب س لي و رة ب غ ض و طة نس% بV ون ك ث% ب ق را م رو ك ي م ى عل وى ت ح ن ء دارة ا ي% ب ا ي ه ركة( س ل ا% اص ث ج د الدراسة ي ق زوح مط ل ر ا ص ن لع اMICROCHIP و: ه لإ وP اPIC16F84A . u مةل ك ل اPIC كار ت% ب اV ن م لة% ح س لإمة ع ى هMICROCHIP، 16 وسط ل ا لةP عاث ل اV ن م ر ص ن لع اV نP ا ى عن ت ى( Mid-range:14bit ) F : V ن م لة م ع ي س م ل ا رة ك ا الد وع بFlash. A84 u. ر ص ن لع ل ى ف ت ز ع ي ل م ا ق ر ل و ا ه: 1 - 1 - 1 - 1 - 1 - 1 - % ب ق را م رو ك ي مل ل ة اعدي ق ل ا لة ك ت ه ل اPIC16F84A : 1-1 % ب ق را م رو ك ي م ل ل ا% ج رP د ا حدث نPIC16F84A : - ل:% ج رP الإRA0, RA1, RA2, RA3, & RA4 ¯ د اق ي مV ن ع رة% عبPORTA . - ل% ج ر ل ا: MCLR ل: ي ع( ش لي ا عادةL ل ا% جP اV ن م ل م ع يس ب ل ج مدRESET . - V SS وV DD ( ة ي د ع ي ل ا ى ل% ج ر% ب ي ب ر لب ى ا عل ما ه5V . لة ي لك و ا) -1- % ب ق را م رو ك ي م ل ا-

Www.kutub.info 10213

Embed Size (px)

Citation preview

Page 1: Www.kutub.info 10213

الموضوع : وظيفة التحكم ت ر3المستوى :

الشعبة : هــ كالدارات المنطقية المبرمجة على شكل

PIC16f84A)دارة مندمجة )الميكرومراقب: 11/12العام الدراسي :

إلشكالية :ا لكن عندما يصبح العنصر  بواسطة دارات مندمجة تماثلية أو منطقية. الحسابية و المنطقيةيمكن إنجاز الوظائف

عناصر تتميز بأكثر استعماليصبح من الضروري ، و بسرعةإنجاز معالجة معلومات كثيرة يتطلب التقني معقد و الميكرومراقب.قدرة و جاهزية للتعامل مع هذه المتطلبات، لهذا نستعمل

باإلضافة إلى ما سبق فإن التكنولوجية المربوطة بدأت شيء فشيء باالندثار من المحيط الصناعي.

تعريف: )ذاكرات، سجالت، الخ...(أن جميع ملحقات المعالجحيث الميكرومراقب هو جيل جديد و مطور من الميكرومعالج

تم وضعها في شريحة واحدة ومن هنا بناء دارة تحتوي على ميكرومراقب تكون بسيطة وصغيرة وليست معقدة. .PIC16F84A أال و هو:MICROCHIPالعنصر المطروح قيد الدراسة خاص بالشركة

-Mid )ى تعني أن العنصر من العائلة الوسطMICROCHIP، 16 هي عالمة سجلة من ابتكار PICالكلمة range:14bit )F: الذاكرة المستعملة من نوعFlash. A84.هو الرقم التعريفي للعنصر :

1-1-1-1-1-1-1-1-1-1-1-1-

: PIC16F84A الهيكلة القاعدية للميكرومراقب

:PIC16F84A تحديد أرجل الميكرومراقب 1-1.PORTA عبرة عن منافذ RA0, RA1, RA2, RA3, & RA4 األرجل:- .RESETمدخل يستعمل من أجل إعادة التشغيل: MCLR :الرجل--VSS و VDD( 5 هما على الترتيب رجلي التغذيةV.و الكتلة )-OSC1/CLKIN و OSC2/CLKOUT كريستال أو خلية( هما عبارة عن رجلي توصيل دارة المذبذب الخارجيRC.) كمدخل RB0/INT المنفذ ل، كم يمكن استعماPORTB عبرة عن منافذ RB0/INT, RB1,........., RB7 األرجل:-

(.Interruptionللمقاطعة )

. PIC16 (Mid-range )لعائلة الوسطىبا الخاص ة األساسي نموذجي للمكونات يبين المخطط ال التاليالشكل

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

Page 2: Www.kutub.info 10213

:يتكون الميكرومراقب أساسا من العناصر التالية.UAL 8 bit : الحسابية و المنطقيةوحدة ال-.W 8 bitسجل العمل : -.de 14 bit FLASH 1k mots من نوع:ذاكرة البرنامج-.bit 14عداد البرنامج: - مستويات.8مكدس ذو -.bit 14سجل التعليمة: - لالستعمال العام ، و هيoctet 68باإلضافة إلى موقع به (SFRتحتوي على السجالت الخاصة ) RAMذاكرة: -

(.bank1 و  bank0منفصلة إلى جزئين ) جد مفيدة للكتابة و القراءة. حيث أنها ال تفقد محتواها بانقطاع التغذية فهي ، EEPROM (octet 64)ذاكرة: -

من أجل االحتفاظ بالمعطيات الدائمة..bit 8ميقاتية /عداد ذو -.(PortB , PortAمنافذ دخول أو خروج )-إشارة ساعة داخاية.-

:ذاكرة البرنامج عداد البرنامج و المكدس و 1-2. و أ EPROM( بعنونة حيز ذاكرة البرنامج سواء أكانت ذاكرةprogram counter) يقوم عداد البرنامج

Flash/EEPROM 13 .عداد البرنامج في هذه العائلة هو سجل طوله و bits

قائمة شكلمن الميكرومراقب تنفيذه. البرنامج يكون على يتم تحميل ذاكرة البرنامج بكود ) شفرة ( البرنامج المطلوب كمؤشر لذاكرة البرنامج بحفظ عنوان التعليمة التالية التي عليها الدور في التنفيذ أي أنه عمل من التعليمات ويقوم عداد

أو حدوث مقاطعة كمايرعفعند تنفيذ برنامج البرنامج ويمكن لقيمة عداد البرنامج أن تنتقل إلى المكدس ويحدث ذلك الميكرومراقب يمكنه ومن ثم فإن bit-13 عداد البرنامج ذو RETLW .و RETFIE وRETURN وCALL في تعليمات

. 1FFFh إلى 0000h نظريا العنونة من

مرة ) عند متجه أو شعاع البداية (. عند بدء تشغيل البرنامج ألول ( reset vector أول موقع في ذاكرة البرنامج يسمى فإن أول موقع سوف يشير إليه هويلابالت و 0000 ) توصيل التغذية مثال ( فإن عداد البرنامج يوضع على الصفر )تصفير

( reset vector و .) له في هذا الموقع. من ثم فعلى المبرمج أن يضع أول تعليمة متجه البداية

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

ذاكرةالبرنامج

عدادالبرنامج

RAM سجالت

سجلWالعمل

توليد اشارةالساعة

فك الشفرة

و

التعليمة سجل

مكدس

مكدس

ميقاتيه/

عداد

منافذ خ/ د

عناصر أخرى

محيطة

Page 3: Www.kutub.info 10213

: PIC 16F84Aتنظيم ذاكرة الميكرومراقب -2

: FLASH ذاكرة البرنامج 2-1 الصفر ويتحتوي على أوامر وتعليمات البرنامج وأيضا مؤشر الوضع ف

. INTERRUPTIONالمقاطعة مؤشر

في الحاالت التي يكون فيها:

-RESET Ü الـميكرومراقب يبدأ من جديد من الموضع 0000h

. الصفريمؤشر الوضع ف و يسمى

-INTERRUPTION Ü الـميكرومراقب يذهب إلى الموضع 0004h مؤشر المقاطعةو يسمى .

:RAMالذاكرة 2-2 بايت للمعطيات وعلى جميع السجالت الالزمة68تحتوي على

استعمال الملحقات الداخلية والمنافذ. لتسيير النظام وBank و  Bank0و كما نالحظ فهي مرتبة على شكل منطقتين )

1.)

سجالتال( خاص بbit 8ذو )موقع 24 من الجهة العلويةتتكون إلى00h ذات العناوين من BANK 0 صفحة ي منها ف12، الخاصة

0Bh صفحة ي ف12 و BANK 1 80 ذات العناوين منh 8 إلىBh.

4Fh إلى 0Ch خانة معنونة من 68 من الجهة السفليةتتكون كما و هي مندمجة في الصفحتين. الستعمال العام،وتدعى سجالت ا

المساحة المتبقية باللون الرمادي غير مستعملة.

ذاكرة المعطيات : 2-3 3F إلى 00 بايت معنونة من 64 ذات EEPROMوهي من نوع

التي ال يراد فقدانها بانقطاع التغذية. تخزن بها المعطيات

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

Page 4: Www.kutub.info 10213

أهم السجالت األساسية.-3 (:Status Register سجل الحالة )3-1

. 0 مثبتان في ( IRPوRP1 ) 6 و 7البت -(.Bank1 ; Bank0 ) 1 و 0( يستعمل لالنتقال من و إلى الكومتين RP0 )5البت - .SLEEP و CLRWDTعند توصيل التغذية أو عن طريق التعليمتين 1: خانة المهلة الزمنية و =(T0) 4البت - .CLRWDT عند توصيل التغذية أو عن طريق التعليمة 1 : خانة انخفاض الطاقة و =(PD )3البت - إذا لم تكن كذلك.0، و = 0 عندما تكون نتيجة عملية حسابية أو منطقية تساوي 1، و =2البت - عدا0( عند إجراء عمليات الجمع و الطرح و =8 إذا نتج تجاوز للخانة األكثر أهمية )1( خانة االحتفظ و =C )0البت -

ذلك. عدا ذلك.0 عند إجراء عمليات الجمع و الطرح و = 4 إذا نتج تجاوز للخانة 1خانة نصف االحتفاظ و = (DC)1البت -

(:PORTA( و سجل المنفذ )TRISA سجل التهيئة )3-2

، بحيث يبرمج كل بت كمدخل إذا )PORTA( A المنفذب الخاص اتجاه كل بت )خط( هو إعداد TRISAدور السجل .0 القيمة ي و مخرج إذا أعط1 القيمة يأعط

، كما هو موضح في الشكل الموالي:RAxفكل بت خاص به يمثل صورة المنفذ PORTA أم§ا السحل

بت فقط.5مالحظة: كل من هذان السجالن يحتوي عل (:PORTB( و سجل المنفذ )TRISB سجل التهيئة )3-3

، بحيث يبرمج كل بت كمدخل إذا )PORTB( B المنفذب الخاص اتجاه كل بت )خط( هو إعداد TRISBدور السجل .0 القيمة يمخرج إذا أعطك و 1 القيمة يأعط

، كما هو موضح في الشكل الموالي:RBxفكل بت خاص به يمثل صورة المنفذ PORTB أم§ا السحل

(.INTمقاطعة خارجية )كمدخل لتنفيذ 0يمكن استعمال البت

:(W Register سجل العمل )3-4

معظم إجراءات البرمجة. كوسيط يلجأ إليه في هذا السجل يستعمل

(:Configuration Register سجل اإلعدادات )3-5

يتم تحديد هذه العدادات عبر البرمجة كما سنرى ذلك من ذاكرة البرنامج خيث 2007hموقع سجل اإلعدادت ب العنوان الحقا.

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

Page 5: Www.kutub.info 10213

)المجمع(رالبرمجة بلغة األسمبل أساسيات-4

)الحل الوسط إيجادمشكلة البرمجة والتوافق )- 1 : التاليعلى النحومشكلة البرمجة ملخصة

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

الميكرومراقب ؟ كيف يمكن للمبرمج كتابة برامجيالفرق اللغو مع هذا .بهتماما ما يؤمر : هيو طرق تفرض نفسها لسد هذه الفجوة هناك ثالثة

.لغة اآللةاإلنسان أن يتعلم - 1 .مضى هذا ما كان يستخدمه المبرمجين فيما و

. يستطيع الميكرومراقب من قراءتها كل تعليمة بشفرة الكود الثنائية حتى يكتب بمشقة يستجيب مباشرة لحاجات وقدرات عرضة لألخطاء ولكن على األقل فان المبرمج وممل و للغايةبطيء وهذا

.الميكرومراقب ع.المرتف استخدام لغات البرمجة ذات المستوى- 2

. الكومبيوتر( تعلم لغتنا )الميكرومراقب وهذا كما لو كنا بطريقة ما نطلب من في هذه الحالة نحتاج إلى برنامج ا.للغتن التعليمات بشكل يرتبط بإدراكنا في لغات البرمجة ذات المستوى المرتفع تكتب

اآللة الذي يفهمها برنامجنا إلى كود لغة يقوم بتحويل )interpreter مترجم)أو compiler مجمع آخر وهو إما.الميكرومراقب المبرمج ينفصل عن إمكانيات والنتيجة إن .متطورة البرمجة كما يكتب برامجفييستمتع المبرمج بوقته بهذه الطريقة

. من حيث استخدام الذاكرة وسرعة التنفيذ برنامج غير فعال نسبيا إلىيوقد يؤد الميكرومراقب

.هذا هو الوضع الوسط و .( )المجمعراستخدام لغة األسمبل- 3 تعبر بصفة مختصرة عن مدلول ( mnemonicة = تذكير )مفكرىحيث كل تعليمة من مجموعة التعليمات تعط

التعليمة. . مفكراتالتعليمات بالمستخدما عندئذ يكتب المبرمج البرنامج

بتعليماته ولكن على األقل فإن المبرمج كان يعمل مباشرة لو يجب على المبرمج التفكير بمستوى الميكرومراقب كما اآللة. أفضل من التعامل بشفرة لغةالستخدامها mnemonics لديه مفكرات

تعليمة.35 و هي بعدد 16F84Aقبل الشروع في البرمجة يجب أوال معرفة التعليمات الخاصة بالميكرومراقب

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

Page 6: Www.kutub.info 10213

أقسام:3 تنقسم إلى PIC16F84A نالحظ أن تعليمات الميكرومراقب MICROCHIPمن خالل وثائق الصانع

- Byte-orientedالتعليمات الموجهة مع محتوى ملف السجل F للسجل )بمعنى الخانات الثمانيةبكاملهbyte=8

bit.)

- Bit-orientedالتعليمات الموجهة مع محتوى خانة واحدة لملف السجلF 8)قراءة أو كتابة ألحد البت من بين

بت(.

- Literal and Control( التعليمات على شكل كلمة مباشرةk متكونة من )بت، باإلضافة إلى تعليمات8

التحكم.

35 تعليمة من ال رى أن الجدول مقسم إلى ستة أعمدة وكلنأن PIC 16 للعائلة اآلن إلى مجموعة التعليمات نتحول .واحد سطرفيتوجد تعليمة

:األولالعمود الذي تحدد نوع المعامل التيالكود( ) ومعها الشفرة mnemonic) مفكرة ) سميناه شكلالفعلييعطى التعليمة بشكلها

(. operand يسمى.)عمل عليهنس: هيو يوجد أربع أنواع من شفرات هذا المعامل

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

Page 7: Www.kutub.info 10213

ن من السبع§يمكن أن نكو) خانات7البيانات وهو عدد مكون من ذاكرةفي موقع أي يوتعن file ملف أي f المعامل• . ملف-سجل 128 إجمالي يكون سجل ملف من أي عدد ( 128خانات

3)يمكن أن نكون من خانات3داخل ملف محدد وهو عدد من والمطلوب البحث عنها في bit خانة أي b المعامل• .(خانات 8 إجماليأي تكون خانة من ، أعداد8خانات

ي نكون من خانة واحدة عددين فهأنيمكن ( )bit-1 ) الهدف )أو المقصود( وهو خانة واحدة فقط ويعنى d المعامل• .1أو 0 إما أن تكون

خانة11بيانات ومن خانات إذا كان يعبر عن8 من مكون عدد وهو literal قيمة ثابتة محددة حرفيا ويعنى k المعامل• .عنوان إذا كان يعبر عن

. التعليمة (يلخص عمل )وصف لوظيفة :العمود الثانى

: العمود الثالث .التنفيذ التعليمة فيتأخذهايبين عدد دورات التعليمة التي

:العمود الرابع برنامج وهذا هو الكود الذي ينتجه خانة14والمكون من لكل تعليمة opcode المسمى و العملية (يعطى شفرة )كود

من المفيد مالحظة شفرات المعامالت واآللة إلى شفرة لغة المجمع األسمبلر عندما يحول البرنامج من شفرة لغةoperand العملية كود في وكيفية تضمينها بعاليةالمذكورة.

: العمود الخامس . ستتأثر بالتعليمة Status في سجل الحالة يبين أي الخانات

لنتناول اآلن بعض التعليمات من وثائق الصانع على سبيل المثال و التي سنستغلها في برمجة الميكرومراقب:

: ظةاحمل(. الحروف ) كبير أم صغير ليست حساسة لنوعالمجمعالبرمجة بلغة

clrw : التعليمة أي clear بكلمة تذكرنا clrw أن : mnemonic المفكرة صفر ) ومعنى شكل W السجل هذه التعليمة تجعل قيمة

ا.به يتم تحديد معامل ال وهذا النوع من التعليمات W بالسجل يذكرنا W الحرف و مسح أو محو نظرا ألن نتيجة هذه التعليمة و بالتعليمةتتأثرالحالة سوف في سجل Z العمود الخامس يخبرنا بأن خانة الصفر و

. أخرى من سجل الحالةةال تتأثر أية خان. :  1 دائما تكون Z فان دائماصفر

clrf f : التعليمة الذيالمبرمج هو , f له بالرمز نرمز الذي موقع من مواقع الذاكرة وفيهذه التعليمة تمسح ) تصفر( القيمة الموجودة

f . قيمة يحدد . كما سبق ستتأثرفي سجل الحالة Z الصفر خانة مرة ثانية ألن النتيجة هي صفر فإن

addwf f,d : التعليمة المبرمج هو و , f بالحرف الذاكرة الذي يرمز له إلى محتويات موقع W السجل هذه التعليمة تضيف )تجمع( محتويات

f .قيمة الذي يحدد. الهدف d خانة المعامل هناك اختيار في مكان وضع النتيجة وهذا يتحدد بقيمة

جميع خانات شفرة الحالة الثالثة بسجل الحالة سوف الجمع( فإن كنتيجة لعملية) قيم مختلفةتأخذنظرا ألن النتيجة قد و(. DC الحمل وخانة نصف C الحمل وخانة Z خانة الصفر( تتاثر بالتعليمة

bcf f,b : التعليمة . والموقع يحدد بمعرفة المبرمج ذاكرة وكل من الخانة في موقع bit واحدة هذه التعليمة تمسح )تصفر( خانة

. خانات في موقع الذاكرةالثمانيخانة من لتحديد7 الى 0قيمةمن ياخذ b الخانة رقم . الذاكرة صفرا التعليمة تجعل موقع نتيجة ال يتاثر أي علم من أعالم سجل الحالة حتى لو تخيلنا أن

addlw k : التعليمة تحديدها إلى والتي يجب على المبرمج k هي قيمته والذي literal حرفيا هذه التعليمة تضيف )تجمع( قيمة ثابت محدد

W القيمة المحفوظة في السجل . هنا اختيار فال يوجد W والنتيجة تحفظ في السجل

.بهذه التعليمة تتأثرجميع خانات الحالة بسجل الحالة فإن addwf وكما في التعليمة

PIC 16F84 الميكرومراقب Assemblerهيكلة برنامج بلغة مجمع -5 و اإلعدادات:معلومات ال5-1

هذا الجزء من البرنامج خاص بالتعريف بهدف البرنامج و كذا صاحبه و تاريخ انجازه الخ...

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

Page 8: Www.kutub.info 10213

¶ؤخذ بعين االعتبار عند تحويل البرنامج )أي ال مالحظة: كل ما هو مكتوب بعد الفاصلة المنقوطة يعتبر من التعليقات و ال ييحول إلى لغة اآللة(.

***************************************************************************; ; جمع م لبرمجة الميكرومراقب بلغة المثالهذا البرنامج عبارة عن

;;*************************************************************************** زر ضاغط باستعمال ثنائي ضوئياسم البرنامج : التحكم في ; ................. : التاريخ ;;;***************************************************************************

التعريف بالميكرومراقب المستعمل ضروري للبرنامج الذي سيحول لغة المجمع إلى للغة اآللة و ذلك يتم عن (. LIST لغة المجمع )(directive)طريق موجه

،)كما يمكن إدراج ملف إضافي تعرف به مختلف الثوابت و االرفاقات ) لتفادي كثافة البرنامج المكتوب

#include >p16F84A.inc <الموجه:

اإلعدادات تهيئة كلمة Configuration Word settings

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

الكلمات( سواء عن طريقكباقي ) إليهاالبرنامج ولكن ال يمكن الوصول حيث أنها تكون جزء من األخرى .include معاني هذه الكلمات موجودة بالملف . حالة تشغيلفيطالما أن البرنامج طريق آخر أيالبرنامج أو

و هذا تفسير البعض منها.

; _CP_ON Protection  Code: ON : )) الميكرومراقبىمحتو ال يمكن قراءة; _CP_OFF Protection Code: OFF; _PWRTE_ON Timer reset on power on: operational عند توصيل الطاقة في الخدمةالمؤقت ( reset )

; _PWRTE_OFF Timer reset: out of operation; _WDT_ON Watch-dog: operational) ) الحراسة في الخدمةتمؤق; _WDT_OFF Watch-dog: out of operation; _LP_OSC Low speed quartz oscillator ) بسرعة عالية الكوارتز مذبذب ( ; _XT_OSC Medium speed quartz oscillator ; _HS_OSC High speed quartz oscillator ; _RC_OSC RC oscillator (RC) بخلية مذبذب

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

LIST p=16F84A الميكرومراقببتعريف ;

#include >p16f84a.inc> تعريف الثوابت الخاصة بالميكرومراقب ;

_CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC ببعض تعريف مالنظا ;خصائص

***************************************************************************

في هذه الحالة فإن اإلعدادات هي كالتالي: ذومذبذبو ال، عند توصيل الطاقة خارج الخدمة المؤقتresetشفرة الحماية فع§الة، مؤقت الحراسة خارج الخدمة،

المستعمل. متوسطة هوبسرعة الكوارتز

الموجهORG 0 متبوع بعنوان، يحدد عنوان تنفيذ التعليمة الموالية و التي يجب أن تكونx0 ألن عند reset فإن .0البرنامج يعود إلى العنوان

التعليمة GOTO تأمر البرنامج بالقفز إلى عنوان الكلمة init

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

Page 9: Www.kutub.info 10213

;***************************** reset إعادة التشغيل بعد ***************************

ORG 0x000 ; reset بعداالنطالقعنوان GOTO init

***************************************************************************

تهيئة الميكرومراقب 5-2initialization التهيئة وتسمىفي هذه المرحلة بتنفيذ تعليمات البرنامج يبدأ

;***************************************************************************;Initialisation;***************************************************************************

init

BSF STATUS,5 ; 1بنك الإلى للذهاب لسجل الحالة 5 في البت 1ضع و MOVLW 0x00 ; W في سجل العمل00000000ضع و MOVWF TRISB خروج لبرمجته كمنفذ ; B ضع محتوى سجل العمل فيو المنفذ MOVLW 0x1F ; W في سجل العمل 11111 ضعو MOVWF TRISA A لبرمجته كمنفذ دخول; في ضع محتوى سجل العملو المنفذ BCF STATUS,5 ; 0بنك الإلى للعودة لسجل الحالة 5في البت 0 نضع GOTO start البرنامج الرئيسيإلىقفز ا ;

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

البرنامج الرئيسي5-3.نفسه يالفعل البرنامج هو وينصل إلى الجزء النهائ

;*************************************************************************** البرنامج الرئيسي ;;***************************************************************************

startbtfss PORTA , 2 ; 1واقفز إذا كان يساوي RA2افحص المنفذ bsf PORTB , 2 ; LED إذن تشتعل RB2 على 1 ضع

btfsc PORTA , 2 ; 0و اقفز إذا كان يساوي RA2افحص المنفذbcf PORTB , 2 ; LED إذن تنطفئ RB2 على 0 ضع

goto start ; start ارجع إلى

END ; موجه نهاية البرنامج

;*************************************************************************** في المستوى RA2 و يجري قفز على التعليمة المولية مادام btfss عبر التعليمة RA2فحص المدخل البرنامج ي و تجري قفز على التعليمة المولية إذا كان المستوىRA2تفحص بدورها المدخل btfsc التعليمة .1المنطقي )الثائي الضوئي يبقى منطفئ(، ثم بعد ذلك الرجوع RB2 على المخرج 0 . و إال§ تضع start. ثم يرجع إلى 0المنطقي

.startإلى

أي( bsf PORTB , 2) فيمر البرنامج إلى التعليمة الموالية له مباشرة0 القيمة RA2يأخذ الزرضغط علىو ريثما ن من جديد، و ستمرRA2 و بالتالي يشتعل الثنائي الضوئي. ثم يعود البرنامج لفحص المدخل RB2 على المنفذ 1وضع

تنفيذ البرنامج على هذا النحو ..ENDو ينتهي البرنامج من خالل الموجه

أنشطة:-6

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

Page 10: Www.kutub.info 10213

أنجز البرامج بلغة المجمع حسب الدارة المبينة في الشكل التالي:

NIKLC/1CSO61

TNI/0BR6

1BR7

2BR8

3BR9

4BR01

5BR11

6BR21

7BR31

0AR71

1AR81

2AR1

3AR2

IKC0T/4AR3

TUOKLC/2CSO51

RLCM4

1U

A48F61CIP

1X

1C

Fp51

2C

Fp51

DDV

3R

033

4R

033

كل ضغط متجدد على .SW بواسطة زر ضاغط LEDالتحكم في إشعال و إطفاء ثنائي ضوئي :1 المشروع 6-1SWينتج عنه قلب حالة الثنائي الضوئي .

ينتج عنه إشعالSW. الضغط على SW بواسطة زر ضاغط LEDالتحكم في إشعال ثنائي ضوئي :2 المشروع 6-2. السابق( الشكلنفس( T= 5 sالثنائي الضوئي لمدة معينة

.RETURN و CALL يجب انجاز برنامج فرعي للتأجيل باستعمال التعليمتان مالحظة:

( Clignotant): الغم»ازة 3 المشروع 6-3 بصفة T’= 2s و إطفائه لمدة T= 2s لمدة معينة LED ينتج عنه إشعال الثنائي الضوئي SWزر ضاغط الضغط على

. السابق( الشكلنفس(مستمرة

;*********************************************************************; SOUS-ROUTINE DE TEMPORISATION *;*********************************************************************;--------------------------------------------------------------------------------------------------------; Cette sous-routine introduit un retard de 500.000 µs.; Elle ne reçoit aucun paramètre et n'en retourne aucun;--------------------------------------------------------------------------------------------------------tempo

movlw 2 ; pour 2 bouclesmovwfcmpt3 ; initialiser compteur3

boucle3clrf cmpt2 ; effacer compteur2

boucle2clrf cmpt1 ; effacer compteur1

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

Page 11: Www.kutub.info 10213

boucle1nop ; perdre 1 cycle *256 *256 *2decfsz cmpt1 , f ; décrémenter compteur1goto boucle1 ; si pas 0, bouclerdecfsz cmpt2 , f ; si 0, décrémenter compteur 2goto boucle2 ; si cmpt2 pas 0, recommencer boucle1decfsz cmpt3 , f ; si 0, décrémenter compteur 3goto boucle3 ; si cmpt3 pas 0, recommencer boucle2

return ; retour de la sous-routine

2تمرين

b) Fichier à extension .asm;Titre du programme : PROG1;Ce programme allume la LED branchée sur la;sortie RB0 (bit 0 du Port B) et la laisse;indéfiniment allumée.;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; DIRECTIVES;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++PROCESSOR 16F84RADIX HEXINCLUDE « P16F84.INC »__CONFIG 3FF1;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; VECTEUR de RESET;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ORG 00 ;Vecteur de Reset.GOTO START ;Renvoi à l’adresse EEPROM 05 (hexa);++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; INITIALISATIONS;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++START ORG 05 ;Saut introduit pour passer au-dessus;des 5 premières adresses de la mémoire;EEPROM (00 – 01 – 02 – 03 et 04).CLRF PORTB ;Initialise le Port B.BSF STATUS,RP0 ;Met à 1 (set) le bit 5 (RP0) du;registre d’état (STATUS).;Autrement dit : sélectionne la;page 1 du Register File (adresses;de 80 à 8B) dans laquelle se trouve;le Registre STATUS (à l’adresse 83).MOVLW b’00000000’ ;Met la valeur binaire 00000000 dans;le registre W, matérialisant ainsi notre;intention d’utiliser les 8 lignes du;Port B comme SORTIES.MOVWF TRISB ;Port B configuré, mais encore en;haute impédance (Trhee-state).BCF STATUS,RP0 ;Retour à la page 0 du Register File.

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

; PROGRAMME

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

Page 12: Www.kutub.info 10213

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++LOOP BSF PORTB,0 ;Allume la LED, car l’instruction; « BSF » met à 1 (set).;Dans le cas présent, elle met à 1 le;bit zéro du Port B (PORTB,0).GOTO LOOP ;Le programme se reboucle.;La LED reste indéfiniment allumée.END ;Fin du programme.

3تمرينb) Fichier à extension .asm;Titre du programme : PROG2;Ce programme fait clignoter indéfiniment la LED branchée sur la;sortie RB0 (bit 0 du Port B).;Le programme comporte une temporisation (DELAI) pour rendre;perceptibles les allumages et les extinctions de la LED, sinon les;transitions auraient lieu à très grande vitesse et notre oeil ne verrait;pas les clignotements.;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; DIRECTIVES;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++PROCESSOR 16F84RADIX HEXINCLUDE « P16F84.INC »__CONFIG 3FF1;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; DECLARATIONS DES VARIABLES;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++COMPT1 EQU 0C ;On met la variable COMPT1 à;l’adresse RAM 0C.COMPT2 EQU 0D ;On met la variable COMPT2 à;l’adresse RAM 0D.;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; VECTEUR DE RESET;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ORG 00 ;Vecteur de Reset.GOTO START ;Renvoi à l’adresse EEPROM 05 (hexa);++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; INITIALISATIONS;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++START ORG 05 ;Saut introduit intentionnellement pour faire;démarrer le programme à l’adresse EEPROM 05.CLRF PORTB ;Efface les 8 bits du Port B.BSF STATUS,RP0 ;Met à 1 (set) le bit 5 (RP0) du;registre d’état (STATUS).;Autrement dit : sélectionne la;page 1 du Register File (adresses;de 80 à 8B) dans laquelle se trouve;le Registre STATUS (à l’adresse 83).MOVLW b’00000000’ ;Met la valeur binaire 00000000 dans;le registre W, matérialisant ainsi notre

;intention d’utiliser les 8 lignes;Port B comme SORTIES.;La notation b’00000000’ indique que;la valeur 00000000 est à interpréter;en tant que chiffre binaire.

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

Page 13: Www.kutub.info 10213

MOVWF TRISB ;Port B configuré, mais encore en;haute impédance (Trhee-state).BCF STATUS,RP0 ;Retour à la page 0 du Register File.;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; PROGRAMME PRINCIPAL;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++MAIN BCF PORTB,0 ;LED éteinte car l’instruction; « BCF » met à 0 (clear).;Ici, elle met à 0 le bit 0 du;Port B (PORTB,0).CALL DELAI ;Appelle le sous-programme de;retard (DELAI).BSF PORTB,0 ;LED allumée, car l’instruction; « BSF » met à 1 (set).;Ici elle met à 1 le bit 0 du;Port B (PORTB,0).CALL DELAI ;On appelle à nouveau le;sous-programme de retard.GOTO MAIN ;Retour au programme principal.;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; SOUS-PROGRAMME de TEMPORISATION;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++DELAI DECFSZ COMPT1,1 ;Décrémente COMPT1et - s’il n’est pasGOTO DELAI ;à zéro - va à DELAIMOVLW .255 ;Charge la variable COMPT1 (adresseMOVWF COMPT1 ;RAM 0C) avec 255 (en décimal).DECFSZ COMPT2,1 ;Décrémente COMPT2, et s’il n’est pasGOTO DELAI ;à zéro, va à DELAIMOVLW .255 ;Recharge COMPT1 avec 255MOVWF COMPT1MOVLW .255 ;Recharge COMPT2 avec 255MOVWF COMPT2RETURN ;Fin du sous-programme DELAIEND ;Fin du programme.

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