المتحكم الدقيق PIC16F877A: مواصفاته وطريقة برمجته
سعود
سعود
١٥ أغسطس ٢٠٢٦

المتحكم الدقيق PIC16F877A

يُعد PIC16F877A متحكمًا دقيقًا 8-bit من عائلة PIC التابعة لشركة Microchip، ويتميز بعدد كبير من منافذ الإدخال والإخراج، ومحول ADC، ومؤقتات، وواجهات اتصال مثل UART وSPI وI²C، مما يجعله مناسبًا للمشاريع التعليمية والتطبيقات الإلكترونية المختلفة.

توزيع أطراف المتحكم PIC16F877A

تنبيه: النص الأصلي يحتوي على خطأ في وصف أطراف التغذية VDD وVSS. الصحيح أن VDD = موجب التغذية و VSS = الأرضي GND.
الرقماسم الطرفالوصف
1MCLR/VPPإعادة الضبط MCLR ومدخل جهد البرمجة، ويُستخدم مع مبرمج مثل PICkit
2RA0/AN0الطرف RA0 من PORTA / المدخل التناظري AN0
3RA1/AN1الطرف RA1 / المدخل التناظري AN1
4RA2/AN2/VREF-الطرف RA2 / المدخل AN2 / مرجع ADC السالب
5RA3/AN3/VREF+الطرف RA3 / المدخل AN3 / مرجع ADC الموجب
6RA4/T0CKI/C1OUTالطرف RA4 / دخل الساعة الخارجية للمؤقت Timer0
7RA5/AN4/SS/C2OUTالطرف RA5 / المدخل AN4 / طرف SS لـ SPI
8RE0/RD/AN5الطرف RE0 من PORTE / المدخل AN5
9RE1/WR/AN6الطرف RE1 / المدخل AN6
10RE2/CS/AN7الطرف RE2 / المدخل AN7
11VDDموجب مصدر التغذية
12VSSالأرضي GND
13OSC1/CLKIدخل المذبذب أو الساعة الخارجية
14OSC2/CLKOخرج المذبذب/الساعة
15RC0/T1OSO/T1CKIالطرف RC0 من PORTC
16RC1/T1OSI/CCP2الطرف RC1 / وظيفة CCP2
17RC2/CCP1الطرف RC2 / وظيفة CCP1
18RC3/SCK/SCLالطرف RC3 / ساعة SPI أو I²C
19RD0/PSP0الطرف RD0 من PORTD
20RD1/PSP1الطرف RD1 من PORTD
21RD2/PSP2الطرف RD2 من PORTD
22RD3/PSP3الطرف RD3 من PORTD
23RC4/SDI/SDAالطرف RC4 / دخل بيانات SPI أو بيانات I²C
24RC5/SDOالطرف RC5 / خرج بيانات SPI
25RC6/TX/CKالطرف RC6 / إرسال TX للاتصال التسلسلي
26RC7/RX/DTالطرف RC7 / استقبال RX للاتصال التسلسلي
27RD4/PSP4الطرف RD4
28RD5/PSP5الطرف RD5
29RD6/PSP6الطرف RD6
30RD7/PSP7الطرف RD7
31VSSالأرضي GND
32VDDموجب مصدر التغذية
33RB0/INTالطرف RB0 / مدخل المقاطعة الخارجية
34RB1الطرف RB1
35RB2الطرف RB2
36RB3/PGMالطرف RB3 / يستخدم في البرمجة منخفضة الجهد
37RB4الطرف RB4
38RB5الطرف RB5
39RB6/PGCالطرف RB6 / ساعة البرمجة PGC
40RB7/PGDالطرف RB7 / بيانات البرمجة PGD

المواصفات الأساسية لـ PIC16F877A

الخاصيةالمواصفة
المعالجPIC 8-bit
عدد الأطراف40
جهد التشغيل2 إلى 5.5V
عدد منافذ I/O33
ADC8 قنوات، بدقة 10-bit
المؤقتاتمؤقتان 8-bit + مؤقت 16-bit واحد
المقارنات2
DACغير متوفر
UART1
SPI1
I²C1
MSSPيدعم SPI/I²C
المذبذب الخارجيحتى 20MHz
المذبذب الداخليغير متوفر
نوع ذاكرة البرنامجFlash
ذاكرة البرنامجحوالي 14KB
سرعة المعالجحتى 5 MIPS
RAM368 Bytes
EEPROM256 Bytes
يمكن العثور على جميع التفاصيل الفنية في ورقة البيانات PIC16F877A Datasheet.

متحكمات PIC أخرى

PIC12F508، PIC12F629، PIC12F683، PIC16F505، PIC16F628A، PIC16F676، PIC16F72، PIC16F873A، PIC16F876A، PIC16F886، PIC18F252، PIC18F452، PIC18F4520 وغيرها.

نبذة عن PIC16F877A

PIC16F877A هو متحكم دقيق CMOS FLASH بمعمارية 8-bit، ويتميز بسهولة البرمجة مع مجموعة تعليمات صغيرة نسبيًا.

يمكن أن يصل زمن تنفيذ التعليمة إلى حوالي 200 نانوثانية عند التشغيل بالسرعة القصوى المناسبة.

يحتوي المتحكم على:

  • ذاكرة بيانات EEPROM بسعة 256 بايت.
  • إمكانية البرمجة الذاتية.
  • دعم ICD – In-Circuit Debugging.
  • عدد 2 Comparator.
  • عدد 8 قنوات ADC بدقة 10-bit.
  • وحدتي Capture/Compare/PWM (CCP).
  • واجهة اتصال تسلسلية متزامنة يمكن تهيئتها للعمل كـ SPI أو I²C.
  • وحدة اتصال تسلسلي USART.

