Table of Contents
ما هي متحكمات الجهاز؟
أما أجهزة التحكم الدقيقة التابعة للشركة فهي صغيرة ومتكاملة مصممة لأداء مهام محددة في مجال الرقابة في الأجهزة الإلكترونية، وهي أجهزة طورتها تكنولوجيا مايكروسيب، وأجهزة التحكم الجزئي (المراقب المالي الدولي) تقوم على هيكل هارفارد، الذي يفصل البرنامج وذاكرة البيانات، ويتيح هذا التصميم التنفيذ الفعال لتعليمات الدورة الواحدة، مما يجعلها مناسبة للتطبيقات في الوقت الحقيقي.
وتمتد أسرة المتحكمين بالمايكرويف من 8 أجهزة مثل PIC10 وPIC12 وPIC16 وPIC18 إلى 16 ميغاواط (PIC24 وDsPIC) و32 متغيراً، وبالنسبة للمبتدئين، فإن سلسلة الـ 8 من PIC16 أو PIC18 توفر التوازن الصحيح للبساطة والقدرة.
لماذا تختارون متحكمين في المنابر الأخرى؟
وفي حين أن منابر مثل أردوينو قد خفضت حاجز الدخول للنظم المدمجة، فإن المتحكمين في الاقتصاد الجزئي يقدمون مزايا متميزة لمن يريدون فهما أعمق للمعدات والبرمجيات الثابتة، وتجبركم مراكز التسجيل على العمل مباشرة مع السجلات والتلاعب بالبعض والتوقف عن العمل، وترسيخ أسس قوية في بنية المتحكمات الدقيقة، كما تستخدم على نطاق واسع في التطبيقات الصناعية والآلية، مما يجعل مهارات التصنيف الإلكتروني ذات قيمة في الأوساط المهنية.
غير أن منحنى التعلم أكثر حدة مقارنة بـ آردونو، ولا يوجد مشغل للأحذية قبل أن يُقطع؛ بل تحتاج إلى مبرمج خارجي (PICkit أو ICD)، ولكن هذا الاستثمار الواجهي يُعلّمك أساسيات برامج المتحكمين في الميكلور من الأرض.
الأدوات والمكونات الأساسية
قبل أن تكتب خطك الأول يجب أن تجمع الأدوات الصحيحة هنا قائمة شاملة لمبتدئ
Microcontroller Selection
- PIC16F877A] - رقاقة كلاسيكية من 40 عمودا، متاحة على نطاق واسع، وكمية من الميزانيات.
- PIC18F4620] - متغير محسن من 40 ركيزة مع مزيد من الذاكرة البرنامجية وتحسين البنية.
- PIC12F683] - 8-pin DIP for very simple projects.
مجلس التنمية أو لوحة قراءة
- Starter Boards] – Microchip’s Curiosity Board or PICDEM Lab II include the microcontroller, programmer, and basic I/O.
- Breadboard + Power Supply] – A standard 830-point broadboard, a 5V regulated power supply (e.g., LM7805), and a USB-to-serial adapter for UART.
مبرمج/مدير
- PICkit 3] or ]PICkit 4 – Official Microchip debuggers with programming through ICSP (In-Circuit Serial Programming).
- MPLAB Snap] - بديل منخفض التكلفة.
- وبالنسبة للوصل بين وكالة USB، ضمان أن يدعم مبرمجك برنامج USB-to-ICSP (لكلما كان مكيفاً منفصلاً لرقم 3.3V أو الهدف 5V).
برامجيات
- ]MPLAB X IDE] - بيئة إنمائية متكاملة حرة قائمة على شبكة " NetBeans " .
- ]XC8 Compiler] - Free (with limited optimization) C compilationr for 8-bit PICs.
- اختياري: مفاوضة قانون الحركة الشعبية لتحرير السودان - أداة خطية لوضع مدونة أولية.
المكونات الإلكترونية الأساسية
- LEDs (red, green, blue)
- Resistors (220 ذخائر من الأجهزة المتفجرة المرتجلة، 10 كيلوغرامات من أجل السحب)
- أزرار الدفع (مفاتيح تبديل)
- أجهزة الكابات (100nF decoupling, 10 mmF bulk)
- 20MHz Belgian oscillator + two 22pF capacitors (if not using internal oscillator)
- أسلاك القفز من السحب (ذكور إلى ذكور، ذكور إلى إناث)
وضع بيئة التنمية الخاصة بك
اتبع هذه الخطوات لإخراج "إتش بي إي دي" و"إكس سي 8" من العمل
- ] download and install MPLAB X IDE] from the Microchip website. Choose the version for your operating system (Windows, macOS, Linux).
- Install XC8 compilationr] - Select the free version; it offers optimizing levels up to -O1 without a license.
- (ب) أن تُنشئ أي سائق مطلوب (يُضم عادة إلى MPLAB X).
- اضغط على لوحة الهدف أو مركز معلومات سرية مع 5V DC.
- Wire the ICSP connector: PICkit 4 bin 1 (MCLR/VPP) to PIC MCLR fats 2, 3, 4 (VDD, GND, PGD, PGC) appropriately. Consult the PICkit 4 User’s Guide] for connections.
- Launch MPLAB X. Go to Tools > Options > Embedded] and verify the compilationr path is correct (XC8 should auto-detect).
كتابة برنامجك الأول:
إن " عالم الهالو " التقليدي للنظم المدمجة هو برميل للدواء المميت، وهو يُدخلك إلى إنشاء المشاريع، وقطع التشكيل، ومراقبة النظام العالمي لمراقبة الأرض، وتأخير حلقات العمل، ويُعدّ دليلاً تدريجياً.
الخطوة 1: إنشاء مشروع جديد
- In MPLAB X, select File > new Project.]
- Choose Microchip Embedded > Standalone Project].
- اختار جهازك (مثلاً، PIC16F877A).
- (مثلاً، (المجموعة 4
- مجمّع مختار (XC8).
- سم المشروع (مثلاً، " بلينك - ليد " ).
الخطوة 2: فهم نقاط التداول
وفي PIC16F877A، تحددون عادةً في رأسها أو تستخدمون " / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
#pragma config FOSC = HS // High-speed oscillator (crystal)
#pragma config WDTE = OFF // Watchdog Timer disabled
#pragma config PWRTE = OFF // Power-up Timer disabled
#pragma config BOREN = ON // Brown-out Reset enabled
#pragma config LVP = OFF // Low-Voltage Programming disabled
#pragma config CPD = OFF // Data EEPROM Code Protection off
#pragma config CP = OFF // Flash Program Memory Code Protection off
ضع هذه في أعلى ملفك قبل أي منها
الخطوة 3: وضع اللوبي الرئيسي
وفي مراكز الموافقة المسبقة عن علم، يتم تشكيل موانئ الشبكة الدولية عن طريق سجل إدارة البيانات: ' صفر` يجعل الناتج الدبوسي، ' 1` يقدم مدخلات، وتُكتب بيانات النواتج إلى سجل البيانات المحلية (أو PORT لعمليات الكتابة، ولكن يوصى بتبادل البيانات عن قضايا إدارة الأسلحة النارية).
#include <xc.h>
#define _XTAL_FREQ 8000000 // 8MHz if using external crystal
void main(void) {
TRISBbits.TRISB0 = 0; // Set RB0 as output
LATBbits.LATB0 = 0; // Start with LED off
while(1) {
LATBbits.LATB0 = 1; // Turn LED on
__delay_ms(500); // Wait 500ms
LATBbits.LATB0 = 0; // Turn LED off
__delay_ms(500); // Wait 500ms
}
}
وإذا استخدم المشرف الداخلي، فكفل تشكيلة محددة لشبكة المعلومات التقنية الدولية، ويحدد تعريف " XTAL FREQ " وفقاً لتواترك المُشفع (مثلاً، عدم وجود تخلف قدره 4MHz).
الخطوة 4: البناء والبرنامج
- (ج) أنقر المشروع الرئيسي زر (ملحوظة مطرقة).
- Connect the programmer, then beq Make and Program Device] (green arrow withرقاقة).
- وإذا نجح، فإن الـ دي بي دي متصل بـ RB0 (الركيزة 33 على PIC16F877A DIP) ينبغي أن تُغمس في 1Hz.
فهم المدونة في ديبث
ويستخدم الرمز المذكور أعلاه المجمّع الذي يُبنى في " قضيّة " ، الذي يوفره " XC.h " ، ويعتمد هذا الرقم الكلي على " XTAL FREQ " ، بحيث تُحسب تعليمات التأخير بدقة، أما بالنسبة لـ 8MHz oscillator، فإن دورة التعليمات تستغرق 0.5 ميكروغرام (بما أن PIC16 تستخدم 4 ساعات لكل تعليم).
إشعار استخدمناه [(FLT:2]) بدلاً من [(FLT:3])] سجل ضريبة القيمة المضافة (Latch) يتجنب مشاكل الكتابة عند مزج المدخلات والنواتج في نفس الميناء، وهذا أفضل ممارسة في برمجة الموافقة المسبقة عن علم.
سجل (تيريس) يُحدد الإتجاهات، وضع (تيريس) 0 يجعل من الناتج الدبابيس، إذا أردت قراءة زر لاحقاً، ستضع (تيريس) في المرتبة الأولى
الشلالات الرئيسية وكيف تتجنبها
- Wrong oscillator formation] - قد لا تبدأ الشريحة إذا لم تتطابق البرمجيات الحرة والمفتوحة المصدر مع معداتك، وتستخدم المشرف الداخلي لأسلاك بسيطة.
- Missing decoupling capacitors - always place a 100nF capacitor as close as possible to the VDD/VSS tanks. Oscillations or resets can occur without it.
- Using PORT for output] - When you write to PORT (e.g., PORTB = 0xFF), it can cause unintended changes to other fats due to stray capacitance. always use LAT for writings.
- Watchdog Timer enabled] – If WDT is on, the microcontroller may reset every few milliseconds. Set unless you intentionally use it.
- Low-Voltage Programming enabled – LVP may cause expected operation if RB3/PGM fat is floating. Set ].
توسيع مهاراتك:
بمجرد أن تستطيعي أن تغمسي جهازاً معتمداً على الـ "إل دي" تمضي قدماً للتفاعل مع العالم المادي، فإن أجهزة التحكم بالمايكروول تقدم مجموعة غنية من الـ "بي آي"
الناتج/الناتج العام
تعلم قراءة الأزرار مع التفكيك (التأخير في البرمجيات أو إطلاق شميت) - تركيب أجهزة متفجرة متعددة لتشكل جهازاً ثنائياً أو مطارداً خفيفاً، فهم يقاومون السحب والسحب.
المترجم الشفوي إلى الرقمي
PIC16F877A has 8 analog channels (AN0-AN7). Use ADC to read a potentiometer voltage and output a proportional PWM duty cycle to control LED brightness. Note: ADC requires setting ANSEL/ANSELH registers to enable analog input on a bin.
مدوّنات الزمن
فالتيمور تتيح تأخيرات دقيقة دون إعاقة وحدة مكافحة الاحتكارات، فعلى سبيل المثال، يمكن تشكيل تايم 01 بمرتبة مسبقة لتوليد انقطاع كل بضعة ملي ثانية، واستخدام التوقيت 1 لساعة في الوقت الحقيقي، وتتيح سلسلة PIC18 موقّفات أكثر تقدماً باستخدام أساليب الإمساك/الضمادة/الإدارة.
تعديل النبضات
PWM is essential for motor control, LED dimming, and audio generation. On PIC16F877A, PWM is available on CCP1 (RC2) and CCP2 (RC1). Configure PR2, CCPR1L, and TMR2 prescaler to set frequency and duty cycle.
الاتصالات التسلسلية (UART)
الاتصال بشركة PC بواسطة محول من طراز USB-to-TTL (مثل FTDI232). أرسل " عالم الهيلو " إلى محطة طرفية، وهذا أمر حاسم في إزالة السطو على البيانات وقطعها، ووضع سجلات لسجلات BRG وSPBRG لتوليد أسعار العصيان.
Interrupts and Interrupt-on-Change
تعلم أن تُصدر رمزاً على حافة ارتفاع/هطول، مستعملة في الاستيقاظ من النوم، أو الضغط على زر، أو إشارات تشفير، وتتفهم إمكانية الانتشار العالمي والمتلازم بين الفينة وبين ما يُستشف منها، وكيف تكتب روتين خدمة مشتركة بين الفستق باستخدام " تداخل بين الأسهم " في XC8.
Sample Project: Temperature Monitor with LCD
وهناك مشروع وسيط عملي يجمع بين العديد من المنافذ، وهذا هو مخطط:
- اتصل بمجس درجة حرارة LM35 إلى قناة ADC.
- استخدمي (تايمر) لتصوير قرص مدمج كل ثانية
- Convert the ADC value to Celsius: temperature = (ADC result * 5000.0) / (1024 * 10).
- اعرض درجة الحرارة على درجة حرارة تبلغ 16x2 HD44780 درجة حرارة LCD في 4 مقاس.
- وإذا تجاوزت درجة الحرارة 30 درجة مئوية، تتحول إلى درجة حرارة حرارة حمراء؛ وإلا، تتحول إلى درجة حرارة خضراء مبتدئة.
This project teaches ADC, timers, LCD control (parallel interface), and conditional logical. Many code examples are available in Microchip’s application notes].
"الدفاع مثل "برو
تحدث الحشرات هنا تقنيات محددة لتطوير تطبيقات الموافقة المسبقة عن علم
- Usese the ICD (In-Circuit Debugger)] - Set breakpoints in MPLAB X and examine register values. This requires a PICkit 4 or ICD 4 in debug mode (different wiring than programming).
- Toggle an unused GPIO fat] — Measure its frequency with an oscilloscope to verify cycle timing.
- UARTprintf render debugging - تنفيذ وظيفة بسيطة من الطباعة التسلسلية (يمكنك العثور على بدائل ] للذاكرة الصغيرة) - إرسال القيم المتغيرة إلى مجموعة متسلسلة.
- ]]] إفحص أجزاء التشكيلة - عندما لا تبدأ الرقاقة، تتكلل بالقليل من الثقوب، استخدم نافذة MPLAB X " Configuration Bits " لوضعها بصريا.
الخطوات والموارد التالية
وبعد أن نتقن هذه المواضيع المتقدمة:
- Interrupt-driven programming] - التحرّك بعيداً عن عرقلة التأخيرات، استخدام أجهزة التوقيت وآلات الدولة.
- Low-power modes] - sleep, idle, and deep-sleep for bat-operated designs.
- ] بروتوكولات الاتصال ] - I2C (accelerometer, RTC), SPI (SD card, display), 1-Wire (temperature sensors).
- RTOS for larger PICs] – FreeRTOS ported for PIC32 and some PIC24 devices.
- Design your own PCB] – With KiCad or Eagle, using the PIC as the main processor.
Recommended resources:
- ]MPLAB X IDE Official Page] - الحمولات والوثائق.
- ]XC8 تحميلات مجمعة - اختيار نسخة مجانية.
- ]PIC16F877A Datasheet] - Indispensable reference for registers and binouts.
- ]MPLAB Code Configurator] - GUI tool to generate initialization code.
- ]Microchip Community Forum] - إطرح الأسئلة وحلول مصفوفة.
خاتمة
إن الشروع في العمل مع أجهزة التحكم الدقيقة في أجهزة التحكم في الملوثات العضوية الثابتة يتطلب نهجا منهجيا: جمع الأدوات المناسبة، وتهيئة البيئة الإنمائية، ثم التقدم من خلال مشاريع بسيطة تعتمد على بعضها البعض، وتستثمر الجهود في دفع أجور مبكرة بينما تكتسب فهما قويا لمعدات المتحكمين في المراكب الصغرى والبرمجة المنخفضة المستوى، فأجهزة الموافقة المسبقة عن علم ليست أسهل نقطة دخول، ولكنها من أكثر الطرق مكافأة للذين يريدون التحكم في المعدات الحاسوبية.