اموزش برنامه نویسی میکروکنترلرهای avr (جلسه هشتم)
در ادامه اموزش برنامه نویسی میکروکنترلر avr در این پست با پین های میکروکنترلرهای ATmega16 و ATmega32 اشنا می شوید. این دو میکرو از نظر تعداد پین و امکانات کاملا شبیه به هم هستند و تنها تفاوت انها حافظه فلش انها است که در ATmega16 حافظه فلش 16 کیلوبایت و در ATmega32 حافظه فلش 32 کیلوبایت میباشد, بنابراین حجم برنامه ای که برای ATmega16 مینویسیم حداکثر باید 16 کیلوبایت و برای مگا32 حداکثر 32 کیلوبایت باشد .
از بین تمام میکروهای خانواده avr این دو میکرو بیشترین استفاده را در ایران دارند (در کنار ATmega8) که اکثر پروژهای دانشجویی و … با این میکروها انجام می شود, در ادامه پروژه هایی که در سایت قرار داده خواهد شد اکثرا با همین میکرو ها هستند.
معرفی 32/ATmega 16 :
32/ATmega 16 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .
میکروکنترلرهای 32/ATmega 16 دارای چهار پورت می باشند:
- PORT A
- PORT B
- PORT C
- PORT D
که هر پورت علاوه بر اینکه بعنوان یک پورت معمولی(ورودی خروجی) میتوانند باشند کارهای دیگری نیز انجام میدهند. بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به دیجیتال ) استفاده شود که این خاصیت های مختلف پورت, در برنامه ای که نوشته میشود تعیین خواهد شد .
هر پورت شامل 8 بیت است (یعنی هر کدام از پورت ها خود شامل 8 پین یا پایه است). هریک از این پایه ها می توانند به عنوان ورودی و خروجی(I/O ) عمل کنند. پس جمعا یک میکروکنترلر ATMEGA16 یا ATMEGA32 دارای ۳۲ پین (پایه) ورودی- خروجی است. تمام این ۳۲ پایه علاوه بر داشتن این خاصیت حداقل از یک ویژگی دیگر نیز برخوردارند.
در تصویر زیر این چهار پورت که شامل 32 پین می باشد مشخص شده است:
این میکرو شامل 40 پایه می باشد که 32 تای انها مشخص شد و در ادامه 8 پین دیگر معرفی می شود:
- پین شماره 9 یا RESET : این پین ریست سخت افزاری میباشد, برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن میکرو باید به زمین وصل شود . توصیه می شود برای ریست سخت افزاری از مدار زیز استفاده کنید
- پین شماره 10 و 11 (GND و VCC) : تغذیه میکرو به این دو پین متصل می شود, مثبت به VCC و منفی به GND وصل میشود. (تغذیه یا باتری برای 32/ATmega 16 با پسوند A مثلا ATmega16A از 4.5V تا 5.5V میتواند باشد) .
- پین های 12 و 13 : به کریستال خارجی وصل میشوند (در صورت استفاده از کریستال خارجی). میکروکنترلرهای 32/ATmega 16 می توانند تا حداکثر فرکانس 8 مگاهرتز با فرکانس داخلی و 16 مگاهرتز در صورت استفاده از کریستال خارجی کار کنند. منظور از فرکانس ﺳﺮﻋﺖ اجرای دستور در ثانیه می باشد. به عنوان مثال در فرکانس 16 مگاهرتز میکرو می تواند تا 16 میلیون دستور را در ثانیه اجرا کند. نحوه اتصال کریستال خارجی در تصویر زیر مشخص شده است
- پین های 30 و 31 و 32 : در صورتی که از ADC میکرو (مبدل انالوگ به دیجیتال) استفاده کردیم, این پین ها را به ولتاژ مرجع خود متصل می کنیم
همانطور که گفته شد, 32 پین نشان داده شده در تصویر علاوه بر ورودی و خروجی بودن ویژگی های دیگری هم دارند که با این ویژگی ها در پروژه هایی که در ادامه اموزش قرار خواهم داد اشنا می شوید .
اموزش برنامه نویسی میکروکنترلرهای avr :
- جلسه 1 : برنامه نویسی میکروکنترلر و اردوینو: انواع متغیر در زبان C
- جلسه 2 : برنامه نویسی میکروکنترلر و اردوینو: عملگرها بخش ۱
- جلسه 3 : برنامه نویسی میکروکنترلر و اردوینو: عملگرها بخش ۲
- جلسه 4 : برنامه نویسی میکروکنترلر و اردوینو: عملگرها بخش ۳
- جلسه 5 : برنامه نویسی میکروکنترلر و اردوینو: حلقه های تکرار
- جلسه 6 : برنامه نویسی میکروکنترلر و اردوینو: جملات شرطی
- جلسه 7 : اشنایی با محیط نرم افزار CodeVisionAVR
- جلسه 9(اخر) : اشنایی با پروگرام کردن میکروکنترلر (ریختن برنامه روی میکرو)
نظر یادتون نره…
سلام و خسته نباشید به همه شما عزیزان
واقعا سایت بی نظیری دارید
ممنونم ازتون
در حین ریست تا لحظه کوتاهی
بعد از آن تمامیپایه ها GPIOبه
صورت ……………. تظیم میگردد
خاهشا بگید
خییلی عالی توضیح داده شده.ممنون
بسیار عالی
سلام
در میکرو کنترلر atmega 8 برای کنترل سرعت و جهت چرخش موتور dc باید از کدام پایه ها استفاده کنیم اگه ممکنه راهنمایی کنید
ممنون
سلام, کنترل سرعت موتور dc توسط تایمر ها در میکرو و ایجاد موج pwm انجام می شود, برای اطلاع بیشتر پست “کنترل دور موتور dc با میکروکنترلر avr” را مطالعه کنید.
سلام
ممنون از آموزشتون
ساده و کوتاه توضیح دادین و مفهومی
ولی کاشکی در مورد کار هر کدوم از پین ها توضیح بدین
ممنونم
سلام, دیتاشیت فارسی ATmega16 و ATmega32 قبلا قرار داده شده که می تونید مطالعه کنید
عالی آموزش هاتون فوق العادست
سلام. میتونم بگم عالی بود توضیحاتتون. من شدیدا تازه کار هستم سایتتون و این مطلب بشدت کمکم کرد. ممنونم