منابع آزمایشگاه

1- دستورکار آزمایشگاه:

با توجه به بروز رسانی تجهیزات آزمایشگاه، دستور کار پیش­رو هم زمان با ترم اول سال تحصیلی 95-1394 تکمیل خواهد شد، به همین جهت لازم است جهت دسترسی به آخرین نسخه دستور کار به صورت همیشگی از طریق همین سایت یا به سایت درس  مراجعه نمایید. پیش بینی می­ شود دستورکار پیش رو سه بار حداقل در طول ترم جاری به روز رسانی شود و نسخه نهایی دستورکار برای ترم آتی آماده شود.

لینک دانلود دستورکار

2- برگه اطلاعاتی میکروکنترلر ATMEGA64

لینک دانلود برگه اطلاعاتی میکروکنترلر ATMEGA64

3- دستورالعمل های پردازنده AVR

لینک دانلود دستورالعمل های پردازنده AVR 

روش حل مسئله:

لازم است برای پیاده­سازی پروژ­ه­های خود در درس ریزپردازنده، نقشه راهی مانند فلوچارت شکل زیر را طی نمایید.

 

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

آشنایی با بورد های موجود در آزمایشگاه

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

بورد اصلی که هسته میکروکنترلر بر روی آن قرار دارد و بعضی واحد های جانبی ضروری مثل صفحه کلید ماتریسی و نمایشگر هفت قسمتی و LED و … بر روی آن قرار دارد که آنها را در شکل زیر می‌بینید.

تراشه های قابل نصب بر روی بورد اصلی

بورد اصلی (آبی رنگ) ریزپردازنده

شماتیک و اجزای بورد اصلی (آبی رنگ)

این بورد با هدف آشنایی کاربر با مفاهیم اساسی در زمینه میکروکنترلر طراحی شده و به منظور افزایش کارایی و بازده آموزشی شش ویژگی مهم در این بورد لحاظ شده است:

  • طراحی ماژولار و ترسیم شماتیک مدار
  • قابلیت کار با انواع پردازنده (همچون AVR، PIC، FPGA و …) بدون تعویض بورد اصلی
  • قابلیت اتصال همزمان دو بورد جانبی استاندارد
  • آزاد بودن اتصالات سخت افزاری و در دسترس بودن کلیه پایه­ها در بورد اصلی
  • استفاده از کانکتورهای استاندارد
  • امکان تعریف آزمایش­های متعدد با توجه به نیازهای آزمایشگاه

از دیگر امکانات برد اصلی می­توان به موارد زیر اشاره کرد

  • وجود Pin Headerهای متناظر با کانکتورهای استاندارد برای ارتباط با بردبورد و ماژول­های دیگر
  • در دسترس بودن ولتاژهای 3/3+ و 12+ و 12- و 5+ ولت
  • رعایت انواع حفاظت­ها در برابر خرابی و نویز در ماژول­های مختلف

اجزای بورد ارتباطی اصلی شامل موارد زیر می­باشد:

  • IDC Connector:

این کانکتورها جهت اتصال بورد اصلی به بوردهای جانبی استفاده می­شوند. در کنار هر کانکتور IDC به ازای هر پایه، یک کانکتور 2mm و همچنین یک پین هدر متناظر وجود دارد که با استفاده از آن می­توان  اتصال دلخواه را با ماژول MCU برقرار نمود. بنابر این می­توان یک پایه خروجی یا ورودی در بورد جانبی را از این طریق به پایه­های میکروکنترلر متصل کرد. در بورد اصلی سه عدد IDC  بیست و شش عددی تعبیه شده است که پین هدرها و کانکتورهای متناظر با پایه­های آن به طور نظیر به نظیر و پیوسته از 1 تا 78 شماره-گذاری  شده­اند.

  • 7-Segment Display:

این نمایشگر چهار رقمی برای نمایش اعداد و برخی حروف لاتین مورد استفاده قرار می­گیرد. در این ماژول یک پایه Enable به نام های Digit 1…4 از نوع پین هدر و کانکتور 2mm وجود دارد، اما هشت پایه داده برای هر چهار 7-segment مشترک هستند که یک کردن هر کدام از پایه­های داده موجب روشن شدن Segment متناظر با آن خواهد شد. بنابر این برای نمایش یک عدد خاص بر روی هر 7-Segment باید داده مناسب را بر روی پایه­های داده (پین­هدر و یا کانکتور 2mm با نام­های A..DP) ارسال کرده و Enable آن را یک کرد. چناچه این کار به صورت متناوب و با فرکانس مناسب انجام شود می­توان به صورت همزمان اعداد 4 رقمی دلخواه را بر روی چهار 7-Segment رویت کرد.

  • 4×4 KeyPad:

