طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
یک ماشین حساب لمسی ساده با قابلیت نوشتن تعداد 12 نوع عملیات متفاوت و پشت سر هم با محاسبه فوری جواب، قابلیت پاک کردن کارکتری جمله نوشته شده، نوشتن عدد اعشاری و منفیاین پروژه در اصل یک قفل امنیتی است که می توان جلوی درب اصلی منزل (در کنار آیفون) آن را نصب کرد. از امکانات آن می توان به موارد زیر اشاره نمود: نمایش دما از 125 تا 55- درجه سانتیگراد، نمایش ساعت دقیق، نمایش تاریخ شمسی همراه با روز هفته به صورت فارسی، نمایش تعداد فرصت های باقیمانده برای وارد کردن رمز صحیح، و قفل شدن سیستم به مدت 15 دقیقه در صورتی که 4 بار رمز اشتباه وارد شود. امکان تغییر رمز و تنظیم کردن ساعت و تاریج و ...با استفاده از میکروکنترلر Atmega8‌، سنسور دیجیتال دما DS18B20 و LCD‌ متنی شما به راحتی می توانید کولر خانه تان را توسط کنترل تلویزیون و کلید های تعبیه شده، در مد های مختلفی برنامه ریزی کنید، از ویژگی آن می توان به کاهش مصرف انرژی در کولرها آبی اشاره نمود.با استفاده از میکروکنترلر ATMEGA8 و کیبورد 3×4 می توان حروف و اعداد را تایپ کرد و درون یک متغییر ذخیره نمود و محتوای این متغییر بر روی نمایشگر LCD نمایش داده می شود. در صورتی که فضای LCD پر شود کاراکترها به سمت چپ شیفت داده می شوند. تمامی حروف و اعداد کوچک و بزرگ انگلیسی قابل تایپ می باشند.این پروژه در اصل یک شمارنده می باشد که می توان عبور مرور افراد از یک گیت را شمارش کرد، شمارنده هم می تواند به صورت بالا شمار و هم پایین شمار کار کند. همچنین توسط شدت نور یک عدد LED می‌توان سنسور فرستنده و گیرنده را در یک راستای مستقیم تنظیم کرد. سنسورها ار نوع مادون قرمز با برد تقریبی 120cm می باشد.
پروژه ماشین حساب لمسی ساده با avr

MCP-15

پروژه ماشین حساب لمسی ساده با avr
پروژه دربازکن الکترونیکی خانه قفل رمز با avr

MCP-5

پروژه دربازکن الکترونیکی خانه قفل رمز با avr
پروژه کنترل اتوماتیک کولرهای آبی با ریموت کنترل و avr

MCP-4

پروژه کنترل اتوماتیک کولرهای آبی با ریموت کنترل و avr
پروژه تایپ حروف و اعداد با کیبورد 3.4 به زبان سی با avr

MCP-3

پروژه تایپ حروف و اعداد با کیبورد 3.4 به زبان سی با avr
پروژه شمارش افراد با سنسور مادون قرمز و avr

MCP-6

پروژه شمارش افراد با سنسور مادون قرمز و avr

آموزش برنامه نویسی در محیط 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 را پشت سرهم فراخوانی می کنیم و این کار تا ابد ادامه می یابد.

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

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 229 | حجم 34 کیلوبایت | دانلود 1638 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  مثال آموزش ایجاد یک پروژه جدید در Atmel Studio

منبع www.picpars.com  پسورد: www.picpars.com

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال سه شنبه، 14 خرداد ماه، 1392    نویسندهنویسنده: مدیریت    نظرات 12 نظر    بازدید بازدید [ 33835 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان