ميكروكنتلرها

amirali1010

عضو جدید
میکرو کنترلر چیست؟

1- معرفی میکروکنترلرها :

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

2- بخشهای مختلف میکروکنترلر :

میکروکنترلر ها از بخشهای زیر تشکیل شده اند

Cpu واحد پردازش

Alu واحد محاسبات

I /O ورودی ها و خروجی ها

Ram حافظه اصلی میکرو

Rom حافظه ای که برنامه روی آن ذخیره می گردد

Timer برای کنترل زمان ها

و . . .

3- خانواده های میکروکنترلر

خانواده : Pic - AVR - 8051

4- یک میکروکنترلر چگونه برنامه ریزی میشود .

میکرو کنترلر ها دارای کامپایلرهای خاصی می باشد که با زبان های Assembly basic, c می توان برای آنها برنامه نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام programmer که در این دستگاه ای سی قرار می گیرد و توسط یک کابل به یکی از در گاه های کامپیوتر وصل می شود برنامه نوشته شده روی آی سی انتقال پیدا میکند و در Rom ذخیره می شود .


5- با میکرو کنترلر چه کارهایی می توان انجام داد .

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

6- امکانات میکرو کنترلرها :

امکانات میکرو کنترلرها یکسان نیست و هر کدام امکانات خاصی را دارا می باشند و در قیمت های مختلف عرضه می شود .

7- شروع کار با میکرو کنترلر:

برای شروع کار با میکرو کنترلر بهتر است که یک زبان برنامه نویسی مثل c یا basic را بیاموزید سپس یک برد programmer تهیه کرده و برنامه خود را روی میکرو ارسال کنید سپس مدار خود را روی برد برد بسته و نتیجه را مشاهده کنید.

چنان چه در مدارهای الکترو نیکی تجربه ندارید بهتر است از برنامه های آ موزش استفاده کنید.

8- مقایسه خانواده های مختلف میکرو وکنترلرها:

خانواده 8051 :

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

خانواده AVR :

این خانواده از میکرو کنترلرها تمامی امکانات 8051 را دارا می باشد و امکاناتی چون ADC (مبدل آنالوگ به دیجیتال) – نوسان ساز داخلی و قدرت و سرعت بیشتر – EEPROM (حافظه) از جمله مزایای این خانواده می باشد مهم ترین آی سی این خانواده Tiny و Mega است.

خانواده pic :

این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است .

9- مزایای میکرو کنترلر نسبت به مدار های منطقی :

1- یک میکرو کنترلر را می توان طوری برنامه ریزی کرد که کار چندین گیت منطقی را انجام دهد.

2- تعداد آی سی هایی که در مدار به کار میرود به حداقل میرسد .

3- به راحتی می توان برنامه میکرو کنترلر را تغییر داد و تا هزاران بار میتوان روی میکرو برنامه های جدید نوشت و یا پاک کرد .

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


نظرات (0)
 

abnoos69

عضو جدید
میخوام با برنامه BASCOM و proteus7.7 , میکرو atmega32 یه چراغ راهنمایی بسازم اما نمی دونم چطوری باید این کار رو کنم .قبلا از راهنماییتون ممنونم
 

ali_511

عضو جدید
کاربر ممتاز
میخوام با برنامه BASCOM و proteus7.7 , میکرو atmega32 یه چراغ راهنمایی بسازم اما نمی دونم چطوری باید این کار رو کنم .قبلا از راهنماییتون ممنونم
سلام.
کتاب علی کاهه میتونه خیلی بهتون کمک کنه.
این کتابو دارین؟
 

ramos_kk77

عضو جدید
میخوام با برنامه BASCOM و proteus7.7 , میکرو atmega32 یه چراغ راهنمایی بسازم اما نمی دونم چطوری باید این کار رو کنم .قبلا از راهنماییتون ممنونم
سلام.اين كار خيلي سادست فقط كافيه بخواين.اقدام كنين زود موفق ميشين.
با استفاده از دستورات آسون و پر استفاده به راحتي انجام ميشه.
بايد برنامه نوشتن براي نمايش اعداد روي 7segment رو تمرين كنين بعدش ديگه كاري نداره
 

abnoos69

عضو جدید
سلام.اين كار خيلي سادست فقط كافيه بخواين.اقدام كنين زود موفق ميشين.
با استفاده از دستورات آسون و پر استفاده به راحتي انجام ميشه.
بايد برنامه نوشتن براي نمايش اعداد روي 7segment رو تمرين كنين بعدش ديگه كاري نداره

