تور لحظه آخری
امروز : چهارشنبه ، 5 اردیبهشت 1403    احادیث و روایات:  امام صادق (ع):تکمیل روزه به پرداخت زکاة یعنى فطره است، همچنان که صلوات بر پیامبر (ص) کمال نماز است. ...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر کاتالیزور

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

تشریفات روناک

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

تعمیرات مک بوک

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

 






آمار وبسایت

 تعداد کل بازدیدها : 1797743160




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

طریقه آموزش سریع میکروکنترلر AVR : كامپيوتر و اينترنت


واضح آرشیو وب فارسی:آشپز آنلاین:
فهرست مطالب:
• فيوز بيت ها، منابع کلاک وReset
• آشنايي با زبان C
• پروژه 1: فلاشر ساده
• پروژه 2: کانتر يک رقمي با 7-Segment
• پروژه 3: نمايشگر کريستال مايع (LCD)
• پروژه 4: اسکن صفحه کليد ماتريسي
• پروژه 5: نمايشگرهاي LED Dot Matrix
• وقفه هاي خارجي
• پروژه 6: آشکار ساز عبور از صفر
• تايمر/کانتر صفر
• پروژه 7: فرکانس متر ديجيتال
• پروژه 8: کنترل موتورDC باPWM
• عملکرد تايمر دو
• پروژه 9: ساعت با وضعیت آسنکرون تایمر
• تايمر/کانتر يک
• پروژه 10: کنترل سروُ موتور
• پروژه 11: توليد موج سينوسي
• پورت سريال (RS-232)
• پروژه 12: پورت سريال در ويژوال بيسيک
• پروژه 13: ارتباط دهي USB با RS232
• باس I2C (TWI)
• پروژه 1۴: ارتباط با EEPROM هاي I2C
• مبدل آنالوگ به ديجيتال
• پروژه 1۵: اندازه گيري دما با سنسور LM35
• مقايسه کننده ي آنالوگ
SPI Bus •
Mode • هاي Sleep و تايمر Watchdog

دانلود PDF

میکروکنترلر چیست :

قطعه ای که این روزها دارد جای خود را در خیلی از وسایل الکتریکی باز میکند .از تلفن گرفته تا موبایل از ماوس لیزری که الان دستتان روی آن است و دارین باهاش کامپیوتر رو کنترل میکنید تا هر وسیله ای که بتوان پیچیدگی رو در اون دید میتونید یک میکروکنترلر رو ببینید .

کلمه میکروکنترلر:

این کلمه از دو کلمه 1- میکرو2-کنترلرتشکیل شده

1-میکرو : میدونین که این یک واحد یونانی است و برابر با 10 به توان منفی 6 متر است. یعنی یک ملیونیوم متر واحده خیلی کوچیکیه نه....ولی واحدهای خیلی کوچیکتر از این هم داریم که در الکترونیک مورد استفاده قرار میگیرند در قسمتهای بعدی توضیحیهاتی راجع به این واحد ها و موارد استفاده آنها داده میشه.

2-کنترلر : که همه معنی و مفهومشو میدونین . یعنی کنترل کننده به تعبیری یعنی "مغز " البته بدون تفکر فقط دستوراتی که به اون داده میشه به نحو احسن انجام میده.



حالا چرا این کلمات ؟

به نظر من کلمه میکرو به دو منظور استفاده شده منظور اول و مهم سرعت عمل میکروکنترلر است که میتواند تا یک ملیونیوم ثانیه باشد و دستوارتی که به اون میدیم با این سرعت انجام بده به همین خاطر واژه میکرو رو به اون اختصاص دادن البته معنی دوم آن شاید کوچیکی این قطعه باشد که تا یک ملیونیوم متر کوچیک شده شاید باور کردنی نباشه ولی در یک تراشه ممکنه بیش از یک ملیون تراتزیستور به کار رفته باشه. این کلمه وقتی اهمیتش کامل میشه که با واژه کنترلر عجین بشه تا معنیش کامل بشود .

حالا نحوه انجام دادن کار میکروکنترلر را به صورت کلی بررسی میکنیم :

تا حالا همه شما با ماشین حساب کار کردین تا حالا به نحوه کار کردنش فکر کردین شما اطلاعاتتون را که همون عملیات ریاضی هست به وسیله صفحه کلید به اون میدید بعد ماشین حساب این اطلاعات رو بر مبنای دستوراتی که قبلا به اون داده شده پردازش میکند و جواب را رویlcd نمایش میدهد. در واقع یک میکروکنترلر برنامه ریزی شده به عنوان مغز ماشین حساب این اطلاعات یا داده رو از صفحه کلید میگیره روشون پردازش انجام میده و بعد بر روی lcd نمایش میده.