كيفية اختيار متحكم PIC المناسب

توفر Microchip مجموعة كبيرة من متحكمات عائلة PIC، ولكل متحكم مزايا وخصائص مختلفة. لذلك يجب مراعاة عدة عوامل عند اختيار المتحكم المناسب للمشروع.

إذا كنت مبتدئًا في تعلم PIC، فمن الأفضل اختيار متحكم يتمتع بدعم مجتمعي واسع وتتوفر له مشاريع وشروحات كثيرة. ويعتبر PIC16F877A و PIC18F4520 من الخيارات المعروفة لهذا الغرض.

كذلك يجب مراعاة جهد تشغيل النظام. فإذا كان المشروع يعمل على 5V، فمن المناسب اختيار متحكم يدعم 5V. أما إذا كانت الحساسات والأجهزة المستخدمة تعمل بمنطق 3.3V، فقد يكون متحكم يعمل على 3.3V أكثر ملاءمة.

إذا كان الحجم والتكلفة عاملين مهمين، فيمكن اختيار متحكمات صغيرة ذات 8 أطراف مثل PIC12F508.

ويجب أيضًا تحديد الوحدات الطرفية المطلوبة للمشروع. فعلى سبيل المثال، إذا كنت ستقرأ عدة إشارات تناظرية، فيجب التأكد من أن المتحكم يحتوي على عدد كافٍ من قنوات ADC وبدقة مناسبة.

أما إذا كان المشروع يحتاج إلى بروتوكولات اتصال مثل:

UART – SPI – I²C – CAN

فيجب التأكد من أن المتحكم المختار يدعم البروتوكولات المطلوبة.

برمجة متحكمات PIC

يمكن برمجة متحكمات PIC باستخدام عدة برامج ولغات، كما يمكن استخدام لغة Assembly، إلا أن التطوير الحديث غالبًا يتم باستخدام أدوات Microchip.

عملية البرمجة تحتاج بشكل أساسي إلى:

IDE – Integrated Development Environment:

بيئة تطوير متكاملة يتم من خلالها كتابة وتطوير البرنامج.

Compiler:

المترجم الذي يقوم بتحويل البرنامج إلى صيغة يمكن للمتحكم تنفيذها، مثل ملف HEX.

IPE – Integrated Programming Environment:

بيئة تستخدم لكتابة أو تحميل ملف HEX داخل المتحكم.

ومن أدوات Microchip المذكورة في النص:

  • MPLAB X IDE
  • MPLAB IPE
  • XC8 Compiler

ولتحميل البرنامج فعليًا إلى المتحكم يمكن استخدام جهاز برمجة مثل PICkit 3.

يعمل PICkit كمبرمج ومصحح أخطاء Programmer/Debugger، ويسمح ببرمجة المتحكم وهو موجود داخل الدائرة In-Circuit Programming.

وقد تحتاج أيضًا أثناء التطوير إلى:

Breadboard أو Perfboard، محطة لحام، متحكمات PIC، Crystal Oscillator، مكثفات ومكونات التغذية وغيرها.

المكونات المرتبطة بمشاريع PIC

  • PICkit 3
  • لوحة تطوير PIC
  • Crystal Oscillator
  • مكثفات
  • محول طاقة
  • منظم جهد 7805

الخصائص التفصيلية لـ PIC16F877A

بحسب المواصفات الأساسية المذكورة في النص:

الخاصيةالقيمة
بنية المعالج8-bit
ذاكرة البرنامج14KB تقريبًا
RAM368 Bytes
EEPROM256 Bytes
عدد الأطراف40
أقصى تردد CPU20MHz
PPSلا
مذبذب داخليلا
عدد المقارنات2
Operational Amplifier0
دقة ADC القصوى10-bit
DACغير متوفر
مؤقتات 8-bit2
مؤقتات 16-bit1
UART1
SPI1
I²C1
USBغير متوفر
أقل درجة حرارة تشغيل مذكورة‎-40°C
أعلى درجة حرارة تشغيل مذكورة‎125°C
أقل جهد تشغيل مذكور2V
أعلى جهد تشغيل مذكور5.5V
ملاحظة مهمة: الجدول التفصيلي في النص الأصلي يحتوي على بعض البيانات المتعارضة أو غير الدقيقة، مثل ذكر 14 قناة ADC و 11 قناة Capacitive Touch. الـ PIC16F877A التقليدي يحتوي على 8 قنوات ADC (AN0–AN7)، لذلك يفضل الاعتماد على Datasheet الرسمية عند تصميم الدائرة.

التطبيقات

يمكن استخدام PIC16F877A في:

  • مشاريع الإلكترونيات والهواة DIY.
  • تعلم برمجة متحكمات PIC.
  • المشاريع التي تحتاج إلى عدد كبير من منافذ I/O.
  • المشاريع التي تحتاج إلى اتصالات UART وSPI وI²C.
  • بعض المشاريع التي يمكن أن يعمل فيها كبديل لمنصات تطوير مثل Arduino، مع اختلاف بيئة التطوير والعتاد.
  • تطبيقات القياس والتحويل A/D.
  • تطبيقات السيارات.
  • الأنظمة الصناعية.
  • الأجهزة المنزلية.
  • الأجهزة والمنتجات الإلكترونية الاستهلاكية.