از راهنماییتون ممنونم امامتاسفانه من همون دستورات ساده رو هم بلد نیستم.
 

ali_511

عضو جدید
کاربر ممتاز
از راهنماییتون ممنونم امامتاسفانه من همون دستورات ساده رو هم بلد نیستم.

سلام
ببینید میتونید کتاب علی کاهه رو پیدا کنید؟
درمورد برنامه هم توضیح بیشتری بدید؟
تا ببینیم اگه میشه چند دستور لازم برای شما رو لااقل در اختیارتون قرار بدیم.
بازم اگه یهرفرنس داشته باشید خیلی بهتره.
حتما موفق میشید.
ما همراهیتون می کنیم.
 

ramos_kk77

عضو جدید
از راهنماییتون ممنونم امامتاسفانه من همون دستورات ساده رو هم بلد نیستم.
اشكالي نداره
اصلا اشكالي نداره
كتاب كاهه دستورات حلقه و پرش رو بخونين
تا يكم برنامه نويسي بياد دستتون و اميدوار بشين
اگه ندارينش كتاب مهندس عاملي هم خيلي مختصر و مفيد و كم حجمه
اگه اونم ندارين تو همين باشگاه هم آموزش بسكام وجود داره.همونو بخونين براحتي از پس كار بر مياين
من خودم اين برنامه رو نوشتم از اونيكه فكر ميكنين به مراتب ساده تره.
هر سوالي داشتين مطرح كنين اينجا كسي تنها نيست.
استارت بزنين همه كنار هميم مطمئن باشين راه ميفتين
 

abnoos69

عضو جدید
اشكالي نداره
اصلا اشكالي نداره
كتاب كاهه دستورات حلقه و پرش رو بخونين
تا يكم برنامه نويسي بياد دستتون و اميدوار بشين
اگه ندارينش كتاب مهندس عاملي هم خيلي مختصر و مفيد و كم حجمه
اگه اونم ندارين تو همين باشگاه هم آموزش بسكام وجود داره.همونو بخونين براحتي از پس كار بر مياين
من خودم اين برنامه رو نوشتم از اونيكه فكر ميكنين به مراتب ساده تره.
هر سوالي داشتين مطرح كنين اينجا كسي تنها نيست.
استارت بزنين همه كنار هميم مطمئن باشين راه ميفتين