کار میکروکنترلر دقیقا مشابه این است میکرو کنترلر بر مبنای یک سری ورودی که به اون داده میشه مثلا این ورودی از یک سنسور دما باشه که درجه حرارت رو میگه یا از هر چیز دیگه مثل صفحه کلید بر مبنای این ورودی ها و برنامه ای که قبلا ما به اون دادیم خروجیشو تنظیم میکنه که ممکنه خروجیش یک موتور باشه یا یک lcd یا هر چیز دیگری که با الکتریسیته کار بکند. حالت دیگری هم میتونه باشه که فقط میکروکنترلر بر مبنای برنامه ای که به اون دادیم عمل کند و خروجیش رو فقط بر اساس برنامه بگیرد.

ساختمان دخلی میکروکنترلر:

کامپیوتری که الان بر روی اون دارین کار انجام میدین دارای یک پردازنده مرکزیه به نام cpu که از کنار هم قرار گرفتن چندین ملیون ترانزیستور تشکیل شده و بر روی اطلاعات پرداژش انجام میده . میکرو کنترلر هم عینا دارای یک پردازنده مرکزی به نام cpu است که دقیقا کار cpu کامپیوتر رو انجام میده با این تفاوت که قدرت و سرعت پردازشش از cpu کمتره که به اون میکروپرسسور میگن در بخش بعدی فرق میکرو پرسسور و میکروکنترلر را بررسی میکنیم. میکروکنترلر علاوه بر cpu دارای حافظه است که ما برنامه ای که بهش میدیم در اون قرار بگیره در کنار حافظه در میکروکنترلرهای امروزی تایمرها برای تنظیم زمان کانتر ها برای شمردنکانال های آنالوگ به دیجیتالپورت هایبرای گرفتن و دادن اطلاعات و امکاناتی دیگر که بعدا مفصل راجع به هر کدام توضیح داده میشه تشکیل شده و همه اینها در یک چیپ قرار گرفته که تنکنولوژی جدید اونو تو یک تراشه به اندازه یک سکه قرار داده.

تفاوت میکروپروسسور و میکروکنترلر:

میکروپرسسور همانطور که گفته شد یک پردازنده است و برای کار باید به آن چیپ های حافظه و چیز های دیگری را به اون اضافه کرد این امکان به درد این میخورد که بر حسب کارمان حافظه مناسب و دیگر قطعات را مانند تایمرها و غیره به صورت بیشتری استفاده کنیمولی مدار خیلی پیچیده میشود و از لحاظ هزینه هم هزینه بیشتر میشود به همین دلیل امروزه از میکروپرسسورها کمتر استفاده میشود اما این روزها میکرو کنترلر های جدید با حافظه های زیاد تعداد تایمر زیاد پورت های زیاد و تنوع بسیار زیاد انها بر حسب این امکانات دست ما را باز گذاشته است تا دیگر میکروپرسسورها را فراموش کنیم.

آیا میکروکنترلر چیز جدیدی را با خود آورده است ؟

جواب منفی است تمام کارهایی که ما با میکروکنترلر میتوانیم انجام بدهیم با قطعات دیگر هم میتوانیم انجام بدهیم چون ما قبلا هم تایمر داشتیم هم کانتر هم حافظه هم پردازنده و.... در واقع میکروکنترلر قطعه ای است با تمام این امکانات که به صورت یک آی سی آماده شده است و هزینهپیچیدگی و حجم را به نحوه قابل ملاحضه ای کاهش میدهد.

عیب میکروکنترلر:

میکروکنترلر با این همه مزایا که گفتیم دارای یک عیب کوچیک است .و آن سرعت پایین ! است آیا سرعتی معادل یک ملیونیوم ثانیه سرعت کمی است ؟ سرعت کمی نیست ولییک مثال شاید بحثو بهتر باز کند

یک گیت منطقی رو در نظر بگیرین که با توجه به ورودی خروجیشو تنظیم مکنه سرعت عمل این گیت منطقی 10 به توان منفی 9 ثانیه است یعنی نانو ثانیه ولی اگر ما بخواهیم این گیت رو با میکروکنترلر کار کنیم سرعتی معادل میکرو ثانیه داریم پس از لحاظ سرعت برای کاربردهای خیلی محدودی میکروکنترلر مناسب نیست.

