آموزش برنامه نویسی در محیط Atmel Studio 6

آموزش برنامه نویسی در محیط Atmel Studio 6

www.picpars.com آموزش برنامه نویسی در محیط Atmel Studio 6 367

 

به نام خدا

در دور جدید آموزش های برنامه نویسی، می خواهیم به آموزش برنامه نویسی در محیط Atmel Studio 6 به پردازیم، خواهیم گفت که چگونه یک پروژه جدید ایجاد کنیم و یک برنامه ساده بنویسیم و در نهایت آن را کامپایل کنیم و از فایل هگز خروجی آن در شبیه سازی و … استفاده کنیم.

از بخش سفارش طراحی همکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR

 

مراحل ایجاد یک پروژه جدید

ابتدا به منوی File رفته و از گزینه New مورد Project را انتخاب کنید، حال گزینه GCC C Executable Project انتخاب کرده و در انتها هم برای Name اسم پروژه مورد نظرتان را انتخاب کنید و در قسمت Location نیز می توانید محل ذخیره سازی پروژه را تعیین نمایید. در این مثال آموزشی ضمیمه شده ما ابتدا می خواهیم پورت A میکرو ATMEGA32 را به عنوان خروجی تعریف کنیم و 8 عدد LED به آن وصل کرده و حالت های مختلفی را ایجاد کنیم.

بعد از ساخت پروژه پیش فرض کدهای مربوطه برای شما آماده می شود که مطابق زیر مواری را اضافه می کنیم تا برنامه مورد نظر شکل گیرد.

#include <avr/io.h>
#define F_CPU 1000000
#include <util/delay.h>

در قسمت F_CPU توسط دستور define ما فرکانس کاری میکروکنترلر را تعیین می کنیم که در اینجا 1MHZ انتخاب شده و در خط بعد نیز توابع تاخیری را فراخوانی می کنیم تا از تاخیر های میلی ثانیه یا میکرو ثانیه استفاده شود.

void mode1(){
unsigned char i;
    for (i=0; i<4; i++){
        PORTA=0xff;
        _delay_ms(300);
        PORTA=0x00;
        _delay_ms(200);
    }
}

در تابع تعریف شده به نام mode1 ما 4 مرتبه کل پورت A را روشن (یک) و 300 میلی ثانیه تاخیر ایجاد می کنیم و در ادامه کل پورت را خاموش (صفر) و تاخیر ایجاد می کنیم. کل این پروسه که 4 بار تکرار می شود را به صورت تابع نوشته ایم که در تابع اصلی main فراخوانی می کنیم. پس تا ایجا ما با نحوی نوشتن یک تابع Void تابع بدون برگشت نیز آشنا شدیم.

void mode2(){
    unsigned char i;
    PORTA=0x01;
    for (i=0; i<8; i++){
        _delay_ms(200);
        PORTA = PORTA<<1;
    }
}

 

mode2 نیز به این صورت می باشد که ابتدا بیت اول (A.0)  را یک کرده و توسط حلقه For هشت بار یکی یکی این بیت یک شده را به سمت چپ شیفت می دهیم و 200 میلی ثانیه در هر مرحله تاخیر ایجاد می شود تا حرکت LED به آرامی نمایان شود.

int main(void){
    PORTA=0x00;
    DDRA=0xff;
    
    while(1) {
        mode1();
        mode2();
    }
}

 

اکنون در تابع اصلی برنامه یعنی main پورت A را به صورت خروجی (DDRA) تعریف نموده و مقدار پیش فرض آن را نیز صفر قرار می دهیم، و در حلقه بینهایت تایع mode1 و mode2 را پشت سرهم فراخوانی می کنیم و این کار تا ابد ادامه می یابد.

انشاء الله در روزهای آتی با مثال ها و آموزش های بیشتری خواهیم آمد، امیدواریم دوستان نیز با ارائه مطالب همکاری کنند و همه صرفا خوانند مطالب نباشند.

 

  لImage

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s