این صفحه کلید ماتریسی برای اعمال فرمان دلخواه به میکروکنترلر استفاده می­شود. سخت افزار این صفحه کلید به شکلی طراحی شده است که میکرو کنترلر بتواند آن را هم به روش Polling و هم به روش وقفه بخواند. در این ماژول چهار کانکتور  2mm و پین هدر متناظر برای سطرها، چهار کانکتور 2mm و پین هدر متناظر برای ستون­ها و یک کانکتور 2mm و پین هدر متناظر برای وقفه تعبیه شده است.

  • Buzzer:

از این المان برای تولید صدای بوق اسفاده می­شود و با اعمال یک موج مربعی با فرکانس دلخواه به کانکتور 2mm و یا پین هدر متناظر، می­توان صدای متناظر با آن فرکانس را ایجاد کرد.

  • Push Button:

از این کلیدها برای اعمال فرمان دلخواه به میکرو کنترلر استفاده می­شود. فشار دادن این کلیدها یک سیگنال صفر در کانکتور 2mm و پین هدر متناظر ایجاد می­کند و به محض رها کردن کلید، خروجی به سطر یک باز می­گردد. قرار گرفتن این کلیدها در زیر LCD این امکان را به کاربر می­دهد تا در ساخت منوها بر روی LCD، عملکرد این کلیدها را تعریف نماید.

  • Character LCD:

این نمایشگر LCD که برای نمایش عبارت­های دلخواه استفاده می­شود، از نوع کاراکتری بوده و ظرفیت نمایش آن 4 خط 20 کاراکتری است. پایه­های کنترلی RS و RW و E و پایه­های داده D4 تا D7 از طریق هفت کانکتور 2mm و پین هدر متناظر در دسترس هستند. همچنین، در کنار LCD یک کلید ON/OFF تعبیه شده است که در زمان استفاده از LCD باید در وضعیت ON قرار داشته باشد. برای جلوگیری از آسیب LCD در هنگامی که از LCD استفاده نمی­شود آن را خاموش نمایید.

  • Dip Switch:

از این کلیدها برای اعمال مقادیر دیجیتال ورودی ثابت، تا سقف 10 بیت به میکرو کنترلر استفاده می­شود. با قرار دادن هر یک از کلیدها در وضعیت ON خروجی متناظر با آن (کانکتور 2mm  و پین هدر( یک می­شود و چنانچه کلیدی در وضعیت OFF قرار داشته باشد، خروجی متناظر با آن (کانکتور 2mm و پین هدر) صفر خواهد بود.

  • LED Display

در این بورد دو سری نمایشگر LED هشت تایی تعبیه شده است که از این LEDها برای کنترل وضعیت پورت­های میکروکنترلر و یا خروجی ماژول­های دیجیتال (مثلا خروجی وقفه ماژول Keypad) می­توان استفاده کرد. چنانچه سیگنال اعمال شده به کانکتور 2mm و یا پین هدر متناظر با هر یک از LEDها در سطح یک باشد، LED متناظر با آن روشن شده و اگر در سطح صفر باشد، LED متناظر با آن خاموش خواهد شد.

  • Bread Board:

چنانچه نیاز باشد از یک المان خاص مانند یک IC که در بورد وجود ندارد استفاده شود، این این بردبورد می­توان استفاده کرد.

  • Serial Port Interface:

برای برقراری ارتباط سریال میان میکروکنترلر و رایانه می­توان از این ماژول واسط استفاده کرد. این ماژول شامل کانکتور DB9 و مدار تبدیل سطح ولتاژ با استفاده از MAX232 است. این ماژول به شیوه­ای طراحی شده است که پایه­های Rx و Tx قبل و بعد از تبدیل سطح ولتاژ از طریق کانکتور 2mm و پین هدر متناظر، در دسترس هستند.

  • Parallel Port Interface:

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

  • Volume Multiturn:

برای ایجاد ولتاژ آنالوگ متغیر می­توان از Volume و  یا Multiturn موجود در این ماژول استفاده کرد. این دو المان نوعی پتانسیومتر هستند و تفاوت آن­ها این است که Multiturn دقت بالاتری داشته و برای رسیدن از مقدار حداقل به مقدار حداکثر آن، چندین دور قابل چرخش است، این در حالی است که Volume دقت کمتری داشته و محدوده چرخش آن 270 درجه است. باید توجه داشت که ولتاژ مرجع Volume ثابت و برابر  5+ ولت است و لذا خروجی کانکتور 2mm و پین هدر متناظر آن ولتاژ متغیری در محدوده صفر الی 5+ ولت خواهد بود. اما ولتاژ مرجع Multiturn متصل نبوده و باید از ماژول تغذیه، یکی از ولتاژهای 3/3+ یا 5+ یا 12+ یا 12- را به پایه V-ref آن متصل کرده و ولتاژ مرجع آن را تامین کرد.

  • Power supply:

این ماژول وظیفه تامین ولتاژ­های تغذیه سیستم را بر عهده دارد. ولتاژ تغذیه مورد نیاز المان­ها و ماژول­های مختلف از پیش متصل شده و نیازی به اتصال تغذیه در ماژول­ها نیست، اما چنانچه در کاربردهای خاص نیاز به ولتاژ 3/3+ و یا 5+ و یا 12+ و یا 12-  باشد، این ولتاژها از طریق کانکتور 2mm و پین هدر متناظر آن در دسترس هستند. توجه شود که با فشار دادن کلید Main Switch ولتاژ 5+ و 3/3+ در مدار برقرار خواهد شد و در این حالت اگر کلید 12+ 12- نیز فشار داده شود، این دو ولتاژ نیز در مدار برقرار خواهند شد. توجه شود که Main switch کلید اصلی تغذیه بوده و در صورت غیرفعال بودن آن کلید 12+ 12- نیز تغذیه نخواهد داشت و بی­اثر خواهد بود.

  • MCU:

این بخش محل نصب بورد MCU[1] یا همان کنترل کننده مرکزی است. این بخش به شیوه­ای طراحی شده که ماژولار بوده و هر نوع پردازنده­ای با حداکثر 100 پایه بر روی آن قابل نصب خواهد بود. آزمایشگاه میکروی خواجه نصیر هم اکنون دارای چهار بورد پردازنده ATMega 64 & 2560 و میکروهای PIC و FPGAهای Spartan برای نصب در این بخش می­باشد.  پس از اتصال بورد MCU بر روی پین­هدرهای مربوطه، پایه­های تراشه از طریق 100 کانکتور 2mm و پایه­های پین­هدر متناظر، به صورت نظیر به نظیر در دسترس خواهند بود. توجه شود که ترتیب کانکتورها و پین­هدرهای متناظر بر روی این ماژول عینا متناظر با پایه­های تراشه است. برای مثال پین­هدر و کانکتور شماره 14  مستقیما به پایه 14 تراشه موجود بر روی برد MCU (برای مثالATMega64 ) متصل خواهد بود. بنابراین در صورتی که لازم باشد اتصالی به پایه 14 میکرو کنترل برقرار شود، کافیست از پین هدر و یا کانکتور شماره 14 استفاده شود. لازم به ذکر است که به دلیل حفاظت در برابر اتصالات اشتباه، پایه­های کریستال خارجی و تغذیه میکروکنترلر به پین­هدر و کانکتور متناظر وصل نشده­اند.

  • LED Array:

عملکرد این ماژول مشابه LED Display است. پیکربندی این نمایشگر به شکلی است که بری استفاده به عنوان نمایشگر وضعیت نیز مناسب است. از نمایشگر وضعیت برای کاربردهایی نظیر نمایش ظرفیت پر شده یک مخزن، یا درصد پیشرفت یک فرایند استفاده می­شود، در این حالت روشن بودن هر LED (از مجموع 10 عدد LED) معادل 10 درصد خواهد بود.

  • Power Supply Connector:

از این کانکتورها برای تامین ولتاژ تغذیه بوردهای جانبی استفاده می­شوند. بنابراین برای کارکردن با بوردهای جانبی لازم است کانکتور IDC تغذیه (10تایی) و کانکتور IDC داده (26تایی)، میان بورد اصلی و بورد جانبی متصل شود. در بورد اصلی دو عدد کانکتور IDC تغذیه تعبیه شده است، بنابراین به طور همزمان می­توان ولتاژ تغذیه بورد جانبی را تامین نمود.

 

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

بورد سنسور و نمایشگر (سبز رنگ)

شماتیک و اجزای اصلی بورد سنسور و نمایشگر (سبز رنگ)

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

بورد پروتکل­های ارتباطی (سفیدرنگ رنگ)

آشنایی با میکروکنترولر AVR

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

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

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

شاید تاکنون به وفور با عبارت­های میکروپروسسور، میکروکامپیوتر و میکروکنترلر برخورد کرده باشید در اغلب اوقات این عبارت­ها را به صورت مترادف و جایگزین یکدیگر در نظر میگیرند؛ اما در حقیقت این سه واژه تفاوت­های اساسی با هم دارند و نمی­توان آنها را معادل یکدیگر قلمداد کرد.

یک میکروپروسسور در واقع یک واحد پردازشگر مرکزی است. این تراشه­ها در گذشته با استفاده از مدارهای مجتمع با مقیاس متوسط و بزرگ طراحی می­شدند. شرکت اینتل در سال 1791 برای نخستین بار پیاده­ سازی قطعات CPU، ALU ، رجیسترها و مدار کنترل باس را در تراشه 4004 انجام داد و به این ترتیب اولین میکروپروسسور ساخته شد. گاهی یک میکروپروسسور، مدارها و قطعات ورودی خروجی جانبی و حافظه ها در کنار یکدیگر قرار میگیرند تا کامپیوتری کوچک را به منظور تحلیل اطلاعات و کاربردهای کنترلی شکل دهند به چنین سیستم هایی واژه میکروکامپیوتر اطلاق می­گردد حال چنانچه قطعات سازنده یک میکروکامپیوتر در یک تراشه سیلیکون در کنار یکدیگر قرار گیرند، این تراشه میکروکنترلر نامیده می­شود.

مزایای میکروکنترلر در مقایسه با میکروکامپیوتر

  • هزینه خرید یک میکروکنترلر در مقایسه با هزینه خرید یک میکروکامپیوتر با اجزای مشابه، ارزان تر است
  • کاهش تعداد اجزای سیستم که به ساده­تر شدن عملیات تولید و مونتاژ منجر می­شود
  • کاهش تعداد اجزای سیستم قابلیت اطمینان را افزایش می­دهد

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

شرکت Texas Instruments در سال 1794 اولین میکروکنترلر تجاری را با نام TMS1000 به بازار عرضه کرد و پس از آن سایر شرکت­های بزرگ الکترونیک به عرضه میکروکنترلرها پرداختند از مهمترین خانواده های شناخته شده میکروکنترلر میتوانیم به 8048 و 8051 محصول Intel ، 6811 محصول Motorala ، Z8 محصولZilog ، PIC محصول Microchip ، H8 محصول Hitachi و AVR محصول Atmel اشاره کنیم. اگرچه در اساس هسته اصلی همه خانوادهای میکروکنترلر یکسان است؛ ویژگی­های ظاهری، امکانات جانبی، سرعت کاری و بسته­بندی  آنها با هم متفاوتند. میکروکنترلر خانواده 8051 محصول Intel ، سالیانی دراز به دلیل بهره­منهدی از پورت های ورودی و خروجی فراوان و سرعت نسبتاً مناسب، از جایگاه ویژه­ای در بین میکروکنترلرها برخوردار بود. میکروکنترلر 8051 دارای نمونه­های سازگار متفاوتی است که از آن میان می­توان به 89C51 محصول Atmel و DS5000 )با قابلیت نگهداری زمان و دارای حافظه NVRAM ( محصول Dallas اشاره کرد. تراشه های 89C51 و 89S51 به دلیل فراوانی و قیمت پایین به شدت مورد توجه قرار گرفتند در این میان، تراشه 89S51 به دلیل برنامریزی آسان تر، توجه برنام­نویسان را بیشتر جلب کرد.

امروزه میکروکنترلرهای خانواده AVR و PIC به سرعت در حال تکامل هستند وچشم انداز روشنی از آینده میکروکنترلرها را ترسیم میکنند. این گروه از میکروکنترلرها قابلیت و توانایی­های بینظیری را در خود جای داده­اند و محبوبیت و کارایی آن­ها روزبه­روز در حال افزایش است.

در این مجموعه تمرکز ما بر روی میکروکنترلرهای خانواده AVR و به طور خاص تراشهه ATmega64 می باشد.

آشنایی با خانواده­های مختلف میکروکنترلر AVR

شرکت ATMEL با ایجاد تحول در معماری ریزپردارنده­ها جهت کاهش کد، باعث پیدایش نسل جدیدی از پردازشگرها به نام AVR شد که علاوه بر کاهش و بهینه­سازی مقدار کدها، به طور واقع هر عملیات را تنها در یک سیکل پالس ساعت توسط معماری RISC انجام میدهد و از 32 رجیستر همه منظوره استفاده می­کند این مقوله باعث شده است که AVR ها 4 تا 12 بار سریعتر از پردازشگرهای معمولی باشتد.

تکنولوژی حافظه کم مصرف و غیرفرار شرکت ATMEL برای برنامه ریزی AVR مورد استفاده قرارگرفته است. درنتیجه حافظه­های EEPROM و FLASH در داخل مدار، قابل برنامه ریزی ( ISP ) هستند.

AVR  به عنوان پردازشگرهای RISC با دستوراتی طراحی شده­اند که باعث می شود حجم کد تولید شده کم و سرعت بالاتری بدست آید .

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

در AVR ها پالس ساعت اسیلاتور با پالس ساعت داخلی سیستم یکسان هستند و هیچ تقسیم­کننده­ای وجود  دارد که اختلاف فازی برای پالس ساعت ایجاد کند در داخل بعضی پردازشگرها پالس ساعت ورودی از اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می کنند که خود باعث کاهش سرعت می شود بنابراین AVR ها، 4 تا 12 بار سریعتر و مصرف آنها نیز نسبت به ریزپردارنده­های کنونی کمتر است، چرا که در پردازشگرهای AVR از تکنولوژی CMOS استفاده شده است.

توان مصرفی پائین این ریزپردازنده­ها برای استفاده بهینه از باطری طراحی شده است که موجب می گردد در ابزار و وسایل سیار معمول و رایج باشند . این پردازشگرها از شش روش گوناگون برای کاهش توان مصرفی، جهت انجام عملیات بهره میبرند و تغذیه آنها تا 1.8 ولت  پائین میآید که باعث طولانی­تر شدن عمر باطری می­شود.

در جدول زیر، پسوندهای مربوط به ولتاژ کاری میکروکنترلر AVR و مفاهیم آن آمده است:

بررسی ویژگیهای میکروکنترلر ATmega64

  • اسیلاتور RC داخلی کالیبره شده
  • منابع وقفه داخلی و خارجی
  • 32 رجیستر همه منظوره
  • 6 مد خواب (sleep)
  • دارا بودن 130 دستور قوی )اجرای اکثر آنها در یک سیکل(
  • دارای 64 کیلوبایت حافظه فلش قابل برنامه ریزی
  • مجهز به Boot Loader
  • دارای 2 کیلوبایت حافظه EEPROM داخلی
  • دارای 4 کیلو بایت حافظه SRAM داخلی
  • قفل نرم افزاری
  • ارتباط JTAG
  • دارای دو تایمر / کانتر 8 بیتی با مقسم فرکانسی مجزا و مد مقایسه
  • دو تایمر / کانتز 16 بیتی با مقسم فرکانسی مجزا، مد مقایسه و مد Capture
  • دارای RTC با اسیلاتور مجزا
  • شش کانال PWM با رزولوشن قابل برنامه­ریزی
  • هشت کانال ADC ، دارای 10 بیت
  • ارتباط سریال دو سیمه
  • دارای دو ارتباط سریال USART
  • دارای SPI
  • دارای Watchdog با اسیلاتور مجزا
  • دارای 53 خط ورودی / خروجی قابل برنامه ریزی
  • دارای 40 پایه در نوع TQFT
  • ولتاژ عملیاتی :
    • 7 تا 5.5 ولت برای ATmega64L
    • 5 تا 5.5 ولت برای ATmega64
  • فرکانس کاری :
    • 0 تا 8 مگاهرتز برای ATmega64L
    • 0 تا 16 مگاهرتز برای ATmega64