با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


موضوع بسته شده است 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دانلود - Atmel® AVR Studio® 6 - دانلود
#1
Star 

İmage




پسورد فایلها " www.wle.ir " میباشد

support.wle.ir
#2
Star 
ابتدا به منوی File رفته و از گزینه New مورد Project را انتخاب کنید، حال گزینه GCC C Executable Project انتخاب کرده و در انتها هم برای Name اسم پروژه مورد نظرتان را انتخاب کنید و در قسمت Location نیز می توانید محل ذخیره سازی پروژه را تعیین نمایید. سپس از پنجره باز شده ( Device Selection ) میکروکنترلر را انتخاب کنید. در این مثال آموزشی ما ابتدا می خواهیم پورت A میکرو ATMEGA32 را به عنوان خروجی تعریف کنیم و هشت عدد LED به آن وصل کرده و حالت های مختلفی را ایجاد کنیم.

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




کد:
#include <avr/io.h>
#define F_CPU 4000000
#include <util/delay.h>


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



کد:
void mode1(){
    unsigned char i;
    for (i=0; i<5; i++){
       PORTA=0xff; _delay_ms(500);
       PORTA=0x00; _delay_ms(500);
    }
}


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



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


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



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


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

جهت ایجاد فایل Hex کافیست کلید F5 را فشار دهید. فایل Hex در پوشه Debug که زیر پوشه پروژه میباشد ایجاد میشود.
support.wle.ir
مشترک شدن در این موضوع موضوع بسته شده است 


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: