منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-04-2014, 03:50 AM المشاركة 17   
افتراضي



الجزء الرابع :
كود:
;===========
; Subroutines:
Init  clrf  porta   ; resets input/output ports
clrf  portb
(clrf portc)
movlw b’xxxx’  ; sets up which pins are inputs and which
tris  porta   ; are outputs
movlw b’xxxxxxxx’
tris  portb
(movlw b’xxxxxxxx’
tris  portc)
retlw 0
;=============
هذا الجزء من القالب يحتوى على "الروتينات الفرعية" subroutines . وهى معقدة جدا وسيتم مناقشتها فى مرحلة لاحقة ، كل ما تحتاج أن تعرفه فى هذه اللحظة هو أن القسم المسمى (المعنون) "التهيئة" Init هو روتين فرعى ، ويتم الوصول إليه باستخدام تعليمة "الاستدعاء" call . يجب استخدام الروتين الفرعى Init لتهيئة كل ما يخص الميكروكونترولر PIC . مع شرائح الميكروكونترولر PIC16F5x ، فإن هذا ينطوى أساسا على اختيار أى أطراف الميكروكونترولر PIC يقوم بالعمل كمداخل inputs ، وأيها يقوم بالعمل كمخارج outputs . فى حالات أخرى مع أنواع PIC الأكثر تعقيدا ، سوف يتطلب تهيئة أكثر . لاحظ أن هذه التهيئة تم وضعها فى الروتين الفرعى Init فقط لجعله خارج طريق الجسم الرئيسى للبرنامج وبالتالى جعله أكثر إتقانا وأكثر سهولة فى القراءة .
• فى البداية يتم استخدام التعليمة :

كود:
clrf  FileReg  ;
هذه التعليمة "تمسح" clear ( تجعل بأصفار) العدد الموجود فى سجل ملف . يتم استخدام هذه التعليمة فى بداية الروتين الفرعى للتهيئة للتأكد من أن المنافذ يتم إعادة تعيينها reset عند بداية البرنامج .

• التعليمة الثانية :
كود:
movlw  number  ;
هذه التعليمة تحرك (تنقل) "حرفى" literal ( العدد الذى يلى التعليمة ) ، وهو فى الحالة الأولى b’xxxx’ ) إلى "السجل العامل" .
• بعد ذلك تأتى التعليمة : tris لتأخذ العدد الموجود بالسجل العامل وتستخدمه لتحديد أى بتات المنفذ تعمل كمداخل وأيها يعمل كمخارج . الواحد "1" الثنائى سوف يناظر المدخل والصفر "0" الثنائى يناظر الخرج . الأطراف التى لا تستخدم من الأفضل أن تجعلها مخارج .
مثال :
باستخدام PIC16F54 ، وتوصيل الأطراف RA0, RA1,RA3 إلى مفاتيح ضاغطة ، وتوصيل شاشة سفن سيجمنت إلى الأطراف RB0 إلى RB6 ، وتوصيل الأطراف RA2 و RB7 إلى أجهزة تنبيه buzzers . ما الذى يجب أن تكتب لتحديد أطراف الدخل / الخرج بشكل صحيح ؟

كود:
movlw b’1011’
tris porta
movlw b’00000000’
tris portb
retlw 0
يوجد ملاحظتان :
أولا : ليس هناك مواصفات للمنفذ Port C ( وهذا طبيعى لأن PIC16F54 لا يملك هذا المنفذ ) .
ثانيا : تذكير بأن ترقيم البت يذهب من اليمين إلى اليسار .

تمرين :
باستخدام PIC16F57 ، وتوصيل الأطراف RA1 و RA2 لتشغيل ليدات ، وتوصيل الأطراف RA0 و RA3 بحساسات لدرجة الحرارة ؟، والأطراف من RB0 إلى RB6 تتحكم فى شريحة منفصلة ، والطرف RB7 متصل بمفتاح ضاغط . والأطراف من RC1 إلى RC5 تحمل إشارات إلى الميكروكونترولر PIC من الكمبيوتر ، وباقى الأطراف الأخرى غير متصلة . ما الذى يجب أن تكتب فى قسم التهيئة Init من البرنامج ؟

يتم وضع التعليمة retlw فى نهاية الروتين الفرعى ، عادة مع صفر "0" بعدها .

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 29-04-2014, 03:53 AM المشاركة 18   
افتراضي


الجزء الأخير :
كود:
;=============
; Program Start:
Start
call Init
Main
(Write your program here)
END

أخيرا الجزء الأخير من القالب يحمل "البداية" start ، حيث يبدأ البرنامج .
• لاحظ أن الشىء الأول الذى يتم عمله هو إعدادات تهيئة مداخل ومخارج المنافذ .
• بعد السطر call Init يوجد العنوان Main والذى بعده تقوم بكتابة البرنامج الخاص بك .
• فى نهاية البرنامج يجب أن تكتب "النهاية" END .

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:46 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)