طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
این پروژه یک دماسنج ساده می باشد که توانایی اندازه گیری دما از منفی 40 تا مثبت 120 درجه سانتی گراد با دقت دو رقم اعشار را دارد.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. می توان رله مربوطه را روی هر کلید دلخواه تعریف نمود.در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود.این پروژه یک مدار واسط I/O می باشد که دارای 4 خروجی رله است. توسط نرم افزار کنترلی که قابل نصب بروی ویندوز های XP, Win7, Win8, Win10 می باشد می توان هر چهار رله را به صورت مجزا فعال و غیر فعال کرد.این پروژه در اصل یک ساعت زنگ دار می باشد که قابلیت برنامه ریزی آلارم صبحگاهی و تنظیم 5 برنامه یادآور را دارد. با تنظیم آلارم هر روز راس ساعت تنظیمی آلارم پخش می شود، همچنین با تنظیم یادآور ها در ساعت و تاریخ مشخص نیز آلارم پخش می شود. از امکانات آن می توان برای هر یادآور یک نام تعیین کرد (20 کاراکتر اسکی) با قابلیت تایپ حروف کوچک و بزرگ انگلیسی با کیبورد 3×4 و ...
پروژه دماسنج ساده با avr

MCP-29

پروژه دماسنج ساده با avr
پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ

MCP-30

پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ
پروژه محافظ لوازم برقی با avr و نمایشگر سون سگمنت

MCP-21

پروژه محافظ لوازم برقی با avr و نمایشگر سون سگمنت
پروژه کنترل رله توسط پورت USB با AVR و C شارپ

MCP-31

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

MCP-7

پروژه آلارم صبحگاهی و یادآور با LCD گرافیکی و 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- و حافظه داده خارجی

بالای صفحه


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