معرفی انواع میکروکنترلر

تمام میکروکنترلرها جزء این 5 قسمت هستنند:
1) 8051
2) Pic
3) Avr
4) 6811
5) Z8

البته مدل های 6811 ساخت شرکت موتورلا و z8 ساخت شرکت زایلوگ حداقل در ایران خیلی کم استفاده می شوند و رقابت اصلی بین سه نوع دیگر است.
تا به امروز هر میکروکنترلری که ساخته شده زیر مجموعه یکی از این5 نوع است. البته کارخانه های خیلی زیادی با مارک های مختلف میکرو کنترلر تولید میکنند ولی همه اونها زیر مجموعه یکی از این 5 قسمت هستنند .شما برای هر کدام از این5 نوع میکروکنترلر میتوانید میکروکنترلر های مختلفی از شرکت های مختلفی را پیدا کنید.(البته در بازار ایرن کمی با مشکل).
اما خوشبختانه همه میکروکنترلر هایی که جزء هر کدام از 5 نوع بالا باشند از یک برنامه پیروی میکنند. بدین معنا که اگر شما کار با یکی از مدل های آن میکرو را یاد گرفته باشید مثل اینکه کار با تمام میکروکنترلرهای آن نوع را یاد گرفته اید.مثلا شما اگر با یکی از مدل های میکروکنترلر avr مثلا atmega8 را یاد گرفته باشید دیگر با صد ها مدل دیگر میکروکنترلر avr مشکلی ندارید وتقریبا بدون هیچ مشکلی میتوانید با دیگر مدل های این میکرو کار کنید.
اما یه مشکل که در میکروکنترلر ها وجود دارد این است که این5 نوع از لحاظ برنامه نویسی به هیچ وجه با هم دیگر سازگاری ندارند . به طور مثال اگر شما میکروکنترلر های avr و 8051 را کامل یاد گرفته باشید حتی ساده ترین برنامه رو روی یک میکروکنترلر pic نمیتوانید اجرا کنید. واین یکی از بزرگترین عیب و مشکل برای یاد گیری میکرو است .بنابراین از همون اول باید یک انتخاب درست داشته باشید و میکروکنترلر مناسب را برگزینید تا با یادگیری آن میکروکنترلر بتوانید بعدا به سادگی پروژه های خود را اجرا کنید . البته بسیاری از دوستان هستنند که کار با چند میکروکنترلر را میدونند و حتما این هم از هوش بالای ایرانی هاست. ولی اگر به صورت خیلی حرفه ای نخواهید وارد این بحث بشوید باید یکی از این میکروکنترلرها را انتخاب کنید و کار با آن را آغاز کنید. در قسمت بعدی شما را برای این انتخاب کمک خواهم کرد.

معایب و مزایای میکروکنترلر های مختلف نسبت به هم

از آن جای که 6811 و z8 خیلی کمتر استفاده میشوند به معرفی سه نوع دیگر میپردازم.

1) : اول از 8051 که اولین میکروکنترلری بود که به دست بشر ساخته شد شروع میکنیم . همانطور که در مقاله قبلی گفته شد ابتدا این میکروکنترلر توسط شرکت بزرگ intel ساخته شد .اما بعدا intel این امکان را به دیگر شرکت ها داد که این میکروکنترلر را تولید کنند و شرکت هایی مانند ATMEL , PHILIPS , SIEMENS , DALLAS و... به تولید این میکروکنترلر پرداختنند یکی از شرکت هایی که به صورت گسترده به تولید این تراشه پرداخت ATMEL بود که مدل های مختلف میکروکنترلر ساخت این شرکت در سرار جهان و در ایران به خوبی یافت می شود. اما اگربخواهیم به صورت کلی سیر پیشرفت این نوع میکروکنترلر رو در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای 8051 که الان تولید میشود با توجه به این پیشرفت شگفت در تمام زمینه ها که صنایع دیگر در دنیا دارند پیشرفت زیادی ندارد به طور مثال AT89S5X که میکروکنترلر 8051 جدید ساخت ATMEL است نسبت به مدل های اولیه 8051 پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مدل جدید 8051 تقریبا حافظه ای برابر یک صدم (0.001 ) میکروکنترلر های AVR را دارد و سرعتش 4 برابر کمتر از میکروکنترلر های PIC و 12 بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت همین مدل جدید AT89S5X حول و حوش 1000 تومان است که قیمت بسیار مناسبی است.
این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است.

