الوميض بواسطة متحكمات pic (تطبيق 1)

 بسم الله الرحمن الرحيم

بعد ان ناقشنا في الدروس السابقة مواضيع مهمه حول متحكمات pic
يجب الإطلاع عليها قبل متابعة هذا الدرس

سنقوم اليوم بتطبيق ما تعملناه 
كيفية عمل وميض لليد 

سنحتاج للتطبيق الي عدة ادوات
pic 16f877a microcontroller
Led
330 ohm ressistor
10 k ohm ressistor
2 x switch

في البداية توجد توصيله ثابته للمتحكم بحيث تمكنه هذه التوصيله من برمجة المتحكم 

حيث نوصل المنافذ رقم 14 و 13 الي الكريستال واستخدمنا في هذا المثال كرستال 20 ميغا هرتز
ونوصل منافذ رقم 32 الي الموجب ومنفذ 31 الي السالب
وباقي التوصيلات كما موضحه بالأعلي التي نوصلها مع المبرمجة pic kit
ودائرة RESET
وهي توصيل منفذ rst الي مقاومة pullup مقدارها 10 كيلو اوم 
وتوصيله ايضا مع منفذ vpp في المبرمج
مع توصيل الطرف الأخر من السويتش مع السالب فحيث عندما يتم الضغط علي السويتش يحدث اعادة تشغيل للمتحكم 
ونقوم بتوصيل الليد الي منفذ RB5 

وننتقل الي الكود البرمجي 
لكي نقوم ببرمجة هذا النوع من المتحكمات نستخدام mplap 
ونقوم بعمل بناء للكود عن طريق البرنامج 
ثم الذهاب مخصص ب frimware الخاص ب pickit v2 
ثم ادخال ملف hex الخاص بالكود الذي نحصل عليه بعد عملية البناء
ونرفع الكود للمتحكم
ويجب رفع مقاومة الرفع من منفذ rst عند البرمجة ثم وضعها بعد الإتمام من رفع الكود

وننتقل الي الكود ينقسم الكود في هذا النوع 
الي ملفين ملف main.c وهذا الملف يتم كتابة فيه الكود الخاص بنا 
وملف اخر وهو ملف configure وهذا الملف يحتوي علي بعض التعريفات الأساسية التي سنخوض في شرحها مستقبلا 


#include <pic16f877a.h>
#include <xc.h>
#define _XTAL_FREQ 20000000
void main(void){
TRISBbits.TRISB5=0;
while (1)
{
PORTBbits.RB5=1;
__delay_ms(250);
PORTBbits.RB5=0;
__delay_ms(250);
}
}




في الكود الذي في الأعلي يتم كتابة مكتبات اساسية في العمل وهي مكتبة المتحكم الأساسية للتعامل معه ومكتبة xc.h
وبعد ذلك يجب تعريف سرعة الكرستال التي استعملناها مع المتحكم وهذا اساسي لعمل التجربة

#define _XTAL_FREQ 20000000

وبعد ذلك ندخل الي الكود الخاص بنا الأساسي الذي سيقوم بتشغيل واطفاء الليد
في البداية تعريف منفذ rb5 كمخرج عن طريق
TRISBbits.TRISB5=0;

وبعد ذلك ندخل في حلقة while وهي بمثابة  void loop في الأردوينو حيث تتنفذ باستمرار 
وفيها قمنا باخراج اشارة 5 فولت علي منفذ rb5
PORTBbits.RB5=1;

ثم عمل تاخير للكود لمده 250 مللي ثانية عن طريق
__delay_ms(250);

ثم نقوم بعمل اطفاء لليد وانتظار مدة 250 مللي ثانية مره اخري 


ناقشنا اليوم موضوع بسيط الي حد ما سنقوم بتطبيق ما شرحناه عمليا في فيديو انتظرو 

تصميم وبرمجة : بلال حسان سعدي 

تعليقات