Table of Contents
وهذه الأجهزة المصغرة هي الأدمغة الخفية وراء أجهزة إلكترونية لا حصر لها، نستخدمها يوميا، من أفران الموجات الدقيقة والضوابط عن بعد إلى نظم السيارات والهدايا الطبية، ومن بين العديد من الأسر التي تعمل بالتحكم في الميكروفون، توفر أجهزة التحكم في الميكروبات، التي طورتها تكنولوجيا مايكروسيب، وتقف في وجهها إلى البساطة، وتدني التكلفة، وطائفة واسعة من نماذج البرمجة المناسبة للطلاب البرنامج والمهنيين.
ما هو جهاز التحكم بالمايكرولوتر؟
(ب) إنَّ مُضادَلَة صغيرة من نوع PIC هي حاسوب وحيد الشُعب يدمج وحدة معالجة مركزية، وذاكرة (RAM، وROM/Flash)، ومدخلات قابلة للبرمجة/مخرجات على دائرة متكاملة واحدة، وأجهزة تكييف البيانات هي برنامج مُصمَّم للهيكل المُنَي، وذاكرة منفصلة، مما يتيح الوصول المتزامن إلى المعلومات ويحسن سرعة التنفيذ.
بدأت ببرمجة مركز التأهيل في سي
ويتطلب برمجة المراكب الصغرى للشركة في جيم بيئة إنمائية، ومجمع، ومبرمج/مبرمج، وبعض المعدات الأساسية، ويفضل أن تكون اللغة " جيم " لأنها تبعد تعقيدات مستوى التجمع، بينما تسمح بالتلاعب المباشر بالسجلات وتوليد الرموز بكفاءة، وتتابع هذه الخطوات لإنشاء بيئة برمجة خاصة بك.
1 - تركيب MPLAB X IDE
(إم بي إكس) هو بيئة التنمية المتكاملة الرسمية (مايكريب) إنها تستند إلى برنامج (نيت بينز) وتوفر إدارة المشاريع، وتحرير الشفرة، وإلغاء أدوات المحاكاة، ونسخة من موقع (ويندو) و(ماكوس)
2 - تركيب مجمع XC8
ويترجم مجمّع XC8 الرمز C إلى رمز آلي للمراقبين الجزئيين التابعين لشركة PIC، ويحل محل مجمع شركة HI-TECH C. Download XC8] ويضعه، ويتيح هذا البرنامج نسخة مجانية ذات استخدام أمثل متوسط (وإن كان للتعلم ومعظم المشاريع).
3 - الحصول على مبرمج
لنقل الرمز من حاسوبك إلى جهاز التحكم المصغر في جهاز التحكم تحتاج إلى مبرمج معدات أكثر الخيارات شيوعاً هي "الـ "بي كيت 4 أو بي إتش كيت 5 أو "إم بي بي بي بي بي إس" أو "مدير صغير يربط بين أجهزة البرمجة الخاصة بـ "بي سي بي إس"
4 - إنشاء دائرة لوحات التزلج
وبالنسبة للمشروع الأول الكلاسيكي - الذي يربط جهازاً معتمداً - تحتاج إلى جهاز تحكم مصغر تابع للشركة، وجهاز للغطاء، وجهاز للبث المغناطيسي، وجهاز قياسي مؤقت (يقاوم من 220 إلى 470) وإمدادات كهربائية من طراز 5V (أو مصدر طاقة مُنظم باستخدام جهاز حاسبي للفولط)، وجهاز كهربي داخلي (ي للأجهزة المضغوطة الحديثة)
كتابة برنامجك الأول في مركز التأهيل
البرنامج التقليدي " الوصلات " هو المكافئ المدمج ل " عالم الهيلو " ، وهو يبين السيطرة والتوقيت والثغرات غير النهائية، ويُعدّ هذا البرنامج مثالاً كاملاً على مؤشر PIC16F88 باستخدام المشرف الداخلي في 8 ميغاهيرتز.
مثال كامل لرمز الوصل
// PIC16F88 Blink LED Example using Internal Oscillator
#define _XTAL_FREQ 8000000 // Define oscillator frequency for delay macros
#include <xc.h> // XC8 header file
// Configuration bits: internal oscillator, no watchdog, power-up timer enabled
#pragma config FOSC = INTOSCIO // Internal oscillator with I/O on RA6
#pragma config WDTE = OFF // Watchdog Timer disabled
#pragma config PWRTE = ON // Power-up Timer enabled
#pragma config MCLRE = OFF // RA5/MCLR as digital I/O
#pragma config BOREN = OFF // Brown-out reset disabled
#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
void main(void) {
TRISB = 0x00; // Set all Port B pins as outputs
PORTB = 0x00; // Clear Port B outputs
while(1) {
RB0 = 1; // Turn LED on (connect LED to RB0)
__delay_ms(500); // Delay 500 ms
RB0 = 0; // Turn LED off
__delay_ms(500); // Delay 500 ms
}
}
وتزود المادة الكلية برقم XC8، وتقتضي تحديد لتواتر المناشف الفعلي، وتضع خطوط ] قطعاً من تركيب المعدات - ضرورية للتشغيل السليم، وفي هذا المثال، يستخدم المنظف الداخلي، وبالتالي لا يلزم بلورة خارجية، وبعد تجميعها وبرمجتها، ستتم عملية الارتطام على فترات زمنية قدرها 0.5 ثانية.
فهم المفاهيم الرئيسية في برمجة الموافقة المسبقة عن علم
وبغية تجاوز الخلط بين الـ دي دي دي، يجب أن تفهموا عدة مفاهيم أساسية تحدد البرامج المدمجة لـ " جيم " ، وهذه المفاهيم هي لبنات البناء للمشاريع الأكثر تعقيدا.
السجلات والتلاعب بالزئبق
(أ) كل طرف وخاصة من رموز PIC يتم التحكم بها عن طريق تحديد أو تبادل جزء من سجلات الوظائف الخاصة، وعلى سبيل المثال، فإن سجل يحدد اتجاه دبابيس بورت B. (و) يحدد هذا الرقم تحديداً قليلاً؛ ويجعله ناتجاً.()
TRISBbits.TRISB0 = 0; // Alternative using bitfield structure
PORTBbits.RB0 = 1; // Set pin RB0 high
دائماً ما تشير إلى بيانات المتحكمات الدقيقة لإيجاد أسماء السجلات الصحيحة والمواقع الصغيرة
مرافئ المدخلات/النواتج
PIC microcontrollers have several I/O ports (PORTA, PORTB, PORTC, etc.) Each port has associated registers: for direction, for reading input levels, and for writing output levels (the register avoids read-modify outputwrite problems).
المفقودات
(د) تسمح المقاطعات للمتحكمات الدقيقة بالرد على الأحداث (مثل زر الصحافة أو التدفق الزائد أو استقبال البيانات المتسلسلة) دون أن يُلوث باستمرار، وعندما يحدث انقطاع، توقف وحدة مكافحة التلوث عن البرنامج الرئيسي، وتنفذ نظاماً عالمياً للإنقاذ، ثم تستأنفه.() وفي XC8, يُعرَّف القانون الدولي الخاص بالتصنيف باستخدام جهاز للتنبيه الخارجي المض.
مثال: مباحث خارجية عن النتائج
void __interrupt() ISR(void) {
if(INTF) { // Check if external interrupt flag is set
LATB ^= 0x01; // Toggle RB0 (LED)
INTF = 0; // Clear interrupt flag
}
}
void main(void) {
TRISB = 0x00; // All outputs
PORTB = 0x00;
OPTION_REG &= 0xBF; // Clear INTEDG to interrupt on falling edge
INTCON |= 0x90; // Enable GIE and INTE
while(1); // Infinite loop, wait for interrupt
}
وتعد عمليات التداخل حاسمة بالنسبة لنظم فعالة في الوقت الحقيقي ولكنها تتطلب معالجة دقيقة للمتغيرات المشتركة (العمل المتقلب وربما انقطاعه أثناء الأقسام الحرجة).
الأخشاب
فالتيمور هي منافذ معدات يمكن أن تولد حالات تأخير أو تقيس الترددات المحتوية على مدخلات أو تنتج موجات من طراز PWM، ومعظم هذه البلدان لديها وحدات موقوتة متعددة (Timer0, Timer1, Timer2, etc.) ذات قدرات مختلفة، والوقت هو موقّع من 8 إلى 9 مزوّد مع مُسبق؛ وتوقيت واحد يمكن أن يعمل بشكل متقارب؛ وثابتة في كثير من الحالات لتوليد وقت محدد.
// Example: Configure Timer0 to interrupt every 10 ms at 8 MHz internal clock
// Prescaler = 256; TMR0 load value = 0xF0 (240 decimal)
// Timer0 tick = 4 / 8MHz = 0.5 µs * 256 = 128 µs per increment
// 240 * 128 µs = 30.72 ms (adjust for desired period)
TMR0 = 0xF0;
OPTION_REG = 0x07; // Prescaler 1:256 assigned to Timer0, internal clock
INTCONbits.TMR0IE = 1; // Enable Timer0 interrupt
INTCONbits.GIE = 1;
ويعد فهم التوقيتات أمراً أساسياً لوضع قواعد زمنية دقيقة، أو إشارات PWM لمراقبة السيارات، أو استحواذ أسلاك مدخلات.
المترجم الشفوي إلى الرقمي
وتشمل العديد من مراكز الموافقة المسبقة عن علم نموذجاً للشركة يحول فولتولوجياً (من صفر إلى VDD) إلى قيمة رقمية، وتستخدم شركة ADC دائرة عينات وحافظة وسجلاً متعاقباً للتسجيل، ولقراءة جهاز استشعار للأشعة، وضبط القناة، وتحديد وقت الاحتياز، وبدء التحويل، وإنتظار الإنجاز، وقراءة سجلات النتائج (ADRESH، AD).
ADCON0 = 0x01; // Select channel AN0, turn ADC on
__delay_us(10); // Wait for acquisition time
GO_nDONE = 1; // Start conversion
while(GO_nDONE); // Wait for conversion to finish
int analogValue = ((ADRESH << 8) + ADRESL); // 10-bit result
ويمكن استخدام قراءات المقياس المائي للتصنيف في مجال الاستشعار عن درجة الحرارة، والكثافة الخفيفة، ومقاييس الغليون، والعديد من المدخلات الأخرى في مجال القياسات.
بروتوكولات الاتصالات
وتساند مراكز الموافقة المسبقة عن علم البروتوكولات التسلسلية المشتركة: UART (asynchronous sequence), SPI (synchronous), and I2C (two-wire interface).
- UART]: Used for RS-232, series consoles, GPS modules, Bluetooth modules. Configure baud rate, enable transmit/receive, and use TXREG/RCREG registers.
- SPI]: Full-duplex, master/slave. Ideal for high-speed data transfer with SD cards, displays, and RF modules. Uses SDI, SDO, SCK, and SSpins.
- I2C]: حافلة بدولارين مع التخاطب، مناسبة لربط أجهزة بطيئة متعددة مثل أجهزة الاستشعار وأجهزة اسطوانات الأذن، تستخدم دبابيس SDA و SCL.
ويتطلب كل بروتوكول تدقيق وتيرة التوقيت، وشكل البيانات، وقطع المناولة إذا استخدمت في غير المقفل.
النظر في التنظيم والبرمجة
ويتمتع المتحكمون في الميكروفونات بذاكرة برنامجية منفصلة (Flash)، وذاكرة بيانات وأحياناً EEPROM) وتخزن ذاكرة البرنامج البرمجيات الراسية؛ وتحتفظ الذاكرة بالبيانات بالمتغيرات والسجلات؛ وتستمر هذه الدراسة في الكميات الصغيرة من البيانات عبر دورات الطاقة، وعندما يتم البرمجة في C، يمكن استخدام محاورات للجمعات لوضع بيانات في الذاكرة البرنامجية (استخدام )
استخدام نظام البيانات EEPROM
ويشمل العديد من مراكز الموافقة المسبقة عن علم داخلي للقراءة فقط بالروتينات التي يقدمها المجمّع.
#include <xc.h>
void write_eeprom(unsigned char addr, unsigned char data) {
while(WR); // Wait for previous write to finish
EEADR = addr;
EEDATA = data;
EECON1bits.EEPGD = 0; // Point to EEPROM
EECON1bits.WREN = 1; // Enable write
INTCONbits.GIE = 0; // Disable interrupts
EECON2 = 0x55; // Required sequence
EECON2 = 0xAA;
EECON1bits.WR = 1; // Start write
INTCONbits.GIE = 1; // Re-enable interrupts
EECON1bits.WREN = 0; // Disable write after completion
}
عمليات التعبئة والتقليل إلى الحد الأمثل
يمكن أن يكون التداول عن طريق الشفرة تحدياً لأنه لا يمكنك استخدام تقليدي لـ (يوارت) المفقودة؟
(أ) معلومات إرشادية عن أفضل طريقة: استخدام المتغيرات المحلية عند الإمكان (يقيمون في استعراضات الأداء العام) - يمكن أن يكون المجمّع على المستوى الأمثل في XC8 (عرض مجاني - صفر؛ النسخة المدفوعة - 1 - 2 - أُس)، على أن يُستخدم سجلات بدلاً من السجلات العالمية، وللدورات الحرجة من حيث التوقيت، النظر في استخدام انقطاع زمني بدلاً من التأخيرات التي تنتظرها.
الموارد المخصصة لمواصلة التعلم
أفضل مورد للتعلم هو PIC16F88 Datasheet (PDF) وصحيفة بيانات جهازك المحدد.
خاتمة
برمجة أجهزة التحكم الدقيقة في أجهزة التحكم في الأمراض العقلية في C يفتح عالماً من إنشاء النظام المدمج من أجهزة الاستنشاق البسيط إلى شبكات أجهزة الاستشعار المتطورة وأجهزة التحكم في السيارات، عن طريق وضع نموذج للبرمجيات البرمجية المغناطيسية وأجهزة تجميع الأشعة السينية، وفهم أزرار السجلات، وقطع الطرق، وأجهزة القياس، وأجهزة التحكم في المركبات، واستخدام الكمية الكبيرة من الوثائق وموارد المجتمع المحلي، يمكنك التقدم بسرعة