2) میکروکنترلر PIC
واقعا میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته متذکر شوم که در ایران این آمار به نفع AVR است. این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد . این میکروکنترلر با مدل های مختلفPIC16*** و PIC12***X که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگره که هر کدام مفهوم خاصی داره که چون بحث ما آموزش AVR است از روی اون سریع میگزریم X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند.

3)میکروکنترلر AVR
به میکروکنترلر AVR میرسیم که به نظر من و خیلی از دیگر بهترین میکروکنترلر موجود در بازار است البته خود من با 8051 و AVR بخصوص AVR خیلی کار کردم ولی تجربه ای با PIC ندارم و قضاوت من ممکنه یه طرفه باشه ولی این نظر بسیاری از کسانی است که با AVR کار کرده اند .به دلایلی.....
اول از همه سرعت این میکروکنترلر بسیار بالاست و به قولی دستوراتی که بهش داده میشه در یک سیکل کلاک انجام میده در صورتی که این سیکل کلاک برای 8051 باید تقسیم بر12شودو برای PIC باید تقسیم بر 4 بنابراین AVR سریعترین میکروکنترلر موجود در بازار است . AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLL پشتیبانی میکند که باعث تولید کدهای بیشتری میشود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای 8051 و PIC نوشته میشود کوتاهتر است. امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و... راحت میکند .در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا و سایل دیگر وصل کرد و با وسایل دیگر به راحتی ارتباط برقرار کند. قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است به طوری که یک میکروکنترلر AVR تقریبا پیشرفته رو با قیمت حول و حوش 3 تا 4 هزار تومان خرید .
خلاصه من که خیلی با این میکرو ور رفتم و پروژه های خیلی زیاد و پیچیده ای رو باهاش اجرا کردم بسیار راضی هستم و هیچ مشکلی باهاش نداشتم.اگر هم مشکلی بوده از جانب من بوده نه میکروکنترلر . خلاصه اگر برنامه نویسی و کار با این میکروکنترلر رو خوب یاد بگیرید هر کاری رو میتونید باهاش انجام بدید.

پروگرام میکروکنترلر

شاید تا حالا به نظرتون رسیده باشه که این میکروکنترلر رو چگونه میشه برنامه ریزی کرد تا کار مورد نظرمان را انجام بده در صورتی که یک میکروکنترلر برنامه ریزی نشده هیچ کاری رو نمیتونه انجام بده و هیچ کاربردی نداره در واقع برنامه هر میکرو روح وجانی است که در اون دمیده میشه و اون رو زنده میکنه.
برای برنامه ریزی میکروکنترلر نیاز به دستگاه یا بردی هست به نام پروگرامر که یه پل ارتباطیه بین کامپیوتر و میکروکنترلر . پروگرامر را هم میشه از بازار تهیه کرد و هم میشه اون رو ساخت.
البته پروگرامرهای مختلفی در بازار هستنند که متانسب با کاربردشان قیمت های مختلفی دارند بعضی ها فقط چند مدل رو پروگرام میکنند بعضی از پروگرامر ها همه فن حریفند و تمام میکروکنترلر های 8051,AVBR , PIC , رو برنامه ریزی میکنند به طبع قیمت زیادتری دارند.
اما میشه براحتی برای میکروکنترلری که داریم یه پروگرامر ساخت اغلب نقشه هایی هستنند که میشه یه پروگرامر ساخت که در همین سایت آقا حامد نقشه مدل STK300-200 رو توضیح داده.
ولی توصیه من اینه که خودتون رو به دردسر نندازین و برای همیشه یه پروگرامر بخرین ارزششو داره چون همیشه کاربرد داره و همیشه به اون احتیاج دارین.

در این قسمت از مقاله قصد دارم تا لغات و اصطلاحاتی که در این موضوع هست رو تا اونجایی که بتونم روشن کنم برای این کار قسمت اول برگه اطلاعاتی atmega32 که تقریبا تمام خصوصیات میکروکنترلر های avr را داراست انتخاب کردم و به توضیح بیشتر موارد میپردازم که اکثر این اصطلاحات رو در بر داره در طول مقاله سعی میکنم توضیحاتی راجع به سخت افرار میکرو بدم.

