طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
یک مدار صوتی جهت پخش فایل های صوتی MP3 و WMV با Sampling rate 8KHz-48KHz و خروجی دیجیتال به آنالوگ 24 بیتی می باشد که از حافظه های Micro SD تا 32GB و فرمت های FAT16 و FAT32 پشتیبانی می کند.با استفاده از ماژول HM-R و HM-T ابتدا به کمک سنسور LM35 دما اندازه گیری شده و به ماژول HM-T ارسال می شود، در سمت گیرنده سیگنال توسط HM-R دریافت شده و بر اساس مقدار دما دور موتور به صورت PWM کنترل می شود. همچنین قابلیت تعریف رنج دمای کاری برای موتور نیز امکان پذیر می باشد.با استفاده از میکروکنترلر ATMEGA8 و کیبورد 3×4 می توان حروف و اعداد را تایپ کرد و درون یک متغییر ذخیره نمود و محتوای این متغییر بر روی نمایشگر LCD نمایش داده می شود. در صورتی که فضای LCD پر شود کاراکترها به سمت چپ شیفت داده می شوند. تمامی حروف و اعداد کوچک و بزرگ انگلیسی قابل تایپ می باشند.خروجی سه کاناله با کنترل سرعت به صورت مجزا، دو کلید افزایشی و کاهشی برای کنترل سرعت در هر کانال، فرکانس های مختلف و ثابت برای هر کانال، جریان خروجی بیش از 10 آمپر و ولتاژ بیش از 30 ولتیک کنترل کننده موتور با جریان خروجی 2 آمپر شامل کنترل جهت چرخش و سرعت می باشد. این مدار دارای نمایشگر LCD متنی بوده که سرعت و جهت چرخش موتور را نمایش می دهد.
پروژه mp3 پلیر ساده با avr به زبان C

MCP-32

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

MCP-8

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

MCP-3

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

MCP-19

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

MCP-9

کنترل سرعت و جهت موتور DC
برنامه نویسی میکروکنترلرها 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- و حافظه داده خارجی

بالای صفحه


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