برنامه ریزی میکرو کنترلر

0
1787

برای آشنایی با میکرو کنترلر می خواهیم یک برنامه ساده برای میکرو کنترلر بنویسیم. بنابراین یک برنامه ساده می نویسیم که Led های (چراغ خطر!) ربات را روشن و خاموش کند. قسمت اخطار را قبل از هر کاری بخوانید.

آشنایی با برنامه CodeVision:

CodeVision یک IDE برای میکرو کنترلر AVR است. به وسیله این برنامه می توان از زبان C برای برنامه ریز میکرو استفاده کرد. برای شروع ابتدا برنامه را از اینجا دانلود کنید و آن را نصب کنید. برنامه را اجرا کنید. یک پروه TestAVR بسازید.

در قسمت Setting->Programmer نوع Programmer را انتخاب کنید. (Kanda Systems STK200+/300)

برای تنظیمات اولیه میکرو از Code wizard استفاده می کنیم. به وسیله این wizard کدهای ‍C‌ لازم برای تنظیماتی از قبیل Crystal Clock, Timer Setting, Port Setting, … تولید و به کد برنامه شما اضافه می شود. پس از هر تغییر در این تنظیمات باید آن را به وسیله منو File->Generate, Save and Exit ذخیره کرد.

پس از تنظیمات اولیه کد برنامه را در Code Vision به زبان C‌ می نویسیم. (می توان از توابع کتابخانه ای Code Vision‌نیز در این کار استفاده کرد.) سپس دکمه Make the project را برای تولید کد اسمبلی برنامه شما برای میکرو کنترلر AVR بزنید.

حالا می توانید میکرو کنترلر خود را برنام ریزی کنید. برای این کار از Chip Programmer استفاده می کنیم.

تنظیمات اولیه میکرو:

به وسیله Tools->CodeWizardAVR منو تنظیمات اولیه را ظاهر کنید. حالا این تنظیمات را انجام دهید:

Chip Tab:

            Chip: Atmega16L

            Clock: 1.0000

Prot Tab:

            Port B tab:

                        Bit 0: out

                        Bit 1: out

ما با این تنظیمات نوع میکرو کنترلر و همچنین فرکانس ۱MHz را برای آن انتخاب کردیم.(ما به میکرو یک کریستال وصل کردیم تا فرکانس ۸MHz (یا MHz7.3728) تولید کند. ولی یک Oscillator نیز در داخل AVR قرار دارد که فرکانس آن ۱MHz است. ما در این قسمت از این Oscillator استفاده می کنیم).

در ضمن بیت ۰ و ۱ پورت B را به صورت خروجی تنظیم کردیم تا سیگنال روشن و خاموش شدن را در آن تولید کنیم.

حال به وسیله منو File->Generate, Save and Exit تنظیمات خود را ذخیره کنید.

برنامه میکرو کنترلر:

پس از مراحل بالا باید یک فایل که در آن قسمت هایی به زبان C نوشته شده است به همراه توضیحاتی در مورد آنها به صورت شکل زیر تولید شده باشد.

 

حال این خط را به برنامه اضافه کنید:

Line 26:

#include <delay.h>

و سپس برنامه خود را در جایی که //Place your code here بنویسید:

void main(void)

{

            .

            .

            .

While(1)

            {

            // Place your code here

                        delay_ms(100);

                        PORTB.0 = 1;

                        PORTB.1 = ~PORTB.0;

                        delay_ms(100);

                        PORTB.0 = 0;

                        PORTB.1 = ~PORTB.0;

            };

}

 

در این برنامه در هر ۱۰۰ میلی ثانیه خروجی را در بیت صفر و یک پورت B تغییر می دهیم.

 

برنامه ریزی میکرو کنترلر:

ابتدا یک Programmer را به پورت LPT کامپیوتر متصل کرده و کابل Flat آن را به کانکتور JP4 روی  مدار خود وصل کنید. به وسیله منو Tools->Chip Programmer منو تنظیمات Programmer میکرو کنترلر را ظاهر کنید. VCC و GND را به مدار وصل کنید و کلید را روشن کنید.

 

ابتدا به وسیله منو Read->Chip Signature اتصالات VCC و GND به میکرو و اتصالات Programmer به بورد را چک می کنیم. پس از اجرا دستور بالا باید پیغام زیر ظاهر شود:

در غیر این صورت اتصالات خود را چک کنید.

حالا می خواهیم برنامه خود را به میکرو وارد کنیم. برای این کار دستورات زیر را به ترتیب اجرا می کینم:

Program->Erase Chip

Program->Blank Check (optional)

Program->Flash

حالا باید دیودها روشن و خاموش شوند.

اگر در Chip Programmer در تب Fuse Bit(s):، BootSZ0=0 و BootSZ1=0 را تیک بزنیم و اجرا Program->Fuse(s) Bit ، میکرو از کلاک Crystal استفاده می کند. بنابر این باید تنظیمات میکرو را با توجه به کریستال تغییر دهید.

 

اخطار: حتما در تب Fuse Bit(s):، BootSZ0=0 و BootSZ1=0 را تیک بزنید در غیر این صورت میکرو شما در حالتی قرار می گیرد که دیگر نمی توانید آن را به وسیله CodeVision برنامه ریزی کنید.

دیدگاه خود را بیان کنید

لطفا پیام خود را وارد نمایید
لطفا نام خود را در این قسمت وارد نمایید