اگر برگه اطلاعاتی atmega32 نوشته شرکت atmel (بزرگترین شرکت تولیکننده میکروکنترلر avr )
رو دیده باشید این مطالب در صفحه اول آن درج شده است :

Features
• High-performance, Low-power AVR® 8-bit Microcontroller
• Advanced RISC Architecture
– 131 Powerful Instructions – Most Single-clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
– On-chip 2-cycle Multiplier
• Nonvolatile Program and Data Memories
– 32K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles
– Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program
True Read-While-Write Operation
– 1024 Bytes EEPROM
Endurance: 100,000 Write/Erase Cycles
– 2K Byte Internal SRAM
– Programming Lock for Software Security
• JTAG (IEEE std. 1149.1 Compliant) Interface
– Boundary-scan Capabilities According to the JTAG Standard
– Extensive On-chip Debug Support
– Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
• Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode
– Real Time Counter with Separate Oscillator
– Four PWM Channels
– 8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels in TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x
– Byte-oriented Two-wire Serial Interface
– Programmable Serial USART
– Master/Slave SPI Serial Interface
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
• Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection
– Internal Calibrated RC Oscillator
– External and Internal Interrupt Sources
– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby
and Extended Standby
• I/O and Packages
– 32 Programmable I/O Lines
– 40-pin PDIP, 44-lead TQFP, and 44-pad MLF
• Operating Voltages
– 2.7 - 5.5V for ATmega32L
– 4.5 - 5.5V for ATmega32
• Speed Grades
– 0 - 8 MHz for ATmega32L
– 0 - 16 MHz for ATmega32
• Power Consumption at 1 MHz, 3V, 25°C for ATmega32L
– Active: 1.1 mA
– Idle Mode: 0.35 mA
– Power-down Mode:

مدل ATMega32

یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است، میکروکنترلر های شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود.
کامپایلر هایی به زبان BASIC و C که زبانهای پرکاربرد در دنیا هستند برای این نوع میکرو ها طراحی شده است و علاوه برآن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده کرد.
به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این نوع از میکروکنترلر ها می تواند مورد استفاده قرار گیرد.
میکروکنترلر های AVR به سه دسته اصلی تقسیم می شوند:
·سری AT90S یا AVR
·سری TINYAVR
·سری MEGAAVR
میکروکنترلر های نوع MEGAAVRدارای قابلیت های بیشتری نسبت به دو سری دیگر هستند. در اینجا به بررسی مشخصات و پایه های یکی از میکروکنترلرهای پرکاربرد سری MEGA به نام ATMega32 می پردازیم:


ATMega32




مهمترین مشخضات این میکروکنترلر 40 پایه عبارت است از:

·کارایی بالا و توان مصرفی کم
·32 رجیستر (ثبات) 8 بیتی
·سرعت با سقف 16 میلیون دستور در ثانیه در فرکانس 16 Mhz
·32 کیلو بایت حافظه FLASH داخلی قابل برنامه ریزی با قابلیت ده هزار بار نوشتن و پاک کردن
·2 کیلو بایت حافظه داخلی SRAM
·1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن
·قابلیت ارتباط JTAG
·دو تایمر/شمارنده هشت بیتی
·یک تایمر/شمارنده شانزده بیتی
·چهار کانال PWM
·هشت کانال مبدل A/D ده بیتی
·یک مقایسه کننده آنالوگ داخلی
·WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی
·ارتباط سریال برای برنامه ریزی: ISP
·USART سریال قابل برنامه ریزی
·دارای شش حالت SLEEP
·منابع وقفه داخلی و خارجی
·اسیلاتور داخلی RC
·کار با ولتاژ 4.5 تا 5.5
·فرکانس کاری 0 تا 16 مگاهرتز
·32 خط داده ورودی و خروجی قابل برنامه ریزی
·...
پایه های میکروکنترلرATMega32

·1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن
·قابلیت ارتباط JTAG
·دو تایمر/شمارنده هشت بیتی
·یک تایمر/شمارنده شانزده بیتی
·چهار کانال PWM
·هشت کانال مبدل A/D ده بیتی
·یک مقایسه کننده آنالوگ داخلی
·WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی
·ارتباط سریال برای برنامه ریزی: ISP
·USART سریال قابل برنامه ریزی
·دارای شش حالت SLEEP
·منابع وقفه داخلی و خارجی
·اسیلاتور داخلی RC
·کار با ولتاژ 4.5 تا 5.5
·فرکانس کاری 0 تا 16 مگاهرتز
·32 خط داده ورودی و خروجی قابل برنامه ریزی
·...
پایه های میکروکنترلرATMega32:






 








