طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
این پروژه در اصل یک ساعت زنگ دار می باشد که قابلیت برنامه ریزی آلارم صبحگاهی و تنظیم 5 برنامه یادآور را دارد. با تنظیم آلارم هر روز راس ساعت تنظیمی آلارم پخش می شود، همچنین با تنظیم یادآور ها در ساعت و تاریخ مشخص نیز آلارم پخش می شود. از امکانات آن می توان برای هر یادآور یک نام تعیین کرد (20 کاراکتر اسکی) با قابلیت تایپ حروف کوچک و بزرگ انگلیسی با کیبورد 3×4 و ...این پروژه قادر خواهد بود که یک ماشین را به صورت بیسیم در جهات جلو و عقب و چپ و راست با سرعت دلخواه کنترل و همچین با کلید استپ ماشین را ثابت (ترمز) نماید.یک ماشین حساب لمسی ساده با قابلیت نوشتن تعداد 12 نوع عملیات متفاوت و پشت سر هم با محاسبه فوری جواب، قابلیت پاک کردن کارکتری جمله نوشته شده، نوشتن عدد اعشاری و منفییک کنترل کننده موتور با جریان خروجی 2 آمپر شامل کنترل جهت چرخش و سرعت می باشد. این مدار دارای نمایشگر LCD متنی بوده که سرعت و جهت چرخش موتور را نمایش می دهد.این پروژه یک دماسنج ساده می باشد که توانایی اندازه گیری دما از منفی 40 تا مثبت 120 درجه سانتی گراد با دقت دو رقم اعشار را دارد.
پروژه آلارم صبحگاهی و یادآور با LCD گرافیکی و avr

MCP-7

پروژه آلارم صبحگاهی و یادآور با LCD گرافیکی و avr
پروژه ماشین کنترلی بی سیم با avr

MCP-20

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

MCP-15

پروژه ماشین حساب لمسی ساده با avr
کنترل سرعت و جهت موتور DC

MCP-9

کنترل سرعت و جهت موتور DC
پروژه دماسنج ساده با avr

MCP-29

پروژه دماسنج ساده با avr
برنامه نویسی میکروکنترلرها FAQ (سوالات رایج کاربران)


شاخه: اصلی -> سوال در مورد میکرو کنترلر AVR

سوال/تابع
  فرکانس میکرو را چگونه انتخاب کنیم؟
  چگونه پورت ها را ورودی و خروجی کنیم؟
  چگونه روی پورت ها بخوانیم یا بنویسیم؟
  AVR چه حافظه هایی دارد؟

جواب/عملکرد
  فرکانس میکرو را چگونه انتخاب کنیم؟

فرکانس های داخلی:
CKSEL0 = 1
CKSEL1 = 0
CKSEL2 = 0
CKSEL3 = 0
==> F=1MHZ

CKSEL0 = 0
CKSEL1 = 1
CKSEL2 = 0
CKSEL3 = 0
==> F=2MHZ

CKSEL0 = 1
CKSEL1 = 1
CKSEL2 = 0
CKSEL3 = 0
==> F=4MHZ

CKSEL0 = 0
CKSEL1 = 0
CKSEL2 = 1
CKSEL3 = 0
==> F=8MHZ


فرکانس های خارجی:
CKSEL0 = 0
CKSEL1 = 0
CKSEL2 = 0
CKSEL3 = 0
با تنظیم فیوز بیت ها به این صورت شما می توانید از نوسان ساز کریستال خارجی 1-16 مگاهرتز و یا تا 24 مگاهرتز استفاده نمائید.

بالای صفحه
  چگونه پورت ها را ورودی و خروجی کنیم؟

خروجی کردن:
برای اینکار کافیست در رجیستر DDRx پورت مربوطه 1 بنویسیم تا پورت به عنوان خروجی تعریف شود.
ورودی کردن:
در این حالت باید در رجیستر مربوطه 0 صفر بنویسیم که با استفاده از دستور PORTx می توان دو حالت ایجاد کرد یکی فعال کردن مقاومت Pull up داخلی و دیگری غیر فعال کردن آن.

مثالی برای پورت C
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
1 1 0 0 0 1 1 0
1 0 1 1 0 1 0 1
خروجی با مقدار اولیه 1 خروجی با مقدار اولیه 0 ورودی با فعال بودن Pull-up ورودی با فعال بودن Pull-up ورودی با غیر فعال بودن Pull-up خروجی با مقدار اولیه 1 خروجی با مقدار اولیه 0 ورودی با فعال بودن Pull-up

بالای صفحه
  چگونه روی پورت ها بخوانیم یا بنویسیم؟

برای خواندن از پورت ها از دستورات زیر استفاده می کنیم:
PINx خواندن کل پورت
PINx.y مثال: PIND.5 خواندن بیت 5 از پورت D
برای نوشتن روی پورت ها از دستورات زیر استفاده می کنیم:
PORTx نوشتن روی پورتx
PORTx.y نوشتن روی پورت x و بیت y
PORTD=0x55
PORTD.7=1
a=PIND
a=PIND.3

بالای صفحه
  AVR چه حافظه هایی دارد؟

1- رجیستر های عمومی (R0-R31) این جیستر ها از 0000H تا 001FH می باشد. در بین این 32 رجیستر R26-R31 رجیستر های ویژه برای آدرس دهی غیر مستقیم می باشند که با X,Y,Z شناخته می شوند و برای آدرس دهی غیر مستقیم بکار می روند.
2- رجیستر های I/O که از آدرس 0020H تا 005FH ادامه دارد و در جمع 64 بایت می باشند.
3-رجیستر های I/O توسعه یافته که از آدرس 005FH تا 00FFH ادامه دارد (160 بایت) در بعضی از میکرو کنترلرها به علت امکانات اضافه تری که دارند تعداد 64 رجیستر کافی نبود به همین دلیل این 160 بایت به آنها اضافه شد.
4-حافظه داده داخلی (SRAM) از این حافظه برای نگهداری محتوای متغیر ها استفاده می شود که مثلا در ATMEGA32 این حافظه 2048 بایت می باشد.
5-حافظه EEPROM از این حافظه برای نگهداری محتوای متغیرهایی استفاده می شود که با قطع جریان برق میکرو این اطلاعات از بین نروند استفاده می شود. مثلا نگهداری پسورد
6- و حافظه داده خارجی

بالای صفحه


[ برگشت به صفحه اول ]