طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
اندازه گیری ضربان قلب توسط تمامی انگشتان دست. نمایش بر روی سون سگمنت سه رقمی LED. ذخیره ضربان های اندازه گیری شده تا 250 مورد. نمایش اندازه گیری های ثبت شده توسط کلید های Up و downاین پروژه یک دماسنج ساده می باشد که توانایی اندازه گیری دما از منفی 40 تا مثبت 120 درجه سانتی گراد با دقت دو رقم اعشار را دارد.یک سیستم امنیتی که دارای یک کاربر اصلی می باشد و توسط این کاربر می توان کاربرهای متعددی با پسورد های مجزا تعریف نمود. می توان تا 100 کاربر و 100 پسورد مختلف را تعریف، و در قسمت ورود هر یک از اعضاء که نام کاربری و رمز عبور خود را بدرستی وارد کند یک رله به همراه LED روشن خواهد شد.ورودی این فرکانس متر قادر است با ولتاژهای 12 تا 500 ولت AC کار کند. ماکزیمم فرکانس اندازه گیری 20KHz می باشد. همچنین با تعیین نرخ نمونه برداری می توانید فرکانس را تا دو رقم اعشار اندازه گیری نمائید.اندازه گیری ولتاژ DC از 0 تا 24 ولت با سه رقم دقت (اعشار) و
اندازه گیری دما از منفی 20 تا مثبت 100 درجه سانتی گراد. دارای نمایشگر السیدی
پروژه اندازه گیری ضربان قلب با نوک انگشتان و avr

MCP-17

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

MCP-29

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

MCP-12

پروژه سیستم امنیتی با قابلیت تعریف کاربر و رمز عبور با avr
پروژه فرکانس متر صنعتی 500 ولت 20KHz با avr

MCP-1

پروژه فرکانس متر صنعتی 500 ولت 20KHz با avr
پروژه ولت متر DC و دماسنج با avr

MCP-16

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

بالای صفحه


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