سري 16 Atmega

ميكرو كنترلر AVR
(سري 16 Atmega)


بخش اول:
سخت افزار ميكرو كنترلرهاي AVR
Atmega 16

نوع معماري سخت افزارداخلي: (Reduced Instruction Set Computer)




مشخصه هاي اصلي اين معماري :
هدف:كم كردن تعداد دستورالعمل هاي اجرا شده توسط CPU ميكرو كنترلر
سرعت بالا – كم مصرف – 8 بيتي Cmos
تعداد دستورالعمل هاي اسمبلي:131دستورالعمل قدرتمند
مدت زمان اجرا: اكثرا در يك سيكل كاري
تعداد اجرا دستورالعمل: ماكزيمم 16 ميليون دستورالعمل در1 ثانيه( در فركانس كاري 16 مگاهرتز)
32رجيستر 8 بيتي داخلي



حافظه:
- حافظه Flash : 16كيلوبايت با قابل برنامه ريزي (In-System Self-Programmable )
- Boot loader
- حافظه EEPROMداخلي:512 بايت ( 100000 بار قابليت خواندن و نوشتن اطلاعات )
- حافظه SRAM داخلي : 1 كيلو بايت ( 100000 بار قابليت خواندن و نوشتن اطلاعات )
- قفل برنامه ريزي براي امنيت بيشتر نرم افزار




امكانات جانبي:

- ارتباط Jtag: شامل: اسكن كردن امكانات جانبي (IEEE std. 1149.1 Compliant)
پشتيباني از ديباگ كردن تراشه - برنامه ريزي حافظه هاي Flash - برنامه ريزي حافظه EEPROM - فيوزها و بيت هاي قفل ميكرو
- تايمر/كانتر: دو عدد تايمر / كانتر 8بيتي داراي امكان تقسيم فركانسي مجزا و داراي مد Compare
يك عدد كانتر / كانتر 16 بيتي با تقسيم فركانسي مجزا و داراي مدهاي Compare و Capture

- RTC : (Counter) Real Time Clockبا اسيلاتور مجزا

- PWM : 4 كانال (Pulse With Modulation)

- ADC : 8 كانال ورودي تك پايه مبدل آنالوگ به ديجيتال با 10بيت خروجي – با دوكانال تفاضلي با بهره قابل تنظيم 1Xو10Xو200X

- Two Wire : ارتباط سريال دو سيمه

- Usart: ارتباط سريال قابل برنامه ريزي

- SPI: ارتباط سريال – به صورت Master / Slave

- Watchdog: قابل برنامه ريزي با اسيلاتور داخلي مجزا

- مقايسه كننده آنالوگ داخلي

- Sleep : با شش مد مختلف : Idell و ADC Noise Reduction و Power – Dowen و standby و Extended Standby





ولتاژهاي عملياتي: 4.5 ولت تا 5.5ولت براي Atmega16

فركانس هاي كاري : 0 تا16 مگاهرتز براي Atmega16

قابليت هوشمند تشخيص افت ولتاژتغذيه

اسيلاتور RC داخلي كالبيره شده

منابع وقفه خارجي و داخلي

قابليت جريان دهي در حالت هاي مختلف

در حالت Active: 1.1 ميلي آمپر

در حالت Idle:0.35 ميلي آمپر

در حالت Power Down Mode: كمتر از 1 ميكرو آمپر

معایب و مزایای میکروکنترلر های مختلف نسبت به هم

1- میكرو كنترلر ۸۰۵۱



. این خانواده از میکرو کنترولر ها جزو اولین نوع میکرو کنترولر ها یی بود که رایج شده و جزو پیشکسوتان مطرح میشود . معروف ترین کامپایلر برای این نوع میکرو keil یا franklin می باشد میکرو های این خانواده به نوسان ساز نیاز مند هستند و درمقابل خانواده pic یا AVR از امکانات کمتری برخور دار می باشد معروف ترین آی سی ها این خانواده ۸۹S51 یا ۸۹C51 می باشد .

