شرح مبسط وتفصيلي للميكروكنترولر PIC16F84a

المتحكمات الدقيقة هي عقل الأنظمة المدمجة، سنتعرف في هذه المقالة على متحكم البيك 16F84a المصنع من قبل شركة ميكروشيب، ربما أنت تتساءل الآن "لماذا يبدأ الجميع بتعلم هذا المتحكم بالذات وكأنه الوحيد الموجود، أليس هناك العديد من المتحكمات المتواجدة بالأسواق؟". حسنا هناك العديد من الأسباب والحجج القوية التي تبرر هذا الإختيار منها على سبيل المثال بنية هذا ميكروكنترولرالبسيطة وعدد أوامر البرمجة الخاصة به القليل والذي يبلغ 35 أمر فقط وهذا ما يجعل المتحكم PIC16F84a مناسبا للمبتدئين والهواة.
شرح مبسط وتفصيلي للمتحكم الدقيق PIC16F84
هل توجد متحكمات أبسط من هذا المتحكم؟ نعم، لنأخذ على سبيل المثال سلسلة البيك 12، ولكن هذه المتحكمات أبسط من أن نبدأ به فهي لا تسمح لنا بتكوين فكرة كافية من أجل الدخول في عالم المتحكمات الدقيقة.

تعريف ميكروكنترولر PIC16F84a:

PIC16F84 عبارة عن ميكروكنترولر 8 بت مما يعني أنه قادر على معالجة 8 بتات في المرة الواحدة، وهذي هي مواصفات هذا المتحكم:
  • عدد أوامر برمجية يبلغ 35 أمر مما يجعل منه ينتمي إلى معمارية "مجموعة أوامر الحاسوب المختصرة RISC"
  • تردد المعالج يصل إلى غاية 20 ميغاهيرتز (10 ميغا هيرتز فقط بالنسبة لـPIC16F84)
  • حجم 68 بايت من الذاكرة الحية RAM
  • حجم 64 بايت من ذاكرة القراءة فقط القابلة للبرمجة والمسح الكهربائي (EEPROM)
  • عدد سجلات العمل الخاص (Special purpose registers) يبلغ 15
  • يعمل بفولطية تتراوح بين 2.0 و5.0 فولط

خصائص الميكروكنترولر PIC16F84a:

  • يتوفر PIC16F84a على 13 طرف يعمل كواجهة مدخلات، يمكن برمجة كل طرف ليعمل كمدخل أو كمخرج
  • كل طرف يستطيع توفير تيار خرج يصل إلى 25 ميلي أمبير
  • ذاكرة فلاش قابلة للقراءة والكتابة إلى غاية 10,000 مرة
  • ذاكرة EEPROM قابلة للقراء والكتابة إلى غاية 10,000,000 مرة
  • كلب حراسة مدمج (watchdog)
إذا صادفتك بعض المشاكل في فهم بعض المصطلحات السابقة فلا بأس في هذا فسنقوم بشرحها بالتفصيل إن شاء الله في هذه المقالة.

أطراف الميكروكنترولر PIC16F84a:

أطراف المتحكم PIC16F84a
كما نرى في الصورة أعلاه فإن المتحكم الدقيق PIC16F84a عبارة عن دائرة متكاملة لها 18 طرف، وهذه هي وظيفة كل منها:
  • الأطراف 1،2،3،6،7،8،9،10،11،12،13،17 و18: عبارة عن مدخلات ومخرجات، وهي مقسمة إلى مجموعتين: المنفذ A الذي يضم 5 أطراف والمنفذ B الذي يضم 8 أطراف. كما أسلفنا فإنه يمكن برمجة كل طرف على حدى ليعمل كمدخل أو كمخرج، يستطيع كل طرف إستقبال تيار 25 ميلي أمبير كحد أقصى كما يستطيع إخراج تيار بنفس القيمة.
  • الطرف 4: يستعمل هذا الطرف لمسح الذاكرة المؤقتة RAM. تجدر الإشارة أن هذا الطرف يؤدي وظيفته في حال توصيله مع المأخذ الأرضي ولهذا يتم ربطه مع مصدر التغذية.
  • الطرف 5: عبارة عن المأخذ الأرضي.
  • الطرف 14: الطرف الخاص بالتغذية، يتم ربطه مع مصدر الجهد.
  • الطرفين 15 و16: هذان هما الطرفان الخاصان بربط كريستالة خارجية، التردد الأقصى هو 20 ميغاهيرتز.

مؤقت كلب الحراسة (watchdog):

ذكرنا سابقا أن هذا الميكروكونترولر يتضمن مؤقت كلب الحراسة، يعتبر كلب الحراسة مؤقتا داخليا يوجد داخل رقاقة المتحكم الدقيق، يمكن تفعيله أو تعطيله عن طريق البرمجة، وظيفته الرئيسية هي إعادة ضبط (reset) الميكرومراقب عند حدوث خطأ في البرنامج أو دخوله في حلقة لامتناهية. يستعمل هذا المؤقت عادة في التطبيقات المتقدمة.

السجلات:

للمتحكم PIC16F84 نوعان من السجلات: سجلات ذات غرض عام (General purpose registers) وسجلات عمل خاص (Special function registers)، وكما يدل عليه الإسم فإن سجلات الغرض العام تستعمل في تخزين أي قيمة من أجل العمل عليها لاحقا أما سجلات العمل الخاص فهي مخصصة من أجل التحكم في الميكروكنترولر.
سجلات المتحكم PIC16F84a
كما رأينا في الجدول السابق، فإن السجلات مقسمة إلى قسمين بنك 0 وبنك 1، كل بنك حجمه 128 بايت و 12 منطقة الأولى في كل بنك مخصصة لسجلات العمل الخاص، سنتطرق في هذه المقالة إلى سجلات العمل الخاص وسنشرح بالتفصيل 5 سجلات: STATUS، PORTA، PORTB، TRISA، TRISB.
  • سجل STATUS: نستعمل هذا السجل عادة من أجل غرض واحد هو الإنتقال من بنك إلى آخر، عندما يكون البت الخامس من هذا السجل عبارة عن 0 نكون نعمل في البنك 0 أما إذا كان البت الخامس عبارة عن 1 فنحن نعمل في البنك 1.
  • سجل PORTA: خمسة من أصل ثمانية بتات من هذا السجل مخصصة لأطراف المنفذ A.
  • سجل PORTB: جميع البتات الثمانية لهذا السجل مخصصة لطراف المنفذ B.
  • سجل TRISA: يستعمل هذا السجل لتحديد أي من أطراف المنفذ A يعمل كمدخل وأي منها يعمل كمخرج.
  • سجل TRISB: يؤدي نفس وظيفة السجل TRISA ولكن مع أطراف المنفذ B.
  • سجل العمل (Working register): عبارة عن سجل غرض عام، لا تستطيع تخزين القيم مباشرة إلا داخل سجل العمل، لنقل مثلا أنك تريد كتابة قيمة داخل أحد السجلات كـTRISA مثلا، لا يمكنك ذلك إلا بكتابة تلك القيمة داخل سجل العمل ثم نقلها من سجل العمل إلى السجل TRISA. لا تستطيع الولوج مباشرة إلى أي من السجلات سواء في البنك 0 أو البنك 1 إلا بوساطة من قبل سجل العمل، وجميع القيم التي تمت كتابتها داخل تلك السجلات تمت من خلال سجل العمل.

0 تعليقات

إرسال تعليق

Post a Comment (0)

أحدث أقدم