بسم الله الرحمن الرحيم
(1) المسجلات

يعتبر المسجل مكان بداخل المتحكم الدقيق حيث بامكانك الكتابه عليه او القراءه منه او كلاهما , فلنعتبر المسجل كقطعه من الورق

التى من خلالها يمكنك الإطلاع عليها و قراءة محتوياتها او الكتابه على هذه الورقة , الصوره التاليه توضح المسجلات التى يحويها

المتحكم الدقيق PIC16F84 لا تقلق إذا كنت لا تعلم عن هذه المسجلات شيء فهذه فقط لعرض عناوين هذه المسجلات داخل


المتحكم الدقيق , و كما ترون فى الصوره أن خريطة المسجلات تم قسمها إلى قسمين البنك 0 و البنك 1 او المنطقة صفر وواحد

حيث يستخدم البنك 1 لتعريف المتحكم ايا من المنافذ نحتاجها لكى تكون خرج و اى من المنافذ من المتحكم نحتاجها لتكون دخل

اما البنك 0 فهو يستخدم للتعامل مع البيانات, كمثال اذا كنا نريد ان نجعل احدى بتات المنفذ A عالى (خرج واحد رقمى) اذا فأولا

نقوم بالذهاب إلى البنك 1 لتوصيف هذا البت فى المنفذ A كخرج ثم نعود ثانية الى البنك 0 الخاص بالتعامل مع البيانات ثم نعطى

المتحكم امر بأخراج واحد بت الى هذا البت ليصبح عالى ,,,, و من اهم المسجلات التى سنقوم بالتعامل معها فى البنك 1 هى

STATUS , TRISA ( Tri-state register for A) , TRISB (Tri-state register for B) فالمسجل الاول يمكنا

من الانتقال بين المسجلات TRISA و TRISB والمسجل TRISA يمكننا من تحديد اى من البتات من المنفذ A ستكون

خرج و ايهما سيكون دخل , و كذالك أيضا بالنذبه للمسجل TRISB . و المسجل STATUS فى البنك 0 يمكننا من الانتقال الى

البنك 1 .
نظره اشمل على هذه المسجلات

1- المسجل STATUS :


يستخدم فى الانتقال من البنك 0 الى البنك 1 , و يمكننا القيام بذالك عن طريق جعل قيمة البت الخامس من هذا المسجل

STATUS بواحد رقمى , و يمكننا ايضا من العوده الى البنك 0 عن طريق جعل البت الخامس بصفر رقمى و للعلم

عنوان المسجل STATUS فى البنك 0 ب 03H هكسا فنظام العنونه بنظام السادس عشر .

2- المسجل TRISA و TRISB :

و هما موجودون بالعناوين 85H و 86H على التوالى , لبرمجة اى بت من المنفذ A او المنفذ B ليكون دخل او

خرج نحن نرسل واحد او صفر رقمى لهذا المسجل مناظرة لبت المنفذ فكمثال اذا كنا نريد ان نجعل البت الثالث من

المنفذ A دخل نرسل واحد رقمى الى البت الثالث من المسجل TRISA و هذا ايضا ينطبق على المنفذ B حيث يتم

خيارات التصنيف الى المسجل TRISB ,,, اما اذا كنت تريد ان تجعل هذا البت كخرج فانك تقوم بإرسال صفر رقمى

الى البت المناظر فى TRISA او TRISB .


مثال عام : اذا كنا نريد ان نجعل RA0 , RA3 و RA4 خوارج و RA2 و RA1 كمدخلات سنقوم اولا كما قلنا

من قبل بالانتقال الى البنك 0 عن طريق STATUS و ذلك بجعل البت الخامس منه واحد رقمى ثم نقوم بإرسال القيمه

0 0 1 1 0 الى المسجل TRISA و بذلك جعلنا البت واحد و اثنين مدخلات بأعطاء المسجل TRISA و احد و و احد

رقمى و جعلنا البت رقم صفر و ثلاثه و اربعه كمخرجات . و ينطبق هذا ايضا على المسجل TRISB .


3- المسجل PORTA و PORTB :

المسجلات PORTA و PORTB هما المنافذ A و B و لجعل و احد من بتات هذه الاطراف واحد رقمى او صفر رقمى

يجب اولا اعداده كمخرج من مسجل TRISA او TRISB ثم اخراج البيانات التى تريدها الى المنفذ مع العلم ان اى نوع

من البيانات التى يتم إرسالها لهذان المنفذان يجب ان يمروا اولا بالمركم (W REGISTER) و يعتبر هذا المركم هو

مسجل عام , حيث يمكنك وضع اى بيانات فيه و يمكنك أيضا جمع قيمة الموجود بالمركم لاى شىء آخر و يمكنك أيضا نقل

الموجود به الى اى مسجل آخر ,,, مع العلم إذا قمت باذاحة بيانات لهذا المسجل ستمسح البيانات القديمه التى كانت موجوده

بها .


مثال عام على ما تم شرحه


1- الكود الخاص بالتنقل من البنك 0 الى البنك 1 و ذالك كما قلنا بجعل البت الخامس من المسجل status بواحد رقمى

حيث ان عنوان هذا المسجل 03h

BSF 03H, 5
BSF تعتبر اختصار لbit set f و معناه إرسال واحد رقمى الى البيت رقم 5 من العنوان 03h و هو المسجل status

و ذالك طبعا للانتقال للبنك 1 . الان نحن فى بنك 1 ,,,


2- الكود الثانى هو تصنيف البتات , مخرجات و مدخلات فكما قلنا فى المثال اللذى شرحناه فى المسجلات

TRISA,TRISB وضعنا 0 0 1 1 0 فى مسجل ال TRISA و لكن قلنا انه يجب ان يمر على المركم اولا

لانه لا يمكن ارساله الى المسجل TRISA مباشرة و الامر هو :


MOVLW 00110

و لقد قمنا بكتابه القيمه بالنظام الثنائى و يقصد بالامر Move Literal To W register , اى قم باذاحة القيمه

المزكوره الى المركم . و الامر الذى سياتى بعد ذالك هو اذاحة القيمه التى اذيحت الى المركم الى ال TRISA و الكود

هو
MOVWF 85H
و بذالك تم تصنيف بتات المنفذ PORTA من حيث المدخلات و المخرجات . الان نريد ان نرجع مرة اخرى الى البنك

0 لانه هو الذى يتولى القيام بالعممليات و الكود هو ....

BCF 03H,5
والامر يعنى Bit Clear F بمعنى أخلى البت الخامس من العنوان 03h و هو عنوان المسجل STATUS و بذلك

قمنا بالرجوع الى البنك 0 و بأمكاننا القيام بالعمليات العاديه


الكود الاخير هو
BSF 03H,5
MOVLW 00110(06H)
MOVWF 85H
BCF 03H,5
حتى الان انتهينا من اربعة اوامر فقط من 35 امر من طاقم اوامر المتحكم PIC16F84 تابع معى الدرس الثانى

و هو الكتابه الى المنافذ

ولا تبخلوا علينا بدعاء
لاى استفسار المراسله على ال*****
Die_another_day69*************