ابتدا این میکروکنترلر توسط شرکت بزرگ intel ساخته شد .اما بعدا intel این امکان را به دیگر شرکت ها داد که این میکروکنترلر را تولید کنند و شرکت هایی مانند ATMEL , PHILIPS , SIEMENS , DALLAS و… به تولید این میکروکنترلر پرداختنند یکی از شرکت هایی که به صورت گسترده به تولید این تراشه پرداخت ATMEL بود که مدل های مختلف میکروکنترلر ساخت این شرکت در سرار جهان و در ایران به خوبی یافت می شود .

اما اگربخواهیم به صورت کلی سیر پیشرفت این نوع میکروکنترلر رو در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای ۸۰۵۱ که الان تولید میشود با توجه به این پیشرفت شگفت در تمام زمینه ها که صنایع دیگر در دنیا دارند پیشرفت زیادی ندارد به طور مثال AT89S5X که میکروکنترلر ۸۰۵۱ جدید ساخت ATMEL است نسبت به مدل های اولیه ۸۰۵۱ پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست .

به صورتی که که همین مدل جدید ۸۰۵۱ تقریبا حافظه ای برابر یک صدم (۰.۰۰۱ ) میکروکنترلر های AVR را دارد و سرعتش ۴ برابر کمتر از میکروکنترلر های PIC و ۱۲ بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت همین مدل جدید AT89S5X حدود ۱۰۰۰ تومان است که قیمت بسیار مناسبی است.

این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است .





۲)میکروکنترلرPIC



این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است . واقعا میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته متذکر شوم که در ایران این آمار به نفع AVR است. این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد .

این میکروکنترلر با مدل های مختلفPIC16*** و PIC12***X که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگره که هر کدام مفهوم خاصی داره که چون بحث ما آموزش AVR است از روی اون سریع میگزریم X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند .




۳)میکروکنترلر


AVR این خانواده از میکرو کنترلرها تمامی امکانات ۸۰۵۱ را دارا می باشد و امکاناتی چون ADC (مبدل آنالوگ به دیجیتال) - نوسان ساز داخلی و قدرت و سرعت بیشتر - EEPROM (حافظه) از جمله مزایای این خانواده می باشد مهم ترین آی سی این خانواده Tiny و Mega است.
به میکروکنترلر AVR میرسیم که بهترین میکروکنترلر موجود در بازار است .اول از همه سرعت این میکروکنترلر بسیار بالاست و به قولی دستوراتی که بهش داده میشه در یک سیکل کلاک انجام میده در صورتی که این سیکل کلاک برای ۸۰۵۱ باید تقسیم بر۱۲شودو برای PIC باید تقسیم بر ۴ بنابراین AVR سریعترین میکروکنترلر موجود در بازار است .
AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLL پشتیبانی میکند که باعث تولید کدهای بیشتری میشود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای ۸۰۵۱ و PIC نوشته میشود کوتاهتر است. امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و… راحت میکند .
در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا و سایل دیگر وصل کرد و با وسایل دیگر به راحتی ارتباط برقرار کند. قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است به طوری که یک میکروکنترلر AVR تقریبا پیشرفته رو با قیمت حول و حوش ۳ تا ۴ هزار تومان خرید .
شرکت Atmel 5 میکروکنترلر ۸ بیتی AVR جدید با توان مصرفی بسیار پایین برای استفاده در مدارات با تعداد کدهای بالا و اینترفیسینگ زیاد عرضه نموده است. این میکروکنترلر ها با نام های ATmega640، ATmega1280، ATmega2560، ATmega1281، ATmega2561 عرضه شده است و دارای ۶۴ تا ۲۵۶ کیلو بایت flash و ۸ کیلو بایت RAM به صورت داخلی می باشد.

این میکروهای جدید مدارات جانبی میکروها را با توجه به مدارات داخلی خود کاهش داده است که از آن جمله می توان به وجود یک اسیلاتور RC 8 مگا هرتزی در داخل خود که باعث حذف اسیلاتور خارجی گشته است را نام برد؛ از دیگر قابلیت های جالب این میکرو مصرف بسیار پایین آن می باشد این میکرو که با ۱.۵ ولت کار می کند در حالت power down تنها ۱۰۰ نانو آمپر مصرف می کند که باعث افزایش عمر باتری خواهد شد. مدل ۱۰۰ پین این میکرو ها داراری ۴ کانال UART و ۱۶ عدد A/D می باشد.






این صفحه را در گوگل محبوب کنید

[ارسال شده از: آشپز آنلاین]
[مشاهده در: www.ashpazonline.com]
[تعداد بازديد از اين مطلب: 7041]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن