تحديد مدخلات و مخرجات المتحكم المايكروي PIC

شارك عبر:

تم نسخ الرابط

تحديد مدخلات و مخرجات المتحكم المايكروي PIC

درس عن كيفية تحديد مدخلات و مخرجات المتحكم المايكروي PIC


توجد اكثر من طريقة لتحديد عمل كل نقطة ارتباط في المتحكم المايكروي PIC عن طريق بيئة التطوير PicBasic Pro. سنتعرف إلى هذه الطرق لتتمكن من اختيار الطريقة المناسبة لك, يمكن استخدام اكثر من طريقة في نفس البرنامج حيث إن استخدام بعض الطرق يكون أسهل في بعض الحالات من الأخرى.

توجد داخل المتحكم المايكروي PIC دائرة للسيطرة على نقاط الارتباط (المنافذ) حيث يمكن لهذه الدائرة ربط كل نقطة ارتباط إلى دائرة إدخال أو دائرة إخراج حسب الحاجة. يمكن السيطرة على هذه الدوائر عن طريق تحديد القيم في ريجسترات (Registers) لتحديد ارتباط كل نقطة مع الدائرة المطلوبة. مثلاً الريجستر المتحكم بالمنفذ A يسمى TRISA أما الريجستر المتحكم بالمنفذ B فيسمى TRISB تحدد قيمتها استخدام كل نقطة ارتباط في ذلك المنفذ و ذلك عن طريق تحديد قيمة البت المقابل لرقم المنفذ, إذا كان ذلك البت 1 فسيتم ربط تلك النقطة إلى دائرة الإدخال, أما إذا كان 0 فسيتم ربطه إلى دائرة الإخراج. يمكنك تذكر هذه القيم بسهولة حيث إن الرقم 1 قريب من شكل الحرف الأول من الكلمة Input, في حين الرقم 0 قريب من شكل الحرف الأول من الكلمة Output.

لتحديد جميع نقاط المنفذ A كمدخلات يمكنك كتابة TRISA=%11111111 حيث يعني الرمز % أن الرقم التالي بصيغة ثنائية (Binary) أو يمكنك كتابة TRISA=255 حيث إن القيمة الثنائية (11111111) تساوي 255 في النظام العشري. أما لتحديد المنفذ B مثلا كمخرجات يمكنك كتابة الأمر TRISB=%00000000 او TRISB=0. ليس بالضرورة أن تكون جميع نقاط المنفذ الواحد متشابهة فيمكنك كتابة TRISA=%10011011 لتحديد المدخلات و المخرجات حسب الحاجة. كما يمكن تحديد قيمة بت واحد فقط من الريجستر مثلا TRISA.2=0 لتحديد النقطة رقم 2 في المنفذ A كمخرج. تذكر إن أرقام النقاط في المنفذ تبدأ بالرقم صفر, فمثلا المنفذ B في المتحكم 18F2550 يحتوي على 8 نقاط ارتباط تبدأ بالرقم 0 و تنتهي بالرقم 8.

يمكنك أيضاً استخدام الأوامر INPUT و OUTPUT لتحديد اتجاه نقطة الارتباط أو المنفذ كاملاً. الأمر INPUT PORTA سيقوم بتحديد جميع نقاط المنفذ A كمدخلات أما الأمر OUTPUT PORTB سيقوم بتحديد جميع نقاط المنفذ B كمخرجات. يمكن أيضاً تحديد اتجاه نقطة واحدة في المنفذ مثل OUTPUT PORTB.0 ستمكنك من استخدام النقطة PORTB.0 كمخرج.

تختلف المنافذ الموجودة في كل متحكم عن الآخر حسب المتحكم المستخدم, مثلا في المتحكمات ذات الثمانية أطراف (مثل PIC12F675) يسمى المنفذ الموجود فيها ب GPIO (General Purpose Input Output) و لا تكون جميع نقاط المنفذ متوفرة على الأطراف. أما في باقي أنواع المتحكمات من الممكن أن تجد فيها المنافذ PORTA, PORTB, PORTC و PORTD حسب مواصفات المتحكم. يمكن أيضاً تحديد رقم نقطة الارتباط مباشرة مع الأوامر INPUT و OUTPUT حيث ستقوم بيئة التطوير تلقائياً بتحديد المنفذ المطلوب و تحديد النقطة حسب الجدول التالي

*الجدول منقول من ملفات المساعدة لبرنامج PicBasic Pro*

يمكن قراءة قيمة أي منفذ من المنافذ الموجودة في المتحكم أو قيمة نقطة محددة منه, سواء كان هذا المنفذ أو هذه النقطة محددة كمدخل أو مخرج. أما كتابة قيمة إلى منفذ أو نقطة في المنفذ فيجب تحديد المنفذ أو النقطة كمخرج أولاً. يمكن تحديد قيمة المنفذ أو نقطة منه باستخدام الأوامر HIGH و LOW مثل HIGH PORTB ستجعل من قيمة الفولتية على جميع نقاط ارتباط المنفذ B مساوية لفولتية التغذية أما الأمر LOW PORTB.0 فستجعل من قيمة الفولتية على النقطة الأولى (رقم 0) في المنفذ B مساوية للصفر. يمكن أيضاً تحديد قيم مختلفة للنقاط في المنفذ الواحد بشكل مباشر عن طريق كتابة الأمر PORTB=%11001011 مثلاً أو PORTB=203 حيث إن القيمة 203 في النظام العشري تقابل القيمة (11001011) في النظام الثنائي. أو تحديد قيمة نقطة واحدة في المنفذ مثل PORTB.3=1 او PORTB.3=0 لتحديد الفولتية الخارجة على النقطة حسب الحاجة.

حول الموقع اتصل بنا سياسة الخصوصية