برنامج pic16f84a مع الشرح


(dark_eng) #1

[SIZE=“4”][CENTER]بسم الله الرحمن الرحيم

السلام عليكم
[/center]
سأقوم بوضع برنامج لجعل البن الاول فى البورت A يضئ مع شرح الاوامر


1.   processor    p=16F84a

2.   include "P16F84A.INC" #

3.   ORG H'0'
4.   GOTO MAIN
5.   ORG H'04'
6.   GOTO MAIN

7.   MAIN
8.   BSF H'03' , 5
9.   MOVLW H'00'
10.   MOVWF H'85'
11.   BCF H'03' , 5
12.   MOVLW H'01'
13.   MOVWF  H'05'
14.   GOTO MAIN
15.   END

شرح البرنامج
السطر الاول لتعريف المترجم باننا نستخد المعالج PIC16F84A
2 - الملف pic16f84a.inc يحتوى على قائمة بعنواين البورتات والسجلات داخل المعالج لهذا يمكننا بدل كتابة عنوان مسجل الحالة status والذى هو H’03’ بامكاننا كتابه كلمة STATUS بدلا عنه ويقوم المترجم بتضمين العنوان الموازى للكلمة اثناء الترجمة شرط كتابتها بالاحرف الكبيرة وان يكون للكلمة عنوان موازى فى الملف pic16f84a.inc
3- هذا الامر ليعرف المعالج العنوان الذى سيبدأ منه فى حاله حدوث تصفير للمعالج اى RESET
4-ليرسله الى العنوان MAIN بعد عملية التصفير
5- هذا الامر ليعرف المعالج العنوان الذى سيعود منه فى حاله حدوث مقاطعة اثناء تنفيذ البرنامج
6-ليرسله الى العنوان MAIN بعد اكتمال دورة المقاطعة
8- جعل البت الخامس مساويا للواحد اى SET …هذا البت المسؤول عن اختيار البنك داخل المعالج … وبما اننا نريد الوصول الى المسجل TRISA الموجود فى البنك 1 … علينا وضع القيمة 1 فى البت الخامس لمسجل الحالة STATUSوعنوانه H03
9- بعد الانتقال الى البنك 1 الموجود فيه المسجل TRISAالمسؤول عن تحديد اى سن فى البورت A المكون من خمس اسنان يكون للدخل واى سن يكون خرج وذلك بوضع 0 مقابل السن المراد ان تكون خرج و1 مقابل السن المراد ان تكون للدخل
مثلا لو قلنا اننا نريد ان نجعل السن الاول دخل والباقى خرج علينا كتابة القيمة 'b’00001
,لاننا نريد ان يكون البورت كله للخرج وضعنا 'b’00000 والتى تساوى 'h’0 بالهكسا.
وبما انه لا يمكننا وضع القيم مباشرتا فى البورت نستخدم الوسيط وهو مسج ل العمل w
10- بعد وضع القيمة فى المسجلW تم نقلها TRISAالى والذى عنوانه 'H’85
11- لوضع اى قيمة فى البورت علينا العودة مجددا الى البنك 0 لان البورتات موجودة فى هذا البنك ,
فقمنا بتصفير البت الخامس من مسجل الحالة مجداا.
12- نستخدم الوسيط المسجل W لوضع القيمة المراد اخراجها على البورتA فى هذا المسجل.
13 - ننقل قيمة الخرج من المسجل W والذى يسمى مسجل العمل الى البورت A
وعند توصيل الدائرة نلاحظ وتوصيل LED الى السن الاول فى البورت نلاحظ ان اللد يضئ .
وان شاء الله ان جاهز لاى استفسار

البرنامج المستخدم لكتابة هذا البرنامج هو MPLAB وهو متوفر مجانا من شركة ميكروشيب وهو محاكى ايضا …
ولاحظ انى لم اضمن البرنامج السطر الذى يحدد نوع المذبذب وذلك لاننى قمت باختياره عن طريق البرنامج …
وان شاء الله سأضمن دروسا عن MPLAB قريباا …

وانتظروا المزيد وادعو لى و التوفيق
وصلى الله على سيدنا محمد
[/size]

(a.ezzat) #2

مشكوووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووور


(system) #3

thinks