Microcontroller (4)
Write your first program using Pic16f84A
سوف نتعلم اليوم كيفية بناء مشروع باستخدام الـمايكروكنترولر ..
كما تعلمنا من قبل إن المايكروكنترولر Pic 16f84A له 13 pin يمكن استخدامهم كـ input or output، فمن المؤكد أن هناك طريقة للتعامل مع تلك الـ Pin لتحديد إذا ما كانت input أو output. و هنا نتطرق بالحديث إلى أول register نتعامل معه و هو الـ Tris Register، و ظيفة هذا الـ Register هو تحديد اتجاه الـ Pin ؟ هل سوف استخدامها كـ input to the microcontroller أو كـ output from microcontroller.
* input to microcontroller: اشارة تدخل للمايكروكنترولر، زي مثلاً لما أضغط على switch متوصل بالمايكروكنترولر، فده هيبقى أكيد input للمايكروكنترولر.
* output from microcontroller: اشارة تخرج من المايكروكنترولر لأي شىئ متصل بالمايكروكنترولر، على الـ pin المستخدمة كـ output مثل الـ leds.
أولاً TRIS Register:
الـ TRIS هو register مسئول عن تظبيط الـ pins directions، بمعنى إنه المسؤل عن تحديد أي الـ pins سوف استخدمها كـ input و أيهم سوف يتم استخدامه output، و بالتالي فأنا استطيع بالبرمجة أن أجعل كل الـ Pins كـ inputs أو كلهم كـ output.
مثال: عندي led (مصدر ضوئي) سوف يتم توصيله بالمايكرو<< في هذه الحالة فإن الـ pin التي استخدمها في توصيل الـ led بالمايكرو سوف تكون كـ output، و بالتالي فإن الجملة المسئولة عن تظبيط تلك المسألة هيه
;<register_name><port_name>.<pin_number>=<1 or 0
TRISB.b0=0 >> هنا نجد أن اسم الـ register << TRIS، و اسم الـ port الذي تم توصيل الـ led به هوه port B، لذا كتبنا TRISB، أيضاً نجد إننا قد وصلنا الـ led بالـ pin رقم 0 في الـ port B ، و بناء عليه فإني قد عرفت المايكرو إني سوف استخدم الـ Pin رقم 0 في الـ port اللي اسمه B كـ output.
TRISB.b0=0 >> هنا نجد أن اسم الـ register << TRIS، و اسم الـ port الذي تم توصيل الـ led به هوه port B، لذا كتبنا TRISB، أيضاً نجد إننا قد وصلنا الـ led بالـ pin رقم 0 في الـ port B ، و بناء عليه فإني قد عرفت المايكرو إني سوف استخدم الـ Pin رقم 0 في الـ port اللي اسمه B كـ output.
مثال آخر، لدي مفتاح كهربي متصل على الـ pin رقم 0 في الـ port A << بالطبع المفتوح سوف يُستخدم كـ input للمايكروكنترولر،، و بالتالي سوف تكون جملة الـ direction هي TRISA.b0=1;
أن اسم الـ register << TRIS، و اسم الـ port الذي تم توصيل الـ switch به هوه port A، لذا كتبنا TRISA، أيضاً نجد إننا قد وصلنا الـ switch بالـ pin رقم 0 في الـ port A ، و بناء عليه فإني قد عرفت المايكرو إني سوف استخدم الـ Pin رقم 0 في الـ port اللي اسمه A كـ input.
إذاً في حالة تظبيط الـ pin directions فإن 0 << تعني output، 1 << تعني input.
ثانياً PORT Register:
و هو الـ register المنوط بإخراج الـ volt على الـ pins بتاعت المايكروكنترولر.
مثال: لما نقول porta=1 >> فده معناه إن المايكروكنترولر هيخرج اشارة 5 فولت على كل الـ pins اللى موجودة في port A.
للتحكم في كل Pin على حدة في الـ port A: نقول
PORTA.b0=1 >> و هذا يعنى إنه سوف يخرج اشارة 5 volt على الـ Pin رقم صفر في الـ port A.
لذلك عندما نريد أن نضيئ led متوصلة على الـ pin رقم 2 في port B،،
نكتب >> PortB.b2 = 1 ، و هذا يعنى إن المايكروكنترولر سوف يخرج على الـ Pin رقم 2 اشارة كهربية مقدارها 5 فولت.
الآن سوف تكتب أول مشروع لك، المشروع هوه أن يكون لديك button و led عند الضغط على الـ button، سوف تضئ الـ led، و عند عدم الضغط على الـ button سوف تطفئ الـ led.
في البداية سوف نقوم برسم الدائرة باستخدام برنامج الـ proteus كما تعلمنا في المرة السابقة
** إذا كنت لا تعرف كيفية بناء الدائرة السابقة باستخدام الـ proteus يمكننك مراجعة الدرس السابق من هنا >> Learn how to use Proteus
كما نرى لقد قمت بتوصيل الدوائر الرئيسية بالمايكروكنترولر، و هي دوائر الـ oscillating و الـ reset.
و قمت بتوصيل الـ led بالـ pin رقم 1 في الـ port B، و كذلك قمت بتوصيل الـ button بالـ pin رقم 0 بالـ port B.
* الـ led سوف تكون output، و بالتالي سوف نكتب أثناء ضبط pin directions الـ TrisB.b1=0
* بينما الـ button سوف يكون Input،و بالتالي سوف نكتب في الـ Pin direction >>
TrisB.b0=1
سوف نقوم الآن بفتح برنامج الـ Mikro C لكتابة البرنامج للتحكم بهذا الـ led .
** للتعرف على كيفية استخدام برنامج الـ Mikro C يمكننك مراجعة الدرس السابق من هنا أولاً >> learn how to use Mikro C
سيكون الكود بهذا الشكل الموضح أعلاه. 
لتجريب البرنامج الذي قمنا بكتابته على برنامج الـ proteus نقم بالضغط double click على المايكروكنترولر، كما هو موضح بالشكل
نقوم بالضغط على علامة الـ browsing في المربع اللى على اليمين (Program file)، ثم نقوم بالذهاب للمكان الذي قمنا بحفظ الكود فيه، و نختار الملف الذي يكون امتداده .hex 
بعد اختيار الملف، نقوم بتعديل قيمة الـ Processor Clock Ferquency إلى 4 MHz، ثم نضغط على OK
نقوم بالضغط على Play mode أسفل الشاشة، و نقوم باختبار البرنامج بالضغط على الـ button سنجد أن الـ led ستضىئ 
و برفع الضغط من على الـ button نجد أن الـ led قد انطفئت !
في المرة القادمة سوف ننفذ بعض المشاريع البسيطة باستخدام المايكروكنترولر خطوة بخطوة.
اسأل الله أن ينفعني و إياكم بهذا العلم .. دمتم بود
ليست هناك تعليقات:
إرسال تعليق