مقدمه کار با میکروکنترلر PIC18F4550 و MPLABX IDE
برای میکروکنترلر PIC18f4550 که از خانواده میکروهای قدرتمند PIC است، محیطهای توسعهی (IDE) متنوعی از جمله MPLABX IDE و MikroC و یا C compilerهایی چون XC8 ،Hi-Tech و C18 قابل استفاده و موجود هستند. و بعد از مرحلهی کد، برای لود کردن فلش مموری میتوان از کیتهایی همانند PIC kit3 ،PIC kit2 ،PIC kit1 و ICD استفاده نمود.
در این جلسه میخواهیم پروژهی سادهی LED چشمکزن را با استفاده از MPLABX IDE و XC8 compiler انجام دهیم و در نهایت کد را با استفاده از PIC kit2 بر روی میکرو بارگذاری کنیم.
مطالب مرتبط به میکروکنترلرها
MPLABX یک IDE شناخته شده است که توسط شرکت Microchip، برای کدنویسی و توسعه کدهای میکروکنترلرهای PIC طراحی و ارائه شده است. کار کردن با آن فوقالعاده ساده و صریح است. با ما همراه باشید تا یک بار با هم آن را تجربه و مرور کنیم.
- کامپایلر XC8 را دانلود و نصب کنید. (برای دانلود آن میتوانید از این لینک استفاده کنید)
- MPLABX IDE را هم دانلود و نصب کنید. (میتوانید از این لینک آن را دانلود کنید)
- پروگرمرهای سختافزاری مختلفی برای پروگرم کردن میکروکنترلرهای PIC وجود دارند؛ مانند PicKit2 ،PicKit3 و USBPicProg. همان طور که گفتیم ما در اینجا از PicKit2 استفاده میکنیم.
- پس از دانلود و نصب موارد بالا، MPLABX IDE را باز کنید.
- حالا از مسیر زیر یک پروژه جدید بسازید. میتوانید نام آن را Blinking LED بگذارید.
Select File -> New Project
- پس از انتخاب new project، پنجرهای مانند تصویر زیر ظاهر خواهد شد. در این پنجره ابتدا Microchip Embedded را، و بعد Standalone و سپس next را انتخاب کنید.
- در این مرحله نوع Deviceها و خانوادهی آنها را انتخاب میکنیم. device ما PIC18F4550 است که از خانوادهی PIC18 میباشد. پس از انتخاب این دو گزینه، next را بزنید.
- پس از اینکه next را زدید، پنجرهای باز خواهد شد که باید در آن نوع ابزار خود را انتخاب کنید. PicKit2 را انتخاب میکنیم و به مرحله بعد میرویم.
- حالا باید کامپایلر را انتخاب کنیم که برای ما XC8 است. آن را انتخاب کرده و به مرحله بعدی میرویم.
- نام پروژه و مسیر ذخیرهسازی آن را وارد کنید و در نهایت finish را بزنید.
همان طور که میبینید، صفحهی پروژه برای ما ساخته و نمایش داده میشود.
- فولدری که با نام source file وجود دارد، حاوی کد اصلی و سایر فایلهای لازم و پشتیبان برای اجرای کد است.
- باید تعدادی از رجیسترها و بیتها مانند WDT ،MCLRE’ ،FOSC و … را مطابق با تنظیمات PIC18f4550 تغییر دهیم.
- این تغییرات را به شکل زیر در کد وارد میکنیم.
#pragma config FOSC = INTOSC_EC #pragma config WDT = OFF #pragma config MCLRE = OFF
- البته این میکروکنترلر رجیسترهای بسیار زیاد دیگری نیز دارد که در زمان کامپایل شدن ممکن است کامپایلر به ما هشدار بدهد که تنظیمات این رجیسترها در حالت پیشفرض قرار دارد. اما MPLABX یک راهکار خوب برای تنظیم کردن این رجیسترها نیز ارائه داده است:
- به مسیر Window -> PIC Memory Views بروید و از آنجا Configuration Bits را انتخاب کنید.
پنجرهای مانند تصویر زیر باز خواهد شد.
- بیتها را مطابق با تنظیمات مورد نیاز قرار میدهیم و سپس گزینهی Generate Source Code to Output را که در قسمت پایین صفحه وجود دارد بزنید.
- سورس کد تولید شده را کپی کنید و آن را در header file پیست کنید.
- برای این کار ابتدا باید خود Header file را تولید کنید.
- در قسمت project روی Header file راست کلیک کنید و در آنجا new و C Header File را انتخاب کنید.
- نام Header file را انتخاب کنید و finish را بزنید.
- حالا میتوانیم کد اصلی (main) برای پروژهی LED چشمک زن را بنویسیم.
- ابتدا باید main file را ایجاد کنیم.
- در قسمت project این بار روی Source راست کلیک کنید و new و سپس C Main File را انتخاب کنید.
- برای نوشتن کد به زبان اسمبلی، ASM file را انتخاب کنید.
- برای آن نام انتخاب کنید و finish را بزنید.
- در این مرحله میتوانیم یک کد ساده و کاربردی به زبان C برای پروژه خود بنویسیم.
کد
/* Led blinking using PIC18F4550 http://www.melec.ir */ #include "Configurations_Header_File.h" /*Header file for Configuration Bits*/ #include <pic18f4550.h> /*Header file PIC18f4550 definitions*/ void MSdelay(unsigned int); void main() { OSCCON=0x72; /* Use internal oscillator of 8MHz Frequency */ TRISB=0x00; /* Set direction of PORTB as OUTPUT to which LED is connected */ while(1) { LATB = 0xFF; /* Turn ON LED for 500 ms */ MSdelay (500); LATB = 0x00; /* Turn OFF LED for 500 ms */ MSdelay (500); } } void MSdelay(unsigned int val) { unsigned int i,j; for(i=0;i<val;i++) for(j=0;j<165;j++); /*This count Provide delay of 1 ms for 8MHz Frequency */ }
- پس از نوشتن کد باید پروژه را Build کنیم.
- در بالای صفحه یک آیکون به شکل چکش وجود دارد. روی آن کلیک کنید.
- اگر پروژه با موفقیت Build شود، در پنجرهی ظاهر شده یک پیام مبنی بر Build Successful خواهید دید و اگر خطایی وجود داشته باشد، لیست errorها و warningها را در پنجره خواهید دید.
- فایلی که به شکل تصویر زیر میبینید؛ همان فایلHexای است که باید بر روی میکروکنترلر بارگذاری شود.
پس از اینکه برنامه را بر روی میکرو بارگذاری کردید، LED را به آن متصل کنید و خواهید دید که شروع به چشمک زدن میکند.
فایلهای پشتیبان
- دانلود سورس کد پروژهی LED چشمکزن با استفاده از میکروکنترلر PIC18f4550 (لینک دانلود)
- منبع: ترجمه از سایت electronicwings.com
در ادامه توصیه میکنم مقاله AVR یا PIC؟ کدام میکروکنترلر را برای پروژهها انتخاب کنیم؟ را نیز مطالعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.