|
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:328
|
|
19-12-2010, 10:05 PM
المشاركة 1
|
|
البرمجة بلغة السى : أوامر منافذ الميكروكونترولر PIC
منافذ الميكروكونترولر PIC ثنائية الاتجاه bi-directional , وتستخدم سجلات التحكم للإخبار عن أى طرف من المنفذ يكون مدخل وأيها يكون مخرج .هذه السجلات تسمى TRISx حيث x هى تعريف المنفذ . على سبيل المثال : سجل التحكم فى المنفذ Port A هو TRISA وللمنفذ Port B هو TRISB . عندما نجعل خانة بسجل التحكم بالقيمة 0 فإن طرف المنفذ المقابل يتم تهيئته كمخرج وعندما نجعل الخانة بالقيمة 1 فإن طرف المنفذ يتم تهيئته لمدخل .
العبارة TRISB=255 تجعل جميع أطراف المنفذ Port B كمداخل .
العبارة k=PORTB سوف تقرأ محتويات المنفذ Port B وتضعه فى المتغير المسمى k .
ملف الرأس يعرف المنافذ كنوع من الحروف بدون إشارة و تسمى PA, PB , PC .
مثال : العبارة التالية تستخدم لجعل الخانة bit0 للمنفذ Port B بالقيمة 1
PB.B0=1;
ولجعل كل من RB0,RB1,RB2,RB3 فى الحالة المرتفعة set (+5V) بينما الأربعة خانات الأعلى للمنفذ Port B منخفضة clear (0V) يجب وضع القيمة 0F سداسى عشر
(و ثنائى 00001111) (و 15 عشرى ) بالمنفذ Port B بالصيغة :
PORTB=15; الفاصلة المنقوطة تستخدم فى لغة السى لبيان نهاية الفعل .
ولجعل الخانة الأولى من المنفذ Port B ( وهى bit0 والمسماة RB0 ) كمدخل وباقى الخانات كمخارج يجب وضع القيمة 1 فى سجل التحكم TRISB بالصيغة :
TRISB=1 الجدول التالى يبين أمثلة مختلفة لتحديد أطراف المنفذ
عند عمل تصفير reset فإن جميع خانات سجلات التحكم TRIS توضع على الوضع 1 بحيث تصبح جميع الخانات كمداخل .
ملاحظة هامة لاستخدام الميكروكونترولر الذى يحتوى على محول A/D :
أنواع عديدة من الميكروكونترولر PIC (مثل PIC16F877) تحتوى داخليا على محولات من تناظرى (تماثلى -أنالوج ) إلى رقمى Analogue to Digital converters والتى يحدد لها أطراف بالمنفذ ( للميكروكونترولر هذه الأطراف هى : RA0,RA1,RA2,RA3,RA5,RE0,RE1,RE2) ) .
عند تصفير الميكروكونترولر جميع هذه الأطراف يتم تهيئتها كمداخل أنالوج ولا يمكن استخدامها كمداخل أو كمخارج رقمية. وقد ترغب فى برنامجك فى جعل بعض من هذه الأطراف مداخل أو مخارج I/O .
لمعظم الميكروكونترولر السطر التالى يجعل جميع الأطراف التماثلية كأطراف رقمية ( ويجب تضمينه البرنامج الذى تكتبه متى لا تريد المحول A/D )
ADCON1=7;
|