از راهنمایی و دلگرمیتون صمیمانه ممنونم.کتاب هایی که گفتین رو ندارم و وقت کتاب خوندن رو هم ندارم چون باید تا جمعه این برنامه حاضر باشه.:(
 

abnoos69

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


سلام .اول به خاطر دلداری دادنتون ممنونم کلی امیدوار شدم .برنامه ای که میخوام اینه : چراغ راهنمایی 2 طرفه ای که در چراغ سمت راست (سبز 30 ثانیه
روشن و زرد 3 ثانیه و قرمز 50 ثانیه ) و در چراغ سمت چپ (سبز 47 ثانیه روشن و زرد 3 ثانیه و قرمز 33 ثانیه )
 

ali_511

عضو جدید
کاربر ممتاز
سلام .اول به خاطر دلداری دادنتون ممنونم کلی امیدوار شدم .برنامه ای که میخوام اینه : چراغ راهنمایی 2 طرفه ای که در چراغ سمت راست (سبز 30 ثانیه
روشن و زرد 3 ثانیه و قرمز 50 ثانیه ) و در چراغ سمت چپ (سبز 47 ثانیه روشن و زرد 3 ثانیه و قرمز 33 ثانیه )
سلام
خواهش میکنیم
سون سگمنت هم لازم هستکه براتون نمایش بده؟
 

abnoos69

عضو جدید
دوستان یعنی هیچ راهی نبود که به من کمک کنید تا این برنامه رو بنویسم ؟؟؟
 

abnoos69

عضو جدید
انگار سر همگی حسابی شلوغه که هیچ کس به تاپیک سر نمی زنه . به هر حال من برناممو نوووووووووووووووووشتم .
 

ICE-G

عضو جدید
کاربر ممتاز
سلام میشه برنامه اتون به منم بدید؟منم مشکل شما رو دارم.
 

sh85

مدیر بازنشسته
کاربر ممتاز
دوست عزیز من امروز پست شمارو دیدم . برنامه رو براتون گذاشتم .
سلام دوست عزیز
اگر این برنامه را بهترین برنامه نویس هم براتون می نوشت و بهتون به بهترین نحو هم توضیح می داد به این اندازه که خودتون رفتید دنبالش و نوشتید موثر و آموزنده نبود:gol:
راه های کوتاه به همون اندازه که کوتاه و ساده هستن به همون اندازه هم بی اثر هستن
حالا اگر در برنامتون مشکلی هست و یا در شبیه سازی مشکلی پیش اومده بگید تا اگر در توان بود کمکتون کنیم
موفق باشید:gol:
 

abnoos69

عضو جدید
سلام دوست عزیز
اگر این برنامه را بهترین برنامه نویس هم براتون می نوشت و بهتون به بهترین نحو هم توضیح می داد به این اندازه که خودتون رفتید دنبالش و نوشتید موثر و آموزنده نبود:gol:
راه های کوتاه به همون اندازه که کوتاه و ساده هستن به همون اندازه هم بی اثر هستن
حالا اگر در برنامتون مشکلی هست و یا در شبیه سازی مشکلی پیش اومده بگید تا اگر در توان بود کمکتون کنیم
موفق باشید:gol:


سلام و درود .بله حق با شماست. من با برنامه نویسی آشنایی دارم اما اولین بار بود که با بسکام برنامه می نوشتم و قبل از این به نظرم کار خیلی سختی بود .هنوز هم خیلی مونده تا با میکرو ها و برنامه های مربوطه آشنا بشم .به هر حال از توجه و راهنمایی تون صمیمانه ممنونم .سپاس
 
  • Like
واکنش ها: sh85

6i6i

عضو جدید
salam dustan man ketabe mazidio vase avr ta hodudi khundam ketabe khubie pishnahad mikonam vase shorou bekho0ninesh!
 
  • Like
واکنش ها: sh85

ali kalashi

عضو جدید
کسی راجع به PID کنترل میتونه به من اطلاعات بده و یا راهنمایی کنه
 

yunes20

عضو جدید
سلام به نظر من وقتت را روي بيسيك تلف نكن . برو زبان c ياد بگير . خيلي دستت را تو برنامه نوشتن باز ميكنه. و اگه فايل C برنامه چراغ راهنمايي را مي خواي . يه پيام برام بذار.
 

Mute

عضو جدید
کاربر ممتاز
میکروکنترلر(1)


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



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

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



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



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



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

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

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





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



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

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



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

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





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

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



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

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



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

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

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

اگر کسی از دوستان عیب دیگری از میکروکنترلر میدونه لطف کنه ممنون میشم.



خب حالا این میکروکنترلر را با این همه کاربرد کی ساخته؟

حدود 4 دهه پیش در سال 1971 میلادی شرکت اینتل اولین میکروکنترلر را ساخت و اولین میکروکنترلر را با نام 8080 در اوایل سال 1980 روانه بازار کرد .همین شرکت اینتلی که الان در ساخت cpu یکه تاز دنیاست .اما بعدا این امتیاز رو به شرکت های دیگری واگذار کرد و شرکت های زیادی در حال حاضر میکروکنترلر های مختلف تولید میکنند .

 

Mute

عضو جدید
کاربر ممتاز
در این قسمت از مقاله قصد دارم تا لغات و اصطلاحاتی که در این موضوع هست رو تا اونجایی که بتونم روشن کنم برای این کار قسمت اول برگه اطلاعاتی 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: < 1 µA

************************************************** *********************

1- (High-performance, Low-power AVR® 8-bit Microcontroller) :
ترجمه : میکروکنترلر AVR 8 بیتی با کارایی بالا و توان کم
میکرو 8 بیتی اشاره به این دارد که این میکروکنترلر حداکثر با 8 بیت کار میکند و این میکرو حداکثر 8 بیت را به صورت همزمان میتواند انتقال دهد. اکثر میکروهایی که تا کننون ساخته شده اند 8 بیتی هستنند این توان هم برای کارهای عمومی و پیشرفته به صورت کامل جوابگوست ولی برای کارهای فوق پیشرفته به نسبت توان انتقال پایینی است .

در رابطه با کارایی بالا این میکروها در مقاله های قبل بحث شده در ضمن میکروکنترلر های avr توان خیلی کمی مصرف میکنند که در ادامه مقاله خواهیم دید.

2-( Advanced RISC Architecture ) :
ترجمه : دارای طراحی پیشرفته RISC
کلمه RISC ((REDUCED INSTRUCTION SET COMPUTER به معنای طراحی CPU که مجموعه دستورات آن حاوی دستورات سریع و ساده است که نوشتن برنامه را مشکل ولی سریعتر میکند. اما طراحی پیشرفته RISC در میکروکنترلرهای AVR ضمن این که دستورات ساده وسریع هستنند، نوشتن برنامه هم راحت و بدون مشکل است.

3-(131 Powerful Instructions – Most Single-clock Cycle Execution ):
ترجمه : دارای 131 دستور العمل قوی که بیشترشان در یک سیکل کلاک اجرا می شوند. اشاره به همان معماری
RISC دارد که دستورات سریع اجرا میشوند.
یعنی برای ATMEGA32 که دارای سرعت 16 MHZ است. این میکرو میتواند در هر ثانیه تقریبا 16 ملیون دستور را اجرا کند.

4- ( 32*8 GENERAL Purpose Working Registers ) :
ترجمه : با 8*32 ثبات عمومی کار میکند.

5-(Fully Static Operation) :
ترجمه : عملکر کاملا ثابت .

6-(Up to 16 MIPS Throughput at 16 MHz ) :
ترجمه : تا 16 ملیون (MIPS) توان عملیاتی در 16MHZ
چند خط بالا دربارش توضیح داده بودم.

7- (On-chip 2-cycle Multiplier ) :
ترجمه : تقویت کننده 2 سیکل بر روی چیپ.


Nonvolatile Program and Data Memories



حافظه ، برنامه و داده غیر فرار


8- (32K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles)
ترجمه : 32KB حافظه داخلی FLASH قابل برنامه ریزی . ماندگاری : 10000 بار نوشتن و پاک کردن.

حافظه FLASH نوعی حافظه غیر فرار مشابه EEPROM که با بلاکهای داده کار میکند. حافظه FLASH این میکروکنترلر قابلیت 10000 بار نوشتن و پاک کرن را دارد که برای تمرین و آزمایش بسیار عالیست.
از لحاظ حجم هم 32 کیلو بایت میتواند نیاز های ما را برآورده کند و در بین سایر میکروکنترلر ها به نسبت حجم خوبی است.در واقع شما باید برنامه را در این حافظه بنویسید.
هر BIT شامل یک (0و1) میشود ،هر BYTE ،1024 BIT است و هر KB (KILO BYTE ) 1024
BYTE است.
(هر حرف یک BYTE است.)

9- Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program
True Read-While-Write Operation

ترجمه : تعقیر اختیاری برنامه بوت با برنامه ریزی مستقل فیوز بیت ها در دستگاه درست وقتی که دستورعمل ها را میخوانیم یا مینویسم.
اشاره به تعقیر اختیاری فیوز بیت ها دارد که به راحتی میتوانیم این کار را انجام بدهیم.
فیوز بیت : این ها یک سری بیت کلی هستنند که منطق 0 به معنای برنامه ریزی شدن و منطق 1 به معنای برنامه ریزی نشدن بیت است.
اساسا کار این بیت ها تعقیر مشخصات سخت افزاری میکروکنترلر است و هر مدل از میکروکنترلر به نسبت طراحی دارای فیوز بیت های مختلفی است.
به فرض مثال اگر فیوز بیت به نام EESAVE برنامه ریزی شود محتویات حافظه EEPROM در زمان پاک کردن میکروکنترلر محفوظ میماند ولی اگر این بیت برنامه ریزی نشود حافظه EEPROM در زمان پاک شدن میکرو پاک میشود.


10- (1024 Bytes EEPROM) :
: ( Endurance: 100,000 Write/Erase Cycles)

ترجمه : 1024 بایت حافظه EEPROM . ماندگاری : 100000 بار نوشتن و پاک کردن.
اکثر مدل های میکروکنترلر AVR دارای حافظه EEPROM داخلی میباشند که یکی از مزیت های خوب این میکروکنترلر هاست . در این حافظه که اطلاعات داخلش تا حدود 100 سال باقی میماند میشود به اکرار (صد هزار بار) نوشت و پاک کرد و میتوانیم اطلاعات زیادی رو در این حافظه قرار بدهیم.
این حافظه را در هنگام اجرای برنامه میتوان نوشت و خواند و بر گرفته از اول کلمات ELECTRICALLY ERASABLE READ ONLY MEMORY است.

11- (2K Byte Internal SRAM) :
ترجمه : 2 کیلو بایت حافظه SRAM داخلی
این نوع از حافظه یک حافظه با دسترسی تصادفی است. مثل حافظه RAM کامپیوتر.

12- ( Programming Lock for Software Security) :
ترجمه : قفل برای برنامه برای ایمنی


JTAG (IEEE std. 1149.1 Compliant) Interface



قابلیت اتصال با پروتکل JTAG تحت استاندارد IEEE

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

13-(Boundary-scan Capabilities According to the JTAG Standard ):
ترجمه : امکان مقایسه برخی از ثبات ها در استاندارد JTAG

14- ( Extensive On-chip Debug Support) :
ترجمه : پشتیبانی چیپ از یک اشکل زدایی گسترده

15-( Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface ) :
ترجمه : برنامه ریزی حافظه های FLASH , EEPROM و FUSES و فیوز بیت ها با پروتکل .JTAG

امکان خوبی که این پروتکل ارتباطی دارد این است که انواع حافظه ها و فیوز بیت ها را میتوان با آن برنامه ریزی کرد از این رو پروگرامرهای زیادی با استفاده از این پروتکل کار میکنند.
 

Mute

عضو جدید
کاربر ممتاز
WDT چیست؟

WDT مخفف Watch Dog Timer است که به معنای سگ نگهبان می باشد . WDT یکی از قابلیت های مفید و کاربردی در تراشه های میکروکنترلر است که با کمک آن می توان بر روی عملکرد میکروکنترلر نظارت داشت و در صورتی که تراشه به هر علتی قادر به اجرای برنامه نبود (هنگ کرد) ، آنرا ریست کرد .
فرض کنید در در محیطی صنعتی و نویز پذیر از میکروکنترلر استفاده می کنید . در این صورت بسته به نوع مدار و همچنین میکروکنترلر ، درصدی احتمال برای اثر گذاری نویز بر روی تراشه وجود دارد که در صورت وقوع این وضعیت ، میکروکنترلر هنگ می کند و دیگر قادر به اجرای برنامه نیست . در این شرایط لازم است که برای اجرای برنامه ، تراشه ریست شود که این عمل مستلزم نظارت کاربری بر مدار است تا در صورت هنگ کردن ، از این موضوع اطلاع حاصل کند .
در حالت عادی این ریست باید توسط کاربر انجام پذیرد که با بالا رفتن تعداد مدارات به کار گرفته شده در محیط مذکور و یا کار کردن دائمی مدارها ، نظارت توسط کاربر سخت ، هزینه بر و در مواردی غیر ممکن خواهد بود .
اما در میکروکنترلرهایی که مجهز به WDT هستند ، وظیفهء کاربر نظارت کننده را WDT بر عهده دارد و آنرا به خوبی انجام می دهد . WDT این امکان را دارد که پس از شمارش صعودی و سر ریز شدن تایمر ، میکروکنترلر را ریست کند . WDT در اکثر موارد از یک شبکه RC داخلی برای تامین کلاک مورد نظر خود استفاده می کند که در این حالت حتی اگر کلاک اصلی میکروکنترلر نیز قطع شود ، باز هم WDT به کارش ادامه خواهد داد . همچنین امکان تعیین پرسکالر (پیش مقسم فرکانسی) بر روی کلاک اعمالی به WDT نیز وجود دارد که با کمک آن می توان زمان های سرریز WDT را تغییر داد .
WDT در تراشه های در حالت کلی به صورت یکسان عمل می کند ، اما در حالت جزئی ممکن است تفاوتهایی در عملکرد WDT در بین انواع میکروکنترلر باشد .

چگونگی کار با WDT :
ابتدا با توجه به مقدار پرسکالر اعمالی و فرکانس کلاک WDT ، زمان سر ریز را محاسبه کرده ، سپس با فعال سازی WDT ، عمل نظارت آغاز می شود . برنامه کاری باید به نحوی نوشته شده باشد که قبل از اینکه WDT ریست شود ، مقدار آن توسط میکروکنترلر 0 شود . در این شرایط اگر میکروکنترلر در حالت کار عادی خود باشد ، قبل از سر ریز شدن WDT ، مقدار آنرا ریست می کند (جلوگیری از سر ریز تایمر) و به این ترتیب WDT سر ریز نشده و نمی تواند سیستم را ریست کند (مدار در حالت عادی به کار خود ادامه می دهد ) ؛ ولی اگر میکرو کنترلر به هر دلیلی هنگ کند و قادر به اجرای برنامه نباشد ، دیگر نمی تواند WDT را قبل از سر ریز شدن ریست کند و بنابراین WDT سر ریز شده و تراشه را ریست می کند و به این ترتیب از هنگ ماندن تراشه جلوگیری می کند و سریع آنرا از حالت هنگ خارج می کند .

نکته :
ریست مربوط به WDT در انواع مختلف میکروکنترلر ، متفاوت است ؛ به صورتی که در برخی از میکروکنترلر ها ریست شدن توسط WDT همانند ریست خارجی است که تمامی مقادیر رجیستر ها ، متغیرها و .. را ریست می کند ، اما در برخی دیگر هم ریست شدن توسط WDT تنها بر روی برخی از رجیستر ها تاثیر می گذارد .
 

hamed.s7773

عضو جدید
سلام.مطالب خيلي خوب بود.ميگم من ترم آخر كار دانيم .اين ترمم بايد پروژه ساخت تحويل بدم.به نظر شما من چي درست كنم؟؟؟؟؟ممنون
 

tarahelectronice

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

Joe_Bel

کاربر فعال تالار مهندسی برق ,
کاربر ممتاز
[h=1]انتقال اطلاعات بی سیم بین میکروکنترلر و کامپیوتر توسط ماژولهای RFM01-RFM02[/h]
ماژولهای RFM12B-RFM12-RFM02-RFM01 ساخت شرکت Hope Electronic می باشد.
این ماژولها قابلیتهای فراوانی دارند که به چند مورد از آنها اشاره خواهیم کرد :

  • قیمت کم،کارایی بالا.
  • سرعت بالای انتقال اطلاعات تا 115.2 کیلو بیت بر ثانیه.
  • پهنای باند قابل برنامه ریزی در گیرنده از 67 کیلوهرتز تا 400 کیلوهرتز.
  • قابلیت ارتباط دهی توسط پروتکل SPI.
  • تغذیه از 2.2 تا 5.4 ولت.
  • مصرف بسیار کم در حالت StandBy
  • ...
از کاربردهای این ماژولها نیز می توان در ریموت کنترل ها،ریموت سنسورها،انتقال داده به صورت بیسیم،اسباب بازی ها و... نام برد.
در کتاب پروژه های عملی با میکروکنترلرهای AVR از ماژولهای RFM1-02 و RFM12 در چندین پروژه استفاده شده است.
[h=4]اما تفاوت ماژولهای نام برده در چیست؟[/h]
ماژوهای RFM12 و RFM12B ماژولهایی هستند که هم قابلیت ارسال داده و هم قابلیت دریافت داده را دارند.اما ماژولهای RFM01-RFM02 به ترتیب فقط ارسال داده و دریافت داده را انجام می دهند. بنابراین RFM01 و RFM02 به صورت یک زوج مورد استفاده قرار می گیرند تا عمل ارسال و دریافت به صورت یکطرفه انجام شود.در جاهایی که نیاز است عمل ارسال و دریافت به صورت دوطرفه انجام شود بایستی از ماژولهای RFM12 استفاده نمود.
این ماژولها قبل از اینکه مورد استفاده قرار بگیرند بایستی توسط میکروکنترلر برنامه ریزی شوند.یعنی به هنگام روشن شدن میکروکنترلر قبل از انجام هرگونه انتقال داده به این ماژولها بایستی برنامه ریزی و تنظیمات این ماژولها انجام شود.برنامه ریزی برای تنظیماتی از قبیل فرکانس کاری،پهنای باند،سرعت ارسال و یا دریافت و... به این منظور رجیسترهای 16 بیتی در این ماژولها در نظر گرفته شده است که با تغییر این رجیسترها تنظیمات مورد نظر انجام خواهد شد.
[h=4]تنظیمات رجیسترهای RFM12[/h]
رجیسترهای ماژول RFM شانزذه بیتی می باشد.به صورت معمول هر رجیستر شامل دو قسمت است : آدرس و مقدار.
آدرس هر رجیستر معمولا شامل 8 بیت با ارزش یا 4 بیت با ارزش آن می باشد و مابقی بر اساس نامگذاری،مربوط به تنظیمات آن می باشند.
در این قسمت به توضیحاتی پیرامون هر رجیستر می پردازیم :
[h=4]رجیستر تنظیمات پیکربندی سیستم : 0x80D7.[/h] با این مقدار دهی در ماژول RFM12،رجیستر TXفعال شده،فرکانس پایه ماژول 433 مگاهرتز تعیین می شود و خازنی معادل 12 پیکوفاراد به صورت داخلی جهت استفاده کریستال داخلی ماژول فعال می شود.
[h=4]رجیستر مدیریت توان سیستم : 0x8239.[/h] با این مقدار دهی ماژول RFM12،به صورت فرستنده عمل می نماید.در صورتی که بخواهیم ماژول در حالت گیرنده باشد بایستی مقدار این رجیستر را 0x82D9 در نظر بگیریم.
[h=4]رجیستر تنظیمات فرکانس : 0xA640.[/h] با این مقداردهی در صورتی که باند فرکانسی ماژول 433 مگاهرتز باشد.فرکانس حامل 434 مگاهرتز تنظیم خواهد شد.توجه داشته باشید در صورتی که بخواهیم چندین ماژول در یک محیط به صورت جفت جفت کار کنند بدون اینکه تداخلی داشته باشند،بایستی فرکانس حامل آنها با یکدیگر تفاوت داشته باشند.این تنظیمات توسط این رجیستر صورت می گیرد.با مقداردهی های متفاوت،فرکانس حامل ماژول در فرکانس های مختلف تنظیم خواهد شد.
[h=4]رجیستر تنظیمات سرعت انتقال داده : 0xC647.[/h] توسط این رجیستر می توان سرعت انتقال داده جهت ارسال توسط ماژول را تعیین نمود.به عنوان مثال با مقدار C647 سرعت انتقال داده 4800 بیت در ثانیه خواهد بود.
[h=4]رجیستر تنظیمات گیرنده : 0x94A0.[/h] توسط این رجیستر پهنای باند فیلتر گیرنده تغیین می شود.توجه داشته باشید این پهنای باند تنها در حالت گیرنده معنا دارد و در صورتی که ماژول به صورت فرستنده عمل نماید این مقدار تاثیری در عملکرد ماژول نخواهد داشت.
[h=4]رجیستر تنظیمات FIFO: 0xCA83:[/h] با مقدار دهی این رجیستر،بافر FIFO فعال و یا غیر فعال می شود.توجه نمایید رجیستر FIFO،رجیستری می باشد که در حالت گیرنده اهمیت پیدا می کند و حاوی اطلاعات دریافتی از ماژول فرستنده می باشد.
[h=4]رجیستر تنظیمات AFC:0x9850 : [/h] توسط این رجیستر توان خروجی را می توان تنظیم نمود.
[h=4]رجیستر Wake-up Timer :[/h] جهت به حداقل رساندن توان مصرفی،می توان ماژول را به حالت Sleep برده و بعد از زمان خاصی ماژول را Wake Up کنیم.این زمان خاص توسط این رجیستر تنظیم می شود.
[h=4]رجیستر تشخیص ولتاژ پایین باطری :[/h] ماژول RFM12 این امکان را دارد که از ولتاژ ورودی خود نمونه برداری کند و در صورتی که سطح ولتاژ(برق) از یک مقدار مشخص پایین تر شد یک اینتراپت (وقفه) تولید کند.
[h=4]رجیستر خواندن بافر FIFO: 0xB000:[/h] توسط این رجیستر،مقداری که در بافر FIFO وجود دارد در خروجی ماژول قرار می گیرد.اگر ماژول در حالت گیرنده تنظیم شده باشد جهت خواندن داده های دریافتی بایستی این مقدار (0xB000) به ماژول ارسال شود.حین ارسال،مقدار داده دریافتی در خروجی قرار می گیرد.
[h=4]رجیستر ارسال داده توسط فرستنده :0xB8--.[/h] توسط این رجیستر داده های مورد نظر به صورت بایت بایت ارسال می شوند.توجه داشته باشید بایت مورد نظر در محل های خط چین قرار می گیرد.به عبارت دیگر جهت ارسال هر بایت بایستی مقدار 0xB800 با بایت مورد نظر،or شود و سپس به ماژول به عنوان یک دستور ارسال شود.
[h=4]رجیستر وضعیت ماژول : 0x0---.[/h] در صورتیکه اولین بیت از دستور ارسال شده به ماژول صفر باشد، بدون توجه به بیت های بعدی رجیستر وضعیت ماژول خوانده می شود و مقدار این رجیستر که یک عدد 16 بیتی می باشد در خروجی ماژول قرار می گیرد.
رجیستر وضعیت در حالت عادی اهمیت چندانی ندارد،اما در صورتی که برنامه ای برای یک ماژول نوشتیم به هر دلیل دچار مشکل شد،با خواندن این رجیستر می توان متوجه شد ماژول در چه حالتی می باشد و این ویژگی در رفع عیب برنامه های نوشته شده برای این ماژول بسیار کمک کننده می باشد.
همانطور که گفته شد برای تبادل اطلاعات با ماژول های RFM،از پروتکل SPI استفاده می نماییم.علاوه بر چهار پایه مربوط به درگاه SPI، یک پایه مهم دیگر به نام nIRQ نیز مورد استفاده قرار می گیرد.این پایه یک خروجی فعال صفر از ماژول به سمت دنیای بیرون می باشد.
در حالت عادی وضعیت این پایه بایستی در وضعیت High یا 1 منطقی باشد و در موارد خاص این پایه تغییر وضعیت داده و به سطح Low یا 0(صفر) منطقی می رود.این موارد عبارتند از :

  • پر شدن رجیستر FIFOدر حالت گیرنده به معنای دریافت یک بایت از ماژول فرستنده.
  • خالی شدن رجیستر Txبه معنای پایان عملیات ارسال در حالت فرستنده.
  • پایین آمدن سطح ولتاژ باطری با توجه به سطح ولتاژی که در رجیستر مربوطه تنظیم نموده ایم.
  • هنگامی که تایمر Wake Upسر ریز می شود.
بنابر این حالات همیشه در فرستنده و گیرنده به صورت سرکشی یا وقفه بایستی وضعیت این پایه را کنترل نموده و بر اساس این وضعیت عملیات بعدی را انجام دهیم.
نکته دیگر در مورد این ماژولها این است که همانطور که گفته شد می توانیم برای تنظیم و مقدار دهی رجیسترها از پروتکل SPI استفاده نماییم.در کلیه مثالهای کتاب پروژه های عملی با میکروکنترلرهای AVR پروتکل SPI را توسط برنامه شبیه سازی شده.علت این کار این است که ممکن است برخی میکروکنترلرهایی که ما قصد داریم از آنها استفاده نماییم پورت SPI نداشته باشند،بنابراین به راحتی می توانیم از این برنامه ها برای بکارگیری این ماژولها استفاده نماییم.
در ارتباط دهی SPI به چهار پایه نیاز داریم:SCK،MOSI،MISO،SS.قبل از ارسال پایه SSصفر شده در این هنگام SCK شروع به ساختن پالس کلاک می کند و روی خطوط MOSIو MISO اطلاعات رد و بدل می شود.پس از پایان نیز SS یک شده و پالس کلاک نیز خاموش می شود.
رعایت نکات ذکر شده برای ارسال فرامین به ماژولها جهت تنظیمات و برنامه ریزی ضروری می باشد.فراموش نکنید که رجیسترهای تنظیماتی در ماژولها 16 بیتی می باشند.
 

Mute

عضو جدید
کاربر ممتاز
میکروکنترلر چیست :

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


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

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


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

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


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


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

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


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


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

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


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

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

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

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


البته مدل های۶۸۱۱ ساخت شرکت موتورلا وz8 ساخت شرکت زایلوگ حداقل در ایران خیلی کم استفاده می شوند و رقابت اصلی بین سه نوع دیگر است.


تا به امروز هر میکروکنترلری که ساخته شده زیر مجموعه یکی از این5 نوع است. البته کارخانه های خیلی زیادی با مارک های مختلف میکرو کنترلر تولید میکنند ولی همه اونها زیر مجموعه یکی از این 5 قسمت هستنند .شما برای هر کدام از این5 نوع میکروکنترلر میتوانید میکروکنترلر های مختلفی از شرکت های مختلفی را پیدا کنید.(البته در بازار ایرن کمی با مشکل).

اما خوشبختانه همه میکروکنترلر هایی که جزء هر کدام از 5 نوع بالا باشند از یک برنامه پیروی میکنند. بدین معنا که اگر شما کار با یکی از مدل های آن میکرو را یاد گرفته باشید مثل اینکه کار با تمام میکروکنترلرهای آن نوع را یاد گرفته اید.

مثلا شما اگر با یکی از مدل های میکروکنترلرavr مثلا atmega8 را یاد گرفته باشید دیگر با صد ها مدل دیگر میکروکنترلرavr مشکلی ندارید وتقریبا بدون هیچ مشکلی میتوانید با دیگر مدل های این میکرو کار کنید
اما یه مشکل که در میکروکنترلر ها وجود دارد این است که این5 نوع از لحاظ برنامه نویسی به هیچ وجه با هم دیگر سازگاری ندارند . به طور مثال اگر شما میکروکنترلر هایavr و 8051 را کامل یاد گرفته باشید حتی ساده ترین برنامه رو روی یک میکروکنترلرpic نمیتوانید اجرا کنید. واین یکی از بزرگترین عیب و مشکل برای یاد گیری میکرو است

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


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

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

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


 
بالا