درسنامه آموزشی مونتاژ و دمونتاژ اس ام دی و مستندسازی کلاس یازدهم الکترونیک
پودمان 4: میكروكنترلرها
واحد یادگیری 6: میکروکنترلر و چگونگی برنامهریزی آن
آیا تا به حال فکر کردهاید
- یک میکروکنترلر از چه اجزایی تشکیل شده است؟
- ابعاد یک میکروکنترلر چقدر است؟
- چند نوع میکروکنترلر وجود دارد؟
- استفاده از میکروکنترلرها چه مزیتهایی دارد؟
- چه زبانهای برنامهنویسی برای میکروکنترلرها وجود دارند؟
- چگونه میتوان برنامه نوشته شده را به زبان قابل فهم میکروکنترلر تبدیل کرد؟
- چگونه میتوان برنامه نوشته شده را داخل حافظه میکروکنترلر بارگذاری کرد؟
کلمه میکروکنترلر از دو کلمه میکرو و کنترلر تشکیل شده است. منظور از میکرو میتواند سرعت عمل میکروکنترلر باشد، زیرا میکروکنترلر میتواند دستورهایی را که به آن میدهیم با سرعت بالا و در حد زمان یک میکرو ثانیه انجام بدهد. معنی دوم میکرو شاید کوچکی قطعه باشد، زیرا این قطعه با ابعادی تا یک میلیونیوم متر کوچک شده است. شاید باورکردنی نیست که در یک تراشه ممکن است بیش از یک میلیون ترانزیستور به کار رفته باشد. معنی فارسی میکروکنترلر را ریزکنترلر یا ریزکنترل کننده نامیدهاند.
میکروکنترلرها قابل برنامهریزی هستند، بهطوریکه طراح میتواند با توجه به نیاز کاربر آن را برنامهریزی کند. به عنوان مثال با اتصال یک بورد و السیدی به میکروکنترلر برنامهریزی شده، یک ماشین حساب یا قفل رمز دیجیتالی بسازد. میکروکنترلرها بهطور گسترده در تولید سیستمهای تک منظوره مانند سیستمهای حفاظتی، دزدگیر، سیستمهای کنترل صنعتی، دستگاه دورنگار (فاکس)، فرکانس متر، کنترل موتور ربات و ولتمتر DC به کار میروند.
استاندارد عملکرد
میکروکنترلر و چگونگی برنامهریزی آن با رعایت استاندارد تعریف شده
مواد، ابزار و تجهیزات مورد نیاز
میکروکنترلر (AVR ATmega)- رایانه- نرمافزار پروتئوس Code Vision AVR-Ver-12-3، Bascom ،Proteus- چند نمونه آیسی میکروکنترلر- چند نمونه برگه اطلاعات میکروکنترلر (Data sheet)- فرهنگ لغت انگلیسی به فارسی- ترانزیستور BC140- دیود 1N4001- مقاومت $1K\Omega $ و $\frac{1}{4}$ وات- لامپ 12 ولت- رله 12 ولتی یک کنتاکت- ترانسفورماتور $220/2 \times 6V$- موتور 12 ولتی کوچک و کم وات
معرفی میکروکنترلرها و شرح عملکرد آنها
سیستم کامپیوتری
در سالهای گذشته با ساختار کلی رایانه (کامپیوتر) آشنا شدهاید، اجزای تشکیل دهنده یک سامانه کامپیوتری بهصورت بلوک دیاگرام شکل 1-6 نشان داده شده است.
ترجمه کنید (صفحه 113 کتاب درسی)
واژههای داخل تصویر 1-6 را به زبان فارسی ترجمه کنید.
بارش فکری (صفحه 113 کتاب درسی)
در داخل دستگاههایی مانند کنترل از راه دور، دستگاه صوتی و تصویری، ربات، کنترل دمای یخچال و کنترل ماشین لباسشویی از یک رایانه استفاده میشود. در مورد آنها جستوجو کنید و نتیجه را از طریق بارش فکری در کارگاه به بحث بگذارید.
فعالیت (صفحه 113 کتاب درسی)
با مراجعه به رسانههای مختلف کلمات Micro controller block Diagram را جستوجو کنید و دو نمونه دیگر از بلوک دیاگرام سامانه کامپیوتری را بیابید و آنها را با هم مقایسه کنید، نتیجه را به صورت یک گزارش به کارگاه ارائه دهید.
معرفی میکروکنترلر و میکروکامپیوترها
با وجود اینکه میکروکنترلرها (ریزکنترل گرها) و میکروپروسسورها (ریزپردازندهها) را از نظر فنی و ساختاری در یک شاخه قرار میدهند ولی آنها در اجزاء و عملکرد با هم تفاوتهای عمده دارند. در ریزپردازندهها فقط واحد پردازش بهصورت مجزا بهصورت یک آیسی IC (مدارمجتمع) وجود دارد که مدارهایی مانند RAM ، ROM واحد ورودی/ خروجی، تایمرها و ثَبّاتها در آیسیهای مجزا به ریزپردازنده متصل میشوند و تشکیل یک رایانه را میدهند.
در ریزکنترلگر تمام واحدهای یک رایانه، از جمله حافظههای ROM ،RAM تایمرها و ثبّاتها همگی بهصورت فشرده و یکپارچه در درون یک آیسی به نام میکروکنترلر قرار میگیرند شکل 2-6. امروزه استفاده از میکروکنترلرها در دستگاههای تجاری برای کنترل عملکرد دستگاههای الکترونیکی خانگی مانند تلویزیون، اجاق میکروویو (Microwave oven) دستگاه کنترل از راه دور و ماشین لباسشویی بسیار متداول و مقرون به صرفه است. به همین دلیل میکروکنترلر را میکروکامپیوتر هم مینامند.
ارزشیابی نظری تشخیصی
تمرین (صفحه 115 کتاب درسی)
این ارزشیابی توسط هنرجو در ساعات غیردرسی اجرا شود و نتیجه ارزشیابی به مربی مربوطه ارائه گردد. محتوای این ارزشیابی نظری مجدداً در کلاس درس توسط هنر آموز مربوطه به اجرا در میآید و بر اساس سطح کلاس روند آموزش ادامه خواهد یافت.
1- آیا هزینه طراحی مدار کنترل یک دستگاه خانگی مانند ماشین لباسشویی به وسیله رایانه یا طراحی آن توسط میکروکنترلر برابری میکند؟ توضیح دهید.
2- آیا یک رایانه از نظر حجم داده و سرعت پردازش (محاسبات) با یک میکروکنترلر برابری میکند، کدام بیشتر است؟
3- در شکل 2-6 ساختار یک میکروکنترلر قسمت A/D Converter به کدام بخش اشاره دارد؟
الف) بخش محاسبه و منطق
ب) مودم و ارتباط شبکه
ج) ورودی حافظه جانبی
د) مبدل آنالوگ به دیجیتال
4- در شکل 2-6 میکروکنترلر Program memory به کدام حافظه اشاره دارد؟
الف) هارد دیسک
ب) حافظههای فقط خواندنی
ج) حافظه جانبی (Micro SD)
د) حافظه دینامیک و استاتیک
5- به کدام علت در یک ماشین لباسشویی نمیتوان از یک رایانه کامل معمولی استفاده کرد؟
الف) وزن و حجم زیاد
ب) هزینه زیاد
ج) عدم نیاز به حجم زیاد حافظه و پردازش
د) هر سه مورد
6- برای یک دستگاه کنترل از راه دور با 12 عدد کلید، در زمانی که یک کلید زده میشود، حداقل کد ارسالی چند بیتی (چند رقمی) است؟
الف) 12
ب) 4
ج) 6
د) 8
7- امروزه برای کنترل دستگاهها (خانگی و تجاری) از مدارهای دیجیتالی پایه مانند گیتها، دیکودرها، فلیپفلاپها استفاده نمیشود، چرا؟
الف) نیاز به مدارچاپی بزرگ
ب) قیمت بالا
ج) طراحی سخت و تغییرناپذیر
د) هر سه مورد
بارش فکری (صفحه 115 کتاب درسی)
دربارۀ علت عدم استفاده از رایانه معمولی به جای میکروکنترلر در دستگاههای الکترونیکی بررسی کنید و نتیجه را از طریق بارش فکری به بحث بگذارید.
معماری میکروکنترلر
چگونگی قرار گرفتن بخشهای مختلف میکروکنترلر مانند مبدلRAM ،ROM ،Timer/counter A/D، و CPU در کنار هم را معماری میکروکنترلر میگویند. معماری میکروکنترلر زمانی کامل است که اجزای آن روند مناسبی را برای اجرای دستورهای موجود در آن دنبال کنند. شکل 3-6 بخشهای اصلی یک میکروکنترلر را بهصورت بلوک دیاگرام نشان میدهد. هماهنگی و نظم در چیدمان اجزا میکروکنترلر، نقش مؤثری در سرعت اجرای دستورهای آن دارد. مثلاً سرعت اجرای دستورهای میکروکنترلرهای 8051 به میزان 12 برابر از میکروکنترلرهای AVR کمتر است. علت این تفاوت در معماری این دو نوع میکروکنترلر است.
فعالیت (صفحه 116 کتاب درسی)
با مراجعه به رسانههای مختلف کلمات computer architector block diagram را جستوجو کنید و نمونههای دیگری از نقشه بلوکی معماری کامپیوتر را بیابید و نتیجه را در قالب گزارش پژوهشی به کارگاه ارائه کنید.
اجزای اصلی میکروکنترلر
میکروکنترلرهای امروزی از نظر معماری دارای بخشهای مشترکی به شرح زیر هستند:
حافظه موقتی RAM
در این حافظه برنامه و بخشی از داده (Data) موقت به اجرا در میآید و بهصورت موقت تا زمانی که میکروکنترلر به جریان الکتریکی متصل است، ذخیره میشود.
حافظه خواندنی ROM
این حافظه جهت قرار گرفتن برنامه مورد نیاز و دادههایی که ثابت هستند استفاده میشود. این دادهها شامل جدولی از دادههای ثابت است که برای نمایش کاراکتر و شکلهای خاص در نمایشگری که سون سگمنت (7Seg) به میکروکنترلر اتصال داده شده است به کار میرود. امروزه در میکروکنترلرها، از خانواده فلش رام (Cooldisk Flash RAM) استفاده میشود. اگر در فرایند اجرای برنامه نیاز به ذخیره اطلاعات پایدار بدون نیاز به تغذیه باشد از حافظههای EEPROM نیز استفاده میشود. در این حالت با قطع شدن تغذیه، اطلاعات ذخیره شده در میکروکنترلر از بین نمیرود.
واحد پردازش مرکزی-CPU
به معنی پردازشگر است و واحد اصلی و مرکزی (مغز) میکروکنترلر به حساب میآید. پردازشگر از بخشهای محاسبه، منطق، رجیسترهای اصلی و واحد دریافت و ترجمه کدهای برنامه تشکیل شده است. هرقدر هماهنگی این بخشها با هم بیشتر باشد عمل پردازش سریعتر صورت میگیرد، این نوع میکروکنترلرها را میکروکنترلر سرعت بالا مینامند.
ورودی و خروجی دیجیتالی DIGITAL I/O
این بخش شامل مجموعه پایههای ورودی و خروجی میکروکنترلر است، عملکرد این پایهها از طریق دستورهای تدوین شده در برنامهنویسی قابل تعریف است. به این ترتیب میتوانیم به ورودی یا خروجی دادههای (Data) مختلف را اختصاص دهیم و حالتهای مختلف را به وجود آوریم.
ساعت Clock
در این بخش یک موج مربعی به عنوان پالس ساعت تولید میشود. این پالس مورد نیاز میکروکنترلر است،که برای مثال میتواند به دو صورت زیر تولید شود:
- حالت RC داخلی: پالس ساعت در داخل تراشه (آیسی IC) میکروکنترلر تولید میشود.
- حالت کریستال خارجی: با نصب یک کریستال پیزو الکتریک به پایههای میکروکنترلر پالس ساعت تولید میشود.
در اکثر کاربردها از حالت RC داخلی استفاده میشود، زیرا دیگر نیاز به قطعه خارجی برای اتصال به میکروکنترلر ندارد.
جستوجو کنید (صفحه 117 کتاب درسی)
در خارج از ساعات درسی و با نظارت اولیای خود، با مراجعه به سایتهای الکترونیک در باره کاربردهای Timer و Counter و A/D (آنالوگ به دیجیتال) جستوجو کنید و در کلاس ارائه کنید.
کار عملی 1: ترجمه اطلاعات فنی و بخشهای مختلف میکروکنترلر (صفحه 117 کتاب درسی)
هدف: کسب مهارت در شناخت و تشخیص اجزاء مختلف یک میکروکنترلر از یکدیگر
مواد، ابزار و تجهیزات: لوازم التحریر-فرهنگ لغت انگلیسی به فارسی
مراحل اجرای کار:
1- با بررسی شکل 4-9، بلوک دیاگرام قسمتهای اصلی و مهم آیسی میکروکنترلر را ترجمه کنید و جدول 1-6 را کامل کنید.
| ترجمه | شماره بلوک | عنوان بلوک |
|---|---|---|
| 1 | Digital I/O Port | |
| Analog I/O Port | ||
| (RAM (Random Access Memory | ||
| (RTC(Real Time Clock | ||
| Program Memory | ||
| Serial Port | ||
| Watchdog Timer | ||
| Clock Oscillator | ||
| Timer/Counter |
2- با توجه به شکل 4-6 قطعات جانبی که به درگاههای ورودی خروجی (I/O Ports) میکروکنترلر اتصال داده میشوند را تعیین کنید و در جدول 2-6 بنویسید.
| ردیف | نام دستگاه یا قطعه | ورودی برای میکروکنترلر | خروجی برای میکروکنترلر |
|---|---|---|---|
| 1 | Personal Computer(PC) | به پورت سریال میکروکنترلر اتصال داده میشود | .......... |
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 | |||
| 9 |
3- با مراجعه به فرهنگ لغت یا سایر رسانهها، اصطلاحات داده شده در جدول 3-6 را ترجمه کنید و نماد اختصاری آن را بنویسید. سپس این نماد اختصاری را با سایر نمادهای اختصاری که تا کنون آموختهاید مقایسه کنید و در صورت مطابقت در ستون مربوطه علامت (+) و در صورت عدم تطابق علامت (ـ) را وارد کنید.
| تطابق | نماد اختصاری | واژه به زبان فارسی | واژه به زبان انگلیسی | ردیف |
|---|---|---|---|---|
| Random Access Memory | 1 | |||
| Read Only Memory | 2 | |||
| Erasable Read Only Memory | 3 | |||
| Erasable Programmable Read Only Memory | 4 | |||
| Electrically Erasable Programmable Read Only Memory | 5 | |||
| Analog to Digital | 6 | |||
| Centeral Processing Unit | 7 | |||
| Control Unit | 8 | |||
| Arithmetic Processing Unit | 9 |
الگوی پرسش (صفحه 120 کتاب درسی)
1- مجموعهای از قطعات الکترونیک در یک بستهبندی را ............... میگویند.
2- مجموعهای از مدارهای مجتمع که در یک بسته قرار دارند و مانند یک رایانه کوچک عمل میکنند را............. میگویند.
3- در شکل 4-6 Analog I/O Port شامل چه بخشهایی میشود؟
4- به میکروکنترلر، ریز کنترل گر نیز میگویند. درست / نادرست
5- در شکل 4-6 Timer برای چه منظوری استفاده میشود؟
انواع میکروکنترلر
پیشرفت فناوری در صنعت الکترونیک، و ارتباط آن با علم دیجیتال، سبب رشد چشمگیری در شکلگیری ساختار انواع خانواده میکروکنترلرها شده است. کارخانههای مختلف با توجه به نیاز، انواع میکروکنترلرها را تولید میکنند. محصول تولیدی آنها در پروژههای صنعتی، در بین متخصصین، دانشجویان و علاقهمندان رواج بیشتری دارد. متداولترین میکروکنترلرها خانوادههای 8051، PIC ، AVR و ARM هستند.
خانواده 8051
این خانواده از قدیمیترین میکروکنترلرها به شمار میآیند، که امکانات محدودی دارند. این نوع میکروکنترلرها قیمت بسیار پایینی دارند. شکل 5-6 قسمتی از برگه اطلاعات آیسی 8051 را نشان میدهد.
ترجمه کنید (صفحه 120 کتاب درسی)
موارد شمارهگذاری شده در شکل 5-6 را ترجمه کنید و نتیجه را در کلاس به بحث بگذارید.
فعالیت عملی (صفحه 121 کتاب درسی)
یک نمونه آیسی 8051 را در اختیار بگیرید و مشخصات ظاهری آن را با انواع آیسیهایی که تا کنون دیدهاید مقایسه کنید.
خانواده AVR
این خانواده از رایجترین و پرکاربردترین میکروکنترلرها است که در مدلهای مختلف با امکانات متنوع ساخته میشوند و در بازار با قیمت مناسب در دسترس است. شکل 6-6 قسمتی از برگه اطلاعات یک نمونه میکروکنترلر AVR را نشان میدهد.
ترجمه کنید (صفحه 122 کتاب درسی)
موارد شمارهگذاری شده در شکل 6-6 را ترجمه کرده و در کلاس درباره آنها بحث کنید.
فعالیت خارج از ساعات درسی (صفحه 122 کتاب درسی)
سایر قسمتهای مربوط به شکل 6-6 را در خارج از محیط آموزشی ترجمه کنید و نتیجه را به کارگاه ارائه دهید.
خانواده PIC
این خانواده نیز از رایجترین و پرکاربردترین میکروکنترلرها است. میکروکنترلر PIC در مقایسه با میکروکنترلر AVR دستورهای کمتری دارد، بنابراین حافظه کمتری را در اختیار میگیرد. این امر باعث افزایش سرعت پردازش PIC میشود. PIC مدلهای مختلف و امکانات متنوع دارد و از قیمت مناسبی نیز برخوردار است. شکل 7-6 یک نمونه برگه اطلاعات میکروکنترلر PIC16C72 را نشان میدهد.
ترجمه کنید (صفحه 122 کتاب درسی)
موارد شمارهگذاری شده در شکل 7-6 را ترجمه کنید و نتیجه را در کارگاه به بحث بگذارید.
فعالیت در ساعات غیر درسی (صفحه 123 کتاب درسی)
سایر قسمتهای مربوط به شکل 7-6 را در خارج از محیط آموزشی ترجمه کنید و نتیجه را در قالب یک پژوهش به کلاس ارائه دهید.
خانواده ARM
این خانواده فقط در بستههای SMD و در مدلهای 8، 16، 32، 34 بیتی ساخته میشوند. آیسیهای 32 بیتی این خانواده، بیشترین کاربرد را دارند. امروزه میکروکنترلرهای ARM در بسیاری از وسایل مانند کامپیوترهای کوچک، تلفن همراه و تبلت استفاده میشوند. شاید بتوان گفت در آینده این میکروکنترلرها نقش پررنگی را در صنایع و جامعه خواهند داشت. قیمت این میکروکنترلرها با توجه به توانایی و امکاناتی که دارند بسیار پایین است. شکل الف-8-6 تصویر واقعی و شکل ب-8-6 ساختار داخلی میکروکنترلر آرم را نشان میدهد.
ترجمه کنید (صفحه 123 کتاب درسی)
موارد شمارهگذاری شده در شکل 8-6 را ترجمه کرده در کلاس درباره آنها بحث کنید.
فعالیت (صفحه 123 کتاب درسی)
با استفاده از آیسی واقعی و روی بردهای اوراقی، چند نمونه آیسی میکروکنترلر را شناسایی کنید و نوع خانواده آن را تعیین نمائید.
تحقیق کنید (صفحه 123 کتاب درسی)
با مراجعه به منابع مختلف ازجمله سایتهای اینترنتی، برگههای اطلاعات میکروکنترلرها را دانلود کنید و آنها را از نظرساختار، کاربرد، امکانات داخلی و قیمت مقایسه کنید و نتایج را در کارگاه به بحث بگذارید.
انتخاب میکروکنترلر مناسب برای یک پروژه مدار الکترونیکی ساده
هر یک از بخشهای مختلف میکروکنترلر برای کاربردی خاص در نظر گرفته شده است. یک طراح الکترونیک با توجه به نیازی که در پروژه دارد از بخشهای مختلف استفاده میکند. برای این منظور کافی است تنظیمات مورد نیاز در بخش مورد نظر را در حالت فعال قرار دهد. با انتخاب یک میکروکنترلر مناسب میتوانیم پروژههای الکترونیکی ساده را با صرفهجویی در تعداد آیسی مدارهای دیجیتال اجرا کنیم. مزیت این روش سرعت بالای مدار و مقرون به صرفه بودن آن است.
میکروکنترلرهای AVR در دسته کوچک (Tiny) متوسط (90s) بزرگ (Mega) و خیلی بزرگ (XMega) دستهبندی میشوند. با توجه به مدلهای متداول موجود در بازار ایران، یک نمونه آیسی از سری Mega به نام ATmega8 را معرفی میکنیم. این میکروکنترلر در سه نوع بستهبندی وجود دارد. دو مدل آن از نوع SMD و نوع ساده آن با بستهبندی دو ردیفه (DIP) است. در شکل 9-6 دو نوع بستهبندی SMD و DIP را مشاهده میکنید. میکروکنترلر از نوع DIP را بهتر میتوانیم روی برد برُد قرار دهیم و پروژه را اجرا کنیم. بنابراین عملاً از این نوع آیسیهای میکروکنترلر بیشتر استفاده میشود.
کار عملی 2: استخراج و ترجمه اطلاعات فنی بخشهای مختلف میکروکنترلر (صفحه 124 کتاب درسی)
هدف: کسب مهارت در ارتباط با استخراج اطلاعات مختلف از برگه اطلاعات میکروکنترلر ATmega8.
مواد، ابزار و تجهیزات: لوازم التحریر- فرهنگ لغات- برگه اطلاعات خانواده میکروکنترلر AVR شکل 6-6
مراحل اجرای کار
1- با مراجعه به برگه اطلاعات میکروکنترلر ATmega8 مشخصات کلی آن را بررسی و جدول 4-6 را کامل کنید.
| ردیف | موضوع | پاسخ |
|---|---|---|
| 1 | تعداد پایههای میکروکنترلر | |
| 2 | تعداد پایههای ورودی و خروجی دیجیتال | |
| 3 | تعداد تایمر | |
| 4 | سرعت (پالس ساعت - کلاک پالس) | |
| 5 | ولتاژ کار | |
| 6 | تعداد ورودیهای آنالوگ به دیجیتال | |
| 7 | مقدار جریان مصرفی میکروکنترلر |
3- شمارۀ پایههای میکروکنترلر ATmega8 نشان داده شده در شکل 10-6 را، در جدول 5-6 بنویسید.
| شماره پایه | نام پایه | شماره پایه | نام پایه | شماره پایه | نام پایه | شماره پایه | نام پایه |
|---|---|---|---|---|---|---|---|
| ADC0 | PORTD.0 | PORTC.0 | PORTB.0 | ||||
| ADC1 | PORTD.1 | PORTC.1 | PORTB.1 | ||||
| ADC2 | PORTD.2 | PORTC.2 | PORTB.2 | ||||
| ADC3 | PORTD.3 | PORTC.3 | PORTB.3 | ||||
| ADC4 | PORTD.4 | PORTC.4 | PORTB.4 | ||||
| ADC5 | PORTD.5 | PORTC.5 | PORTB.5 | ||||
| ADC6 | PORTD.6 | PORTC.6 | PORTB.6 | ||||
| ADC7 | PORTD.7 | PORTC.7 | PORTB.7 |
فکر کنید (صفحه 126 کتاب درسی)
چگونه یک پایه هم میتواند در نقش ADC1 و PORTC.1 دیجیتال کار کند؟ یا پایۀ RXD (دریافت کننده اطلاعات سری) تبدیل به PORTD.0 شود؟
پژوهش (صفحه 126 کتاب درسی)
با مراجعه به رسانههای مختلف ملاکهای انتخاب میکروکنترلر را برای کنترل یک سامانه مثلاً روشنایی ساختمان پیدا کنید و نتیجه را در قالب یک گزارش به کارگاه ارائه دهید.
برنامهنویسی در میکروکنترلرها
میکروکنترلر یک قطعه قابل برنامهریزی است. یعنی میتوان روش کار را با توجه به نیاز برای این قطعه در قالب یک برنامه تعریف کرد. برای اینکه بتوانیم ایده و روش اجرای کار را برای میکروکنترلر به گونهای تعریف کنیم که بتواند فرایند کار را بهطور دقیق اجرا کند، به عبارت دیگر باید با میکروکنترلر سخن بگوییم و مراحل اجرای کار را با نوشتن دستورها به ترتیب به میکروکنترلر معرفی کنیم. نوشتن دستورها با قواعد خاص تعیین شده را برنامهنویسی مینامند. برای سخن گفتن از طریق متن، حروف و نمادها با میکروکنترلر نیاز به حروف، کلمات و قواعد دستوری خاص داریم که به آن زبان نوشتاری میگویند. برای برنامهنویسی میکروکنترلرها میتوانیم از زبانهای اسمبلی، زبان بیسیک یا زبان C استفاده کنیم.
پژوهش (صفحه 126 کتاب درسی)
با مراجعه به رسانههای مختلف جستوجو کنید و تعداد زبانهای موجود برای میکروکنترلرها مانند زبان ماشین را پیدا کنید. کدام یک از این زبانها کاربردیتر است؟ چرا؟ نتیجه را در قالب یک گزارش به کارگاه ارائه دهید.
انواع زبان برنامهنویسی
زبان برنامهنویسی اسمبلی
در این زبان مجموعهای از دستورها بهصورت کلمات انگلیسی مخفف شده هستند و هر دستور در یک خط نوشته میشود.
آموزش زبان برنامه (اسمبلی) به دلیل مخفف بودن، دور بودن از زبان رایج انسانها و نیاز به آشنایی با جزئیات سخت افزار میکروکنترلر، ساده نیست. اما برنامه نوشته شده با اسمبلی میتواند کم حجم باشد، حافظه کمتری نیاز داشته باشد و سریعتر از زبانهای دیگر اجرا شود.
زبان برنامهنویسی بیسیک Basic
این زبان بر مبنای اصول نوشتاری ساده زبان انگلیسی (البته کلمات منطقی) طرح شده است. سادگی آن باعث شده اکثر دانش آموزان و علاقه مندان به کار با میکروکنترلر را به خود جلب کند.
زبان برنامهنویسی C
زبان برنامهنویسی C مانند زبان بیسیک از کلمات منطقی انگلیسی و همچنین قواعد نوشتاری خاصی پیروی میکند. به دلیل حجم نسبتاً کم فایل تولید شده و سرعت مناسب دستوراتی که ارائه میکند، طرفداران بیشماری در سراسر جهان دارد. امروزه برای انواع میکروکنترلرها از خانوادههای مختلف، کامپیوترهای کوچک و بزرگ از زبان C استفاده میشود. مزیت استفاده از زبان C این است که در یک خانواده میکروکنترلر، بهراحتی میتوان برنامه دستورهای یک میکروکنترلر را با کپی کردن به میکروکنترلر دیگری انتقال داد. برای سایر خانوادههای میکروکنترلر نیز میتوان با تغییر بعضی از کلید واژهها از برنامه داخلی آنها استفاده کرد.
پژوهش (صفحه 127 کتاب درسی)
درمورد ویژگیهای زبان برنامهنویسی بیسیک و زبان C تحقیق کنید و نتایج را در کارگاه ارائه نمایید.
مراحل اجرای یک پروژه با میکروکنترلر
برای اجرای یک پروژه با میکروکنترلر صرف نظر از نوع میکروکنترلر و زبان برنامهنویسی، باید میکروکنترلر را به شرح زیر مشخص کنیم:
تعداد ورودی و خروجی (دیجیتال و آنالوگ) مورد نیاز
تعداد پایه ورودی و خروجی مورد نیاز با توجه به پایههای قطعات جانبی میکروکنترلر تعیین میشود. همانطور که در شکل 11-6 مشاهده میکنید. برای هر کلید یک بیت ورودی و برای هر LED یا رله، یک بیت خروجی در نظر گرفته میشود. برای راهاندازی نمایشگر هفت قطعهای با در نظر گرفتن نقطه نمایشگر (7SEG) نیاز به 8 بیت (1 بایت Byte) داریم، زیرا عملاً باید 8 پایه استفاده شود.
پس از اختصاص دادن پایهها، تعداد پایهها را با هم جمع میکنند به این ترتیب تعداد پایههای مورد نیاز مشخص میشود. از روی تعداد پایهها و نیازهای فنی میکروکنترلر را انتخاب میکنیم.
رسم نقشه فنی مدار میکروکنترلر در نرم افزار پروتئوس (Proteus)
در رسم نقشه فنی مدارهای میکروکنترلر آدرسهای ورودی و خروجی برای محیط برنامهنویسی مشخص میشوند. در شکلهای 11-6 و 12-6 اتصال قطعات جانبی به پایههای میکروکنترلر نشان داده شده است.
بستن مدار جانبی میکروکنترلر
برای اطمینان از صحت عملکرد مدار، مدارهای الکترونیکی مرتبط با میکروکنترلر را طبق شکل 13-6 روی برِد بُرد میبندند. این مدارها معمولاً بهصورت مستقل در روی برِد بُرد بسته میشوند که میکروکنترلرها را با حسگرها، راهانداز موتورها یا نمایشگرها ارتباط میدهد.
نوشتن برنامه دستورهای اجرای میکروکنترلر با یک زبان برنامهنویسی
برنامهنویسی با یک نرم افزار مستقل انجام میشود، مثلاً برای نوشتن برنامه با زبان C از نرمافزار CodeVision و برای نوشتن زبان بیسیک از نرمافزار Bascom استفاده میشود.
شبیهسازی مدار و اجرای برنامه در نرمافزار پروتئوس
نرمافزار پروتئوس Proteus برای شبیهسازی مدارهای الکترونیکی، دیجیتال و به خصوص میکروکنترلر AVR توانایی بالایی دارد. روش کار با نرمافزار پروتئوس را با مراجعه به منابع مختلف مطالعه کنید، سپس بالاترین نسخه نرمافزار را نصب کنید و چند نمونه مدار را ببندید تا مهارت لازم را به دست آورید. شکل 14-6 یک نمونه مدار شبیهسازی شده را نشان میدهد.
پژوهش (صفحه 129 کتاب درسی)
نرمافزار Proteus را بر روی رایانه نصب کنید. نحوه نصب نرمافزار و مراحل اجرایی آن را در کارگاه ارائه دهید.
در هنگام شبیهسازی با نرمافزار، دستورهای تعریف شده برای میکروکنترلر مورد آزمایش قرار میگیرد، درصورتیکه مراحلی از دستورها بهطور صحیح اجرا نشود، یا خطایی در اجرای برنامه اعلام شود با مراجعه به نرمافزار برنامهنویس برنامه را اصلاح و دوباره بارگذاری و اجرا میکنیم، تا نتیجه مطلوب حاصل شود شکل 15-6 . در اجرای پروژهها ممکن است این فرایند چندین بار تکرار شود تا خطاها برطرف و مدار پاسخ دهد.
پروگرام کردن میکروکنترلر
بارگذاری یا انتقال برنامه به میکروکنترلر به وسیله مدار پروگرام (Programmer) مستقل و سازگار با نرمافزار برنامهنویسی انجام میشود. مدار پروگرامر و نرمافزار مرتبط بهصورت آماده در بازار ارائه میشود، شکل 16-6. همچنین خودتان میتوانید این مدار را بسازید.
فعالیت (صفحه 130 کتاب درسی)
به کمک مربی خود یک مدار پروگرامر طراحی کنید. مدار سختافزاری آن را بسازید، و نتیجه را به کارگاه ارائه دهید.
بستن مدار سخت افزاری پروژه میکروکنترلر
مدار سختافزاری میکروکنترلر را با قطعات جانبی آن روی برِدبرُد میبندیم، بعداز مطمئن شدن از صحیح کار کردن مدار، فیبر مدار چاپی آن را طراحی کرده و قطعات را بر روی برد فیبر مدار چاپی مونتاژ و راهاندازی میکنیم، شکل 17-6.
ساختار برنامهنویسی به زبان C
در این قسمت قصد داریم برنامه نویسی میکروکنترلر را با زبان C و نرمافزار Codevision انجام دهیم این زبان برنامهنویسی کاربرد زیادی دارد که در آینده با دستورهای آن آشنا خواهید شد. ساختار برنامه C به شکل 18-6 است.
در زبان برنامهنویسی دستورات بر سه نوع هستند:
دستورهایی که به آنها دستورهای استاندارد C گفته میشود.
- دستورهایی که توسط فایلهای جانبی به نام کتابخانه (Heder فایلها) به برنامه اضافه میشوند مانند فایل (delay.h) که در بالای برنامه توسط کد دستوری
# include < delay.h >
به برنامه اضافه میشود. این دستور با شماره 1 در جدول 6-6 نشان داده شده است.
- به دستورهایی که کاربر برنامهنویس، برای اجرای یک عمل در درون برنامه ایجاد میکند توابع میگویند.
در زبان C، یک برنامه به نام مفسر یا مترجم کلی وجود دارد که برنامه نوشته شده را به زبان ماشین (کُد) ترجمه میکند. در این فرایند فایل ساخته شده توسط مفسر در مقایسه با فایل نوشته شده توسط کاربر کوچکتر شده و سریعتر عمل میکند.
قواعد ساده نوشتاری در زبان برنامهنویسی C
- یک بلوک برنامه یا تابع یا فرایند مربوط به دستورات شرطی با علامت "{" شروع و در انتها با علامت "}" به پایان میرسد. علامت "{" با شماره 3 و علامت "}" با شماره 11 در جدول 6-6 نشان داده شده است.
- برنامه تابع اصلی پس از مجموعه کلمههای Void main (void) و علامت "}" قرار میگیرد، (شماره 2 در جدول 6-6). در ادامه دستورهای لازم برای تنظیمات اولیه پایهها و سخت افزارهای درون میکروکنترلر به اجرا در میآید (شماره 4 در جدول 6)
- برنامه مورد نظر ما بعد از خط } (while (1 شروع میشود و باید تا قبل از علامت "{" پایان یابد. این برنامه به دلیل نوشتن عدد یک در دستور } (1) while میتواند تا بینهایت ادامه یابد و اجرا شود (شماره 5 در جدول 6-6)
- اگر توجه کنیم در انتها دو بار علامت "{" وجود دارد که یکی مربوط به پایان محدوده } (1) while و دیگری پایان محدوده } Void main (void) یا همان پایان نهایی است (شماره 10 و 11 در جدول 6-6)
- در انتهای هر عبارت و در پایان هر خط باید علامت (;) قرار گیرد تا مفسر برنامه بتواند برنامه را به درستی تفسیر کند.
- زبان C به حروف بزرگ و کوچک حساس است. لذا اگر دستور یا متغیر حروف کوچک باشد، اگر به اشتباه حتی یکی از حروف بزرگ نوشته شود مفسر روی این کلمه اعلام خطا میکند. لذا در نوشتن برنامه حتماً به حروف بزرگ و کوچک اختصاص داده شده به عبارات توجه کنید.

- هر پرانتز باز شده "(" باید با یک پرانتز بسته ")" و هر علامت "{" باز شده باید با یک علامت "}" بسته شده کامل شود.
کار گروهی (صفحه 133 کتاب درسی)
در کلاس در مورد دستورها و قواعد این دو زبان بحث کنید و نتیجه را در یک جدول به صورت خلاصه بنویسید و به کارگاه ارائه دهید.
کاربرد دستورهای نوشته شده در زبان C
کار با پایهها و پورتها و آشنایی با متغیرهای Bit ، Byte
- برای روشن و خاموش کردن یک پایه خروجی میکروکنترلر، نیاز به انتقال یک بیت " 1" یا " 0" منطقی است.
دستور PORTD.X = 1 مفهوم یک بیت را دارد. X شماره یکی از پایههای پورت D است، که ارزش منطقی 1 به آن داده میشود.
- برای اختصاص دادن ارزش منطقی " 1 " یا " 0 " به یک متغیر منطقی از یک پایه ورودی میکروکنترلر، از دستور $A = PIND.2;$ استفاده میشود. این دستور میگوید ارزش منطقی متغیر A را از پایه شماره 2 پورت D بخوان.
سوال (صفحه 134 کتاب درسی)
دستور $X = PINC.3$ چه عملی را انجام میدهد؟
اگر بخواهیم تمام پایههای یک پورت (مانند پورت B) ارزش منطقی " 1 " را داشته باشند، یعنی فعال شوند، دستور $PORTB = 255;$ را به کار میبریم.
سوال (صفحه 134 کتاب درسی)
عدد 255 در سیستم باینری برابر چه عددی است؟
تحقیق کنید (صفحه 134 کتاب درسی)
0xd3 نوشتن عدد در قالب هگزادسیمال است. اگر این دستور به کار رود $PORTD = 0xd3;$ کدام پایهها روشن و کدام پایهها خاموش میشوند؟ نتیجه را به کارگاه ارائه دهید.
فعالیت (صفحه 134 کتاب درسی)
جدولی تهیه کنید و دستورهای پرکاربرد را در یک ستون آن بیاورید و در ستونی دیگر مفهوم و عملکرد دستور را بنویسید.
- برای خواندن تمامی پایههای یک پورت از دستور $Z = PINC;$ . استفاده میشود. Z یک متغیر است که اندازه آن 8 بیت برابر با تعداد پایههای پورت C است. به متغیری که اندازه آن 8 بیت باشد Byte میگویند. در زبان برنامهنویسی C این نوع متغیر را با نام کاراکتر (unsigned char یا char) میشناسند.
دستور تأخیر، شرط، حلقه و تکرار
دستور تأخیر
$delay - ms(200);$ یا $delay - us(350);$ این دو دستور برای ایجاد تأخیر در روند برنامه به کار میرود و هر کدام دارای مفهومی به شرح زیر است:
تأخیری برابر 200 میلی ثانیه $delay - ms(200);$
تأخیری برابر 350 میکرو ثانیه $delay - us(350);$
دستور شرط
$if(A > = B)\left\{ {.........} \right\}$ این دستور این گونه عمل میکند که اگر A بزرگتر یا مساوی B باشد. دستورهایی را که بین {} قرار دارد، فقط یکبار اجرا میکند و اگر شرط برقرار نباشد به ادامه برنامه میرود.
دستور حلقه
دو دستور پرکاربرد به قرار زیر است.
الف) $while(a = = x)\left\{ {.........} \right\}$ این فرمان تا زمانی که متغیر a با متغیر x برابر باشد C دستورهایی که مابین {} قرار دارند را مرتباً اجرا میکند. اگر a با x برابر نباشد از حلقه تکرار خارج شده به ادامه برنامه میرود.
ب) $for(i = 0;i < 10;i + + )\left\{ {........} \right\}$ این فرمان 10 بار دستورهای مابین علامت {} را اجرا میکند و بعد از آن برنامه را ادامه میدهد.
جستوجو کنید (صفحه 135 کتاب درسی)
++i چه عملی انجام میدهد؟ دستور مشابه آن چیست؟ نتیجه را به کارگاه ارائه دهید.
کار عملی 3: دستور نویسی ساده با زبان C و بستن مدارهای جانبی میکروکنترلر (صفحه 135 کتاب درسی)
هدف: کسب مهارت در نوشتن دستورهای ساده برای میکروکنترلر ATmega8 و راهاندازی مدارهای جانبی
مواد، ابزار و تجهیزات: لوازم التحریر- دستورهای زبان C- برگه اطلاعات میکروکنترلر ATmega8-رایانه- نرمافزار پروتئوس Proteus- ترانزیستور BC140- دیود 1N4001- مقاومت $1K\Omega $ یک چهارم وات- لامپ 12 ولت- رله 12 ولتی یک کنتاکت- ترانسفورماتور $220/2 \times 6V$- موتور 12 ولتی کوچک و کم وات
مراحل اجرای کار
1- دستوری بنویسید که پین 2 پورت C را روشن یا وضعیت منطقی آن را "1" کند.
| شماره پین 2 پورت C | دستور | |
|---|---|---|
2- دستوری بنویسید که تمام پینهای پورت D را روشن وخاموش کند.
3- دستوری برای تأخیر 300 میلی ثانیه در روند اجرای برنامه بنویسید.
4- برای روشن و خاموش کردن کامل یک پورت (مثلاً پورت B) از چه دستوری استفاده میکنیم؟
5- مدارهای شکل 19-6 و 20-6 قرار است با یک میکروکنترلر مناسب کنترل شود، هریک از مدارها را در نرم افزار پروتئوس Proteus ببندید و آنها را شبیهسازی کنید.
6- مدار شکل 19-6 را برروی برِدبرُد ببندید. عملکرد مدار را به اختصار توضیح دهید.
7- مدار شکل 20-6 را بر روی برِدبرُد ببندید. نحوه راهاندازی مدار را به اختصار توضیح دهید.
8- به نظر شما راهاندازی مدارهای شکل 19-6 و 20-6، با یک میکروکنترلر ATmega8 چگونه است؟ توضیح دهید. با راهنمایی معلم نقشه مدار را در شکل 21-6 و 22-6 رسم کنید.
الگوی آزمون نظری (صفحه 137 کتاب درسی)
1- کوچکترین واحد حافظه بایت است. درست / نادرست
2- CPU و واحد ورودی و خروجی بخشی از ......... است.
3- USB مربوط به کدام بخش یک سیستم کامپیوتری یا میکروکنترلر میباشد؟
4- Counter در میکروکنترلرها برای چه کاربردی استفاده میشود؟
5- خلاصهای از برگه اطلاعات مشخصات یک میکروکنترلر در شکل 23-6 نشان داده شده است، به سؤالهای مرتبط به آن پاسخ دهید.
- مورد شماره 1 چه پارامتری از میکروکنترلر را بیان میکند؟
الف) سرعت واقعی cpu برحسب فرکانس
ب) سرعت cpu بر مبنای تعداد دستور در ثانیه
ج) اندازه محاسبات برمبنای بیت
د) یکی از پارامترهای سرعت برمبنای فرکانس
- مورد شماره 2 کدام پارامتر از میکروکنترلر را بیان میکند؟
الف) سرعت cpu برحسب فرکانس
ب) تعداد هسته cpu
ج) اندازه محاسبات برمبنای بیت
د) اندازه واحد حافظه داخلی برمبنای بیت
- شماره 3 به کدام حافظه اشاره میکند، تفاوت آن با مورد شماره 4 کدام است؟
الف) خواندنی و نوشتنی - فقط خواندنی
ب) فقط خواندنی - خواندنی نوشتنی
ج) حافظه کمکی - اصلی
د) هردو حافظه فقط خواندنی، ولی تفاوت در نحوه دسترسی به آنها
- کدام گزینه کاربرد شماره 5 را مشخص میکند؟
الف) اندازهگیری سنسورها
ب) شمارش بستهها
ج) ارتباط سریال
د) تکرار برنامهها با زمان مشخص
- اطلاعات کدام حافظه با قطع تغذیه میکروکنترلر پاک میشود؟
الف) RAM
ب) ROM
ج) EPROM
د) حافظه فلش
- هر یک از کاربردهای شماره 6 شامل (${I^2}C$ و SPI و UART) در میکروکنترلر را شرح دهید.
الف) UART
ب) SPI
ج) ${I^2}C$
- شماره 7 برای چه کاربردی در میکروکنترلر قرار گرفته است؟ اگر مقدار آن 8bit باشد چه تفاوتی در کاربرد آن ایجاد میشود؟
آزمون عملی (صفحه 138 کتاب درسی)
الگوی آزمون 1: یکی از راههای به دست آوردن اطلاعات میکروکنترلر مشاهده شکل پایههای (Pin Config) آن است. در شکل 24-6 پایههای یک میکروکنترلر معرفی شده است. با توجه به اطلاعات روی شکل به سؤالات زیر پاسخ دهید؟
1- تعداد پایههای قابل استفاده به عنوان ورودی و خروجی دیجیتال چند پایه است؟
2- پایههای ورودی آنالوگ به دیجیتال کدام پایهها هستند؟
3- آیا میتوان اسیلاتور داخلی با کریستال خارجی میکروکنترلر را فعال کرد؟ از کدام پایهها استفاده میشود؟
4- کدام پایههای میکروکنترلر مقایسه کننده آنالوگ است؟
5- مفهوم پایه 13 میکروکنترلر(AREF) شکل 24-6 را مشخص کنید؟
6- این میکروکنترلر چند تایمر دارد؟
7- پایههایی که برای پروگرام کردن میکروکنترلر استفاده میشوند کدام هستند؟
8- این میکروکنترلر برای کدام پروژههای زیر مناسب است؟ چرا؟
الف) 4 عدد کلید - یک سون سگمنت کامل (7 قطعه + LED ممیز) به عنوان نمایش دهنده و سه سنسوربرای اندازه گیری گرما و فشار مخزن
ب) 3 عدد کلید، 5 عدد LED و 4 سنسور برای اندازهگیری دما و فشار یک مخزن
الگوی آزمون 2: برای کنترل یک مدار چشم کزن با دو دیود نورانی قرمز و سبز یک میکروکنترلر ATMEGA8 نیاز است. میخواهیم با فشردن یک کلید فشاری شروع به کار کند و با فشردن کلید فشاری دوم مدار چشمکزن متوقف شود. نقشه مدار را با نرم افزار پروتئوس شبیهسازی کنید.
واحد یادگیری 7: مدارهای کاربردی با میکروکنترلر
آیا تا به حال فکر کردهاید
- چه تعداد ورودی و خروجی قابل اتصال به میکروکنترلر است؟
- چه نوع سنسورهایی را میتوان به میکروکنترلر متصل کرد؟
- آیا میتوان مدارهای جریان بالا را به میکروکنترلر متصل کرد؟
- چه نوع سخت افزارهایی را میتوان به میکروکنترلر اتصال داد؟
- چگونه میتوان یک دستگاه پروگرامر ساخت؟
- چگونه میتوان سرعت و جهت چرخش (چپ گرد و راستگرد) یک موتور DC را تغییر داد؟
- آیا در لوازم خانگی میکیروکنترلر به کار میرود؟
یک میکروکنترلر بدون برنامهریزی شدن، قابلیت کاربردی ندارد، با برنامه یزی، میکروکنترلر توانایی کنترل مدارهای الکترونیکی را پیدا میکند. در واقع برنامه هر میکروکنترلر روح و جانی است که در آن دمیده میشود و آن را پویا و فعال میکند. برنامهریزی میکروکنترلر را با استفاده از یک نرمافزار به نام مترجم (Compiler) انجام میدهند. این برنامه را به وسیله دستگاهی به نام پروگرامر در میکروکنترلر بارگذاری (Program) میکنند. پروگرامر یک واسطه الکترونیکی ارتباطی بین کامپیوتر و میکروکنترلر است. شما به وسیله میکروکنترلر میتوانید مدارهای کاربردی متفاوتی را در سطح مقدماتی طراحی کنید و برد مدار چاپی آن را بسازید. برای تولید مدارهای پیشرفته، احتیاج به سخت افزارهای جانبی بیشتری در کنار میکروکنترلر است که در مقاطع تحصیلی بالاتر با کسب دانش بیشتر، توانایی و مهارت لازم را برای طراحی و اجرای پروژههای الکترونیکی پیچیده به دست میآورید.
استاندارد عملکرد
برنامهریزی میکروکنترلر و استفاده از آن برای بستن مدار ساده و راهاندازی مدار با رعایت قوانین و استاندارد حاکم
مواد، ابزار و تجهیزات مورد نیاز
رایانه- نرمافزارهای مورد نیاز برِدبرُد- میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer)- دیود LED قرمز و سبز- مقاومت $560\Omega $ و $470\Omega $ و $220\Omega $ و $3/3K\Omega $ و $\frac{1}{4}$ وات- ترانزیستور BC140 و BD137- سیمهای برِدبرُد- میز آزمایشگاهی الکترونیک با تجهیزات استاندارد- $\frac{1}{4}LCD2 \times 16$- هفت قطعهای 7Seg (سون سگمنت)- کاتد مشترک- موتور DC کوچک- کلید شستی کوچک (SPST Push Button)- شارژر موبایل 5 ولتی
انتخاب میکروکنترلر
چگونگی انتخاب میکروکنترلر مناسب برای اجرای پروژههای ساده الکترونیکی، در واحد یادگیری 6 شرح داده شده است.
بهمنظور عملی شدن کنترل مدارهای الکترونیکی با میکروکنترلر، لازم است که دستورهای اجرایی را به وسیله نرمافزار Codevision AVR برنامهریزی کنیم. پس از برنامهریزی باید مدار با نرمافزار پروتئوس شبیهسازی شود. در صورت صحیح بودن برنامه و عملکرد درست مدار، برنامه را در میکروکنترلر به وسیله دستگاه پروگرامر (Programmer) بارگذاری میکنیم. بارگذاری برنامه در میکروکنترلر را اصطلاحاً پروگرام (Programmer) کردن برنامه میگویند. در این مبحث با اجرای یک کار عملی بهصورت گام بهگام با شیوه برنامهریزی میکروکنترلر آشنا خواهید شد؛ سپس میکر وکنترلر را بههمراه مدار جانبی آن روی برِدبرُد نصب میکنید و مورد آزمایش قرار میدهید. در ادامه کار میتوانید برد فیبر مدار چاپی آن را بسازید. برای رسیدن به این هدف و ایجاد انگیزه، ضرورت دارد مداری را انتخاب کنید که کاربردی باشد و عملاً بتوانید در زندگی روزمره خود استفاده کنید.
کار عملی 1: بستن مدار چشمک زن با دو LED بهوسیله میکروکنترلر و برنامهنویسی آن با زبان C (صفحه 141 کتاب درسی)
هدف: کسب مهارت در برنامهریزی، شبیهسازی و پروگرام کردن میکروکنترلر ATmega8
مواد، ابزار و تجهیزات: لوازمالتحریر- دستورهای زبان C- برگه اطلاعات میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer)- رایانه- نرمافزارهای مورد نیاز- برِدبرُد- میکروکنترلر ATmega8- دیود LED قرمز و سبز هرکدام یک عدد مقاومت $470\Omega $ و $\frac{1}{4}$ وات دو عدد- سیمهای برِدبرُد- میز آزمایشگاهی الکترونیک با تجهیزات استاندارد
مراحل اجرای کار:
1- در شکل 1-7 مدار چشمکزن با دو LED نشان داده شده است. در این مدار زمان روشن و خاموش شدن، بهوسیله میکروکنترلر تعیین میشود. برای این منظور بیت صفر و بیت 1 از پورت B (پایه 14 و 15) میکروکنترلر را به صورت خروجی تعریف میکنیم. مقاومتهای 470 اهمی برای بایاس کردن دیودها به پایههای میکروکنترلر اتصال داده شده است.

2- نرمافزار کدویژن (Codevision) را فعال کنید و با زبان برنامهنویسی C برنامه مدار چشمکزن را بنویسید.
3- برنامه مدار چشمکزن به زبان C را در شکل 2-7 مشاهده میکنید. با توجه به آموختههای خود دستورهای اجرای برنامه را شرح دهید.
4- در برنامه Codevision از منوی file گزینه New را انتخاب کنید تا پنجره شکل 3-7 باز شود، سپس گزینه project را اتخاب کنید و دکمه ok را فعال کنید. برای استفاده از wizard روی گزینه yes شکل 4-7 کلیک کنید تا پنجره code wizard باز شود.
5- با انتخاب code wizard، پنجره تنظیمات ویزارد شکل 5-7 باز میشود.
در مرحله اول در زبانه chip نوع میکروکنترلر ATmega8 را انتخاب کنید شکل الف 6-7.
پس از انتخاب ATmega8 پنجره بسته میشود. طبق شکل ب 6-7. مقدار فرکانس پالس ساعت (Clock Freqency) را روی 8MHz بگذارید.
در مرحله دوم با انتخاب زبانه Port در قسمت Port Setting، و پایهای را که میخواهید بهعنوان خروجی استفاده کنید، بر روی حالت out بگذارید. شکل 5-7 در کادر code wizard با شماره 3 قرار دادن بیت صفر و یک از پورت B را در حالت خروجی نشان میدهد.
بعد از اجرای تنظیمات از منوی program گزینه Generate،Save & Exit را انتخاب کنید، تا کد برنامه ایجاد شود. در کادرهای باز شده نام پروژه و نام برنامه را تایپ کنید. برای پروژه و برنامه از یک نام مشترک استفاده کنید.
6- همانطور که در شکل 7-7 مشاهده میکنید قسمتی از متن برنامه توسط ویزارد (Wizard) نوشته شده است.
در ادامه کار باید، فایل هدر $\# include < delay.h > $ را در ابتدای برنامه و زیر خط معرفی میکروکنترلر اضافه کنید. سپس در حلقه while(1) متن برنامه را بنویسید.
7- بعد از کدنویسی برای بررسی خطاها و کامپایل کردن برنامه (ترجمه و تفسیر کردن) در شکل 8-7 از منوی project گزینه Build all را انتخاب کنید، در این حالت طبق شکل 9-7 پنجرۀ اطلاعات پروژه باز میشود.
در پنجره اطلاعات شکل 9-7، گزارشی از نتیجه Compiler و تعداد خطاهای برنامه نشان داده میشود. در صورتی که در برنامه خطایی وجود نداشته باشد روی گزینه OK کلیک کنید، تا برنامه ذخیره (SAVE) شود. در این حالت فایلی با پسوند hex برای برنامهریزی کردن میکروکنترلر ایجاد میشود.
- فایل hex در پوشه Exe در محل ذخیره برنامه پروژه قرار میگیرد.
- فایلهای دیگری جهت شبیهسازی و موارد دیگر نیز تولید میشود.
8- نرمافزار Proteus را اجرا کنید.
در گوشه سمت چپ روی حالت
(Component Mode) کلیک کنید، تا دسترسی شما به قسمت کتابخانههای نرمافزار امکانپذیر شود. برای اینکار در قسمت DEVICES بر روی آیکن
(Pick Devices) کلیک کنید شکل 10-7.
طبق شکل 11-7 در کادر باز شده Pick Devices در قسمت Keywords میتوانید نام قطعه یا کتابخانه مورد نظر را جستجو کنید. کلمه AVR را تایپ کنید، در این قسمت فهرست میکروکنترلرهای خانواده AVR به نمایش در میآید، از این فهرست میکروکنترولر ATmega8 را انتخاب کنید. با دو بار کلیک کردن بر روی قطعه مورد نظر، قطعه وارد قسمت DEVICES میشود.
طبق شکل 12-7 عبارت res را در مکان Keywords بنویسید و مقاومت مدار را انتخاب کنید. با دوبار کلیک کردن روی Resistors، مقاومت وارد قسمت DEVICES میشود.
برای دیودهای نورانی کلمه LED را بنویسید. طبق شکل 13-7 در قسمت نتیجه جستجو، LED با رنگهای سبز و قرمز را انتخاب کنید.
قطعات را از جعبه DEVICES به محیط کار پروتئوس بیاورید و طبق شکل 14-7 پایههای میکروکنترلر را به LEDها سیمکشی کنید.
برای اتصال GND و Vcc در نرمافزار پروتئوس، طبق شکل 15-7 در آیکن Terminals Mode
گزینههای GROUND و POWER را انتخاب کنید.
بعد از اینکه سیمکشی مدار تمام شد، باید برنامه نوشته شده را در میکروکنترلر بارگذاری کنیم، برای اینکار بر روی نماد فنی میکروکنترلر در نقشه دوبار کلیک کنید، تا کادر شکل 16-7 باز شود.
با کلیک بر روی
در قسمت Program File، فایل (cof یا hex) را از مسیر ذخیره شده برنامه میکروکنترلر را انتخاب کنید.
فرکانس کار میکروکنترلر را مطابق انتخاب اولیه در محیط برنامهنویسی کدویژن (8MHz Int RC) تغییر دهید و کلید ok را بزنید، میکروکنترلر در نرمافزار آماده اجرا میشود.
برای اجرای برنامه نوشته شده در گوشه پایین سمت چپ نرم افزار پروتئوس
بر روی start (دکمه PLAY) کلیک کنید تا برنامه اجرا شود شکل 17-7.
9- برنامه را به وسیله پروگرامر موجود در هنرستان با راهنمایی و نظارت مربی کارگاه به میکروکنترلر انتقال دهید.
10- میکروکنترلر و قطعات جانبی آن را روی برِدبرُد ببندید. اتصال تغذیه مدار را از منبع تغذیه آزمایشگاهی 5 ولت ثابت یا یک شارژر موبایل 5 ولتی برقرار کنید.
11- عملکرد مدار چشمکزن را مشاهده کنید. درصورتی که مدار فعال نشد، اتصال پایههای میکروکنترلر و جهت قرار گیری آند و کاتد دیودها را کنترل کنید. در غیر این صورت به کمک مربی کارگاه، مدار را بازبینی و عیبیابی کنید. پس از رفع عیب، دوباره مدار راهاندازی کنید.
12- نتایج حاصل از راهاندازی مدار چشمکزن را تحلیل کنید و بهطور خلاصه بنویسید.
پروگرام کردن میکروکنترلر
اغلب میکروکنترلرهای خانواده AVR به چهار روش قابل برنامهریزی یا پروگرام شدن هستند. در شکل 18-7 این چهار روش انتقال برنامه به داخل میکروکنترلر را نشان میدهد.
ترجمه کنید (صفحه 148 کتاب درسی)
متن تصویر 18-7 را به زبان فارسی ترجمه کنید.
شرکتهای سازنده میکروکنترلر، پروگرامرهای مختلفی برای AVR ساختهاند، یکی از رایجترین و سادهترین نوع آنها مدلی است که ورودی آن به درگاه پرینتر (پورت پارالل) رایانه وصل میشود و خروجی آن به روش ISP (واسطه سه سیمه)، میکرو را پروگرام میکند. چنانچه پروگرامرها با استاندارد شرکت ATMEL ساخته شوند با نرمافزار Codvision شناخته میشوند. بعضی از پروگرامرها نرمافزارهای مخصوص خود را دارند. در هرصورت اگر نرمافزارها متفاوت باشند قابلیت سازگاری با میکروکنترلرهای مختلف را دارد. معمولا در این نرمافزارها علائم و کلیدهای مشابه وجود دارد که امکان پروگرام کردن میکروکنترلرها را فراهم میکند. در شکل 19-7 دو نمونه از پروگرامر میکروکنترلر نشان داده شده است.
تحقیق کنید (صفحه 148 کتاب درسی)
با مراجعه به رسانههای مختلف، در رابطه با انواع پروگرامرهای میکروکنترلر تحقیق کنید و نتیجه تحقیق خود را ارائه دهید.
سوال و جستوجو (صفحه 148 کتاب درسی)
تفاوتهای بین پورت پرینتر قدیمی در کامپیوتر و پورت USB را شرح دهید.
فیوزبیتها (Fuse Bits)
فیوزبیتها، بخش رجیستری (ثبات Register) حافظۀ فلش هستند، که با تغییر آنها (صفر یا یک کردن) امکاناتی را در اختیار کاربر قرار میدهند. فیوزبیتهای میکروکنترلرهای AVR در هر پروژه برای شروع به کار نیاز به تنظیم اولیه دارد.
فیوزبیتها برای تنظیمهای خاصی استفاده میشوند و با پاک کردن میکروکنترلر از بین نمیروند. لذا تغییر در آنها فقط از طریق پروگرامر امکانپذیر است، همچنین برای تنظیم آنها نیاز به برنامهنویسی خاص نداریم. میکروکنترلرها بسته به نوع قابلیتی که دارند دارای فیوزبیتهای متفاوتی هستند. برخی از فیوزبیتها عبارتاند از:
فیوز CKSEL برای انتخاب منبع پالس ساعت clock pulse میکروکنترلر بهصورت داخلی یا بهصورت خارجی با کریستال پیزو الکتریک به کار میرود.
اگر بخواهیم پس از پاک کردن برنامه میکروکنترلر، حافظه EEPROM آن را داشته باشیم یا حذف کنیم از فیوزبیت EESAVE استفاده کنیم.
در صورت برنامه ریزی فیوزبیت BOOTRST آدرس، Reset را به ابتدای حافظه Boot انتقال میدهد.
در این وضعیت برای راهاندازی دوباره میکروکنترلر نیاز به خاموش و روشن کردن تغذیه DC نیست.
این نوع راهاندازی (Boot) معمولا روال خودکاری از مجموعهای دستورهایی است که با روشن کردن یا بازنشانی (Reset) میکروکنترلر شروع میشود. همچنین، عملکرد آن مشابه عملکرد کلید فشاری Reset در رایانه است.
اگر به فیوزبیتها ارزش صفر" 0" بدهیم به معنای بیت برنامهریزی شده (PROGRAMMED) و چنانچه ارزش" 1" بدهیم به معنای بیت برنامهریزی نشده (UNPROGRAMMED) است.
تحقیق کنید (صفحه 150 کتاب درسی)
با مراجعه به رسانههای مختلف، اطلاعات مرتبط به فیوزبیتهای خانواده میکروکنترلرهای AVR را بیابید و آنها را استخراج کنید و نتیجه تحقیق خود را در قالب یک گزارش ارائه دهید.
جستوجو کنید (صفحه 150 کتاب درسی)
با مراجعه به رسانههای مختلف نحوه ورود به بخش پروگرامر و انتخاب نوع و تنظیم سرعت آن در نرمافزار Codevision را پیدا کنید.
کار عملی 2: پروگرام کردن میکروکنترلر به وسیله نرم افزار (صفحه 150 کتاب درسی)
هدف: کسب مهارت درCodeVision برای پروگرام کردن میکروکنترلر ATmega8
مواد، ابزار و تجهیزات: برگه اطلاعات میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer)- رایانه- نرمافزارهای مورد نیاز- میکروکنترلر ATmega8
مراحل اجرای کار:1-
طبق شکل 20-7 به پنجره Settings از منوی اصلی در نرمافزار Codevision وارد شوید، در داخل زبانه Programmer و از فهرست آن، نوع پروگرامر موجود در کارگاه یا پروگرامری را که برای خودتان خریداری کردهاید انتخاب کنید. در شکل 20-7 نوع پروگرامر مدل (Atmel AVRProg (AVR910 انتخاب شده است.
2- سرعت انتقال و درگاه (Port) انتقالی که پروگرامر به آن وصل شده است را مطابق شکل 21-7 تنظیم کنید.
3- از منوی Tools شکل 22-7، گزینه Chip Programmer را انتخاب کنید. تیک گزینه Program Fuse Bit را بزنید تا فیوزبیتهای میکروکنترلر برنامهریزی شوند.

4- میکروکنترلر را روی پروگرامر و در محل مناسب و درجهت، صحیح نصب کنید. شکل 23-7، شماره 1 محل قرار گرفتن میکروکنترلر را در پروگرامر نشان میدهد.
5- از منوی File گزینه Load FLASH را انتخاب و فایل HEX ساخته شده با نرمافزار کدویژن (برنامه مدار پروژه چشم کزن) را بارگذاری کنید.
مثال: با فرض اینکه پروژه به نام Test یا فایلهای دیگر مرتبط با آن مانند D:\STU در این آدرس قرار دارند، فایل HEX شما در آدرس D:\STU\Debug\Exe\Test.HEX وجود دارد.
6- طبق شکل 24-7 میکروکنترلر را پاک کنید و تنظیمات مدل کلاک و سرعت کلاک و قفل میکروکنترلر را انجام دهید. سپس با فعال کردن کلید Program All میکروکنترلر را برنامهریزی کنید، طبق شکل 25-7، با زدن تیک
روی گزینه Verify از اجرای برنامه در نرمافزار اطمینان حاصل میشود.
7- میکروکنترلر و قطعات جانبی آن را روی برِدبرُد ببندید. تغذیه مدار را از منبع تغذیه آزمایشگاهی 5 ولت ثابت یا یک شارژر موبایل 5 ولتی تأمین کنید.
8- مدار را راهاندازی کنید و عملکرد مدار چشمکزن را مشاهده کنید.
9- مدار پروژه چشمکزن را برای ارزشیابی به مربی کارگاه ارائه دهید.
10- گزارش مختصری از این فعالیت بنویسید.
جستوجو کنید (صفحه 151 کتاب درسی)
با مراجعه به رسانههای مختلف مشخص کنید برای غیر قابل کپی شدن برنامه که اصطلاحاً آن را قفل کردن (Lock) میکروکنترلر میگویند چه کاری باید انجام داد؟
کار عملی 3: ساخت پروگرامر میکروکنترلر (صفحه 153 کتاب درسی)
هدف: کسب مهارت در طراحی و مونتاژ یک نمونه پروگرامر میکروکنترلر
مواد، ابزار و تجهیزات: برگه اطلاعات میکروکنترلر ATmeg8-رایانه-نرم افزارهای مورد نیاز-میکروکنترلر ATmeg8- مقاومتهای $220\Omega $ و $\frac{1}{4}$ واتسه عدد و مقاومت $100\Omega $ و $\frac{1}{4}$ وات یک عدد-کانکتورLPT یک عدد-کانکتور AVR یک عدد پین هدر 5 پین یک عدد
مراحل اجرای کار
1- همانطور که در شکل 26-7 مشاهده میکنید این پروگرامر دارای چهار عدد مقاومت است و سیمکشی آن با استفاده از پورت پرینتر ساخته شده و با نرمافزار کدویژن شناسایی میشود. مدل آن STK200 است و برنامهریزی آن با روش ISP انجام میشود. پایههای SCK و MISO GND و RESET و MOSI به میکروکنترلر وصل میشود. با راهنمایی مربی کارگاه، برد فیبر مدار چاپی را برای این پروگرامر طراحی کنید.
2- قطعات را روی فیبر مونتاژ کنید و به رایانه متصل کنید.
3- برنامه چشمکزن را در میکروکنترلر برنامهریزی کنید.
4- مدار را راهاندازی کنید و آن را برای ارزشیابی به مربی کارگاه نشان دهید.
پژوهش (صفحه 153 کتاب درسی)
با مراجعه به رسانههای مختلف نمونههایی از پروگرامرهای جدید را بیابید و در قالب یک گزارش ارائه کنید.
کار عملی 4: بستن مدار چشمکزن دو کاناله به وسیله میکروکنترلر (صفحه 154 کتاب درسی)
هدف: کسب مهارت در برنامه ریزی، شبیهسازی، پروگرام کردن میکروکنترلر ATmega8
مواد، ابزار و تجهیزات: لوازمالتحریر-دستورهای زبان C-برگه اطلاعات-میکروکنترلر ATmega8-دستگاه پروگرامر (Programmer)-رایانه-نرمافزارهای مورد نیاز-برِدبرُد میکروکنترلر ATmega8-دیودهای LED قرمز و سبز هرکدام 6 عدد مقاومتهای $3/3K\Omega $ و $\frac{1}{4}$ وات و $220\Omega $ و $\frac{1}{4}$ وات-سیمهای برِدبرُد-ترانزیستورTIP120 یا BD137 دو عدد-میز آزمایشگاهی الکترونیک با تجهیزات استاندارد-
مراحل اجرای کار
مدار شکل 27-7 برای کنترل تعداد زیادی LED بهصورت هم زمان به کار میرود. به این مدار، مدار چشمکزن دو کاناله نیز میگویند. ترانزیستورها بهعنوان تقویتکننده جریان و راهانداز و برای افزایش جریان مورد نیاز دیودهای LED در مدار به کار رفته است. این مدار در تابلوهای LED با نور ثابت کاربرد دارد.
2- با استفاده از جدول 1-7 و به وسیله زبان برنامهنویسی C و نرمافزار کدویژن برنامه چشمکزن دو کاناله را بنویسید.
3- مدار شکل 27-7 را در نرمافزار پروتئوس Proteus شبیهسازی و اجرا کنید.
4- برنامه را به وسیله پروگرامر ساخته شده یا با پروگرامر موجود در کارگاه به میکروکنترلر انتقال دهید.
5- مدار را روی برِدبرُد ببندید. برای تغذیه از منبع آزمایشگاهی 5 ولت ثابت، یا یک شارژر موبایل 5 ولتی استفاده کنید. تغذیه LEDها را نیز از ولتاژ 24 ولت منبع تغذیه آزمایشگاهی تأمین کنید.
6- با تغییر در برنامه، زمانهای خاموش و روشن شدن چشمکزن را تغییر دهید.
7- اگر بخواهیم بدون تغییرات در سخت افزار مدار، نور LEDها را کاهش دهیم، چه تغییراتی باید در برنامه ایجاد کنیم؟
8- اگر تعداد کانالها را بخواهیم افزایش دهیم (چهار کاناله)، تغییراتی را که در نقشه سخت افزار باید ایجاد کنیم رسم کنید و تغییراتی که در برنامه لازم است را بنویسید.
9- نقشه جدید را پس از رسم و تهیه برنامه از منابع مختلف به زبان C برای ارزشیابی به مربی کارگاه بدهید.
پژوهش (صفحه 155 کتاب درسی)
اگر زمان را به کمتر از 10 میلی ثانیه کاهش دهیم به نظر شما چه اتفاقی میافتد؟
اگر مقاومتهای ${R_3}$ و ${R_4}$ را به سه برابر افزایش دهیم، چه تغییری در عملکرد مدار رخ میدهد؟
تغییرات خواسته شده را انجام داده و نتایج و علت را در کارگاه به بحث بگذارید.
فعالیت (صفحه 155 کتاب درسی)
پروژه مدار چشمکزن 8 کاناله را با طراحی مدار چاپی بسازید. (فقط با ولتاژ 24 ولت)
مدارهای کاربردی با میکروکنترلر
وقتی که قرار است یک پروژه با میکروکنترلرهای AVR انجام داده شود، بعد از مشخص شدن هدف پروژه و مقرون به صرفه بودن آن باید مراحل طراحی سخت افزار، طراحی نرم افزار (الگوریتم یا فلوچارت برنامهریزی)، برنامهنویسی، شبیهسازی و پیادهسازی (پروگرام کردن میکروکنترلر و بستن مدار مورد نظر روی بردبرد) انجام شود.
میکروکنترلرها تواناییهای شگفتآور ندارند و قدرت پردازش آنها محدود است. این تراشهها برای کارهای تخصصی مانند کنترل اسباب بازیها، دستگاههای پزشکی، ماشینهای اداری، موتورها، دستگاههای الکترونیک خانگی و کنترلکنندههای از راه دور به کار میروند. برای آشنایی بیشتر با عملکرد آنها در این بخش کارهای عملی ساده با میکروکنترلر معرفی شده است. با اجرای متمرکز و دقیق این فعالیتها، شما میتوانید توانایی و مهارت انجام کار با مدارهای کاربردی میکروکنترلر را کسب کنید. در اجرای کارهای عملی سعی شده است، دستورهای برنامهنویسی C متناسب با هر کاربرد میکروکنترلر شرح داده شود.
ارسال اطلاعات به خروجی
بارش فکری (صفحه 156 کتاب درسی)
در صورتی که بخواهیم همۀ پایههای یک پورت را روشن و یا خاموش کنیم چه باید کرد؟
آیا باید به صورت جداگانه تک تک پایهها را روشن و یا خاموش کنیم؟ در باره این موضوع جستوجو کنید و نتیجه را از طریق بارش فکری در کارگاه به بحث بگذارید.
اگر بخواهیم همه پایههای یک پورت را روشن و یا خاموش کنیم باید مقدار داده (Data) را به هر پورت وارد کنیم. هنگامی که یک پورت (هشت پایه) بهعنوان خروجی تعیین میشود میتوان اطلاعات را بهصورتهای مختلفی به پورت مورد نظر ارسال کرد.
ارسال اطلاعات بهصورت هگزادسیمال:
در این حالت با توجه به اینکه هر پورت دارای هشت پایه است، میتوان 8 عدد صفر یا 8 عدد یک نوشته شود. که در واقع نشانگر یک بایت میباشد. در این بایت کم ارزشترین بیت مربوط به پایه صفر از پورت است، (مانند PC0 یا PB0) و با ارزش ترین بیت مربوط به پایه 7 (مانند PC7 یا PB7) از پورت مورد نظر است.
به الگوی عدد ارسال شده به پورت B در شکل 28-7 توجه کنید، این روش ارسال به صورت باینری است. محدوده عدد ارسالی به صورت:
$0b00000000 \sim b11111111$
ارسال اطلاعات به صورت هگزادسیمال:
در این حالت عدد مورد نظر به مبنای هگزادسیمال یا شانزدهتایی تبدیل میشود. هر 8 بیت باینری معادل 2 عدد در مبنای هگزادسیمال است.
هرکدام از این 2 عدد، اطلاعات 4 پایه از میکروکنترلر را شامل میشود. به الگوی شکل 29-7 دقت کنید.
محدوده عدد ارسالی: $0x00 \sim 0xFF$ است.
ارسال اطلاعات به صورت دسیمال:
در این حالت اطلاعات در مقابل پورتها به صورت دسیمال (عدد طبیعی) نوشته میشود. در شکل 30-7 محدوده عدد ارسالی میتواند بین صفر 0 تا 255 باشد. روش ارسال
به صورت ده دَهی (دسیمال) کمتر مورد استفاده قرار میگیرد و مترجم زبان برنامهنویسی این عدد را به مبنای باینری تبدیل میکند.
کار عملی 5: مدار چشمکزن با دو LED با دکمه فشاری (شستی) شروع به کار (Start) (صفحه 157 کتاب درسی)
هدف: کسب مهارت در برنامهنویسی، شبیه سازی، پروگرام کردن میکروکنترلر Atmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: لوازم التحریر-دستورهای زبان C-برگه اطلاعات میکروکنترلر Atmega8-دستگاه پروگرامر (Programmer) رایانه-نرم افزارهای مورد نیاز برِدبرُد-میکروکنترلرAtmega8-میز آزمایشگاهی الکترونیک با تجهیزات استاندارد- دیود LED قرمز و سبز هرکدام یک عدد- مقاومت $330\Omega $ و $\frac{1}{4}$ وات دو عدد- سیمهای برِدبرُد- کلید فشاری کوچک (SPST Push Button)
مراحل اجرای کار
1- مدار نشان داده شده در شکل 31-7 مشابه کار عملی شماره 1 است، با این تفاوت که یک کلید برای تعیین حالت روشن یا خاموش یا تغییر وضعیت نمایش به کار رفته است. مدار را در نرم افزار Proteus رسم و شبیهسازی کنید.
2- در نرم افزار کدویژن با توجه به خواستههای نقشه فنی، پایههای PD.0 و PD.1 را در حالت خروجی و پایه PC.0 را در حالت ورودی با وضعیت Pullup (P) قرار دهید، شکل 32-7.
3- درحالت اول، جدول 2-7 برنامه به زبان C در نرمافزار کدویژن را طوری بنویسید که در مدار چشمکزن هم زمان با فشردن کلید فشاری، هر دو LED باهم شروع به چشمکزدن کنند.
4- تمام مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
5- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
6- مدار سخت افزاری چشمکزن میکروکنترلر را روی برِدبرُد ببندید.
7- چگونگی روشن شدن LEDهای خروجی مدار را با توجه به فشار دادن کلید فشاری بهطور خلاصه توضیح دهید.
8- در حالت دوم، برنامه را طبق جدول 2-7 بهگونهای تغییر دهید که با وصل کلید فشار، LED متصل به PD.0 و در صورت رها شدن کلید LED متصل به PD.1 چشمکزن شود.
9- تمام مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
10- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
11- مدار سختافزاری چشمکزن میکروکنترلر را روی برِدبرُد ببندید.
12- چگونگی روشن شدن LEDهای خروجی مدار را با توجه به حالتهای مختلف کلید فشاری بهطور خلاصه توضیح دهید.
13- برنامه میکروکنترلر، در حالت اول را با حالت دوم مقایسه کنید. تفاوتهای آنها را به اختصار شرح دهید.
14- برای خواندن پایه PC0 از دستور PINC.0 و برای مقایسه از علامت (==) استفاده شده است. چرا در برنامه کنترل میکروکنترلر عمل مقایسه پایه PC0 با عدد $\left( {if(PINC.0 = = 0} \right)\{ )0$ انجام میشود؟ توضیح دهید.
فعالیت صفحه 158 کتاب درسی)
برای مدار شکل 31-7 دو روش دیگر برای چشمک زدن LEDها پیشنهاد دهید. مدار آنها را طراحی کنید. مدار سخت افزاری طرحهای پیشنهادی را ببندید.
تحقیق کنید (صفحه 159 کتابی درسی)
با مراجعه به رسانههای مختلف، اطلاعات مرتبط به روشهای کنترل سرعت موتور را تحقیق و استخراج کنید و نتیجه تحقیق خود را ارائه دهید.
کار عملی 6: کنترل موتور DC با کلید فشاری شروع به کار (Start) (صفحه 159 کتاب درسی)
هدف: کسب مهارت در برنامهنویسی، شبیهسازی، پروگرام کردن میکروکنترلر Atmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: لوازم التحریر-دستورهای زبان C-برگه اطلاعاتی میکروکنترلر Atmega8-دستگاه پروگرامر (Programmer)-رایانه-نرمافزارهای مورد نیاز-برِدبرُد-میکروکنترلر Atmega8-میز آزمایشگاهی الکترونیک با تجهیزات استاندارد-دیود 1N4001یک عدد-مقاومت $10K\Omega $ و $\frac{1}{4}$ وات یک عدد-سیمهای برِدبرُد-کلید فشاری کوچک (SPST Push Button)-ترانزیستور BD137 یک عدد- موتور DC کوچک کم وات
مراحل اجرای کار
یکی از رایجترین و پرکاربردترین موتورهای الکتریکی، موتورهای جریان مستقیم یا DC motorها است. سرعت چرخش موتورهای DC به ولتاژ ورودی و قدرت این موتورها به جریان عبوری از آنها بستگی دارد. موتورهای DC به دلیل گشتاور بالا در سرعت کم کاربردهای بسیار زیادی دارند. از کاربردهای آنها میتوان به ساخت روباتها، شیشه بالابر خودروها، سشوارها، دریلهای شارژی، انواع ماشینهای کنترلی، لوازم ورزشی مانند تردمیلها و اسباببازی اشاره کرد.
1- مدار شکل 33-7 یک مثال ساده از راهاندازی یک موتور DC است که از یک کلید فشاری برای تعیین حالت روشن و خاموش یا تغییر وضعیت دور موتور استفاده شده است.
2- مدارشکل 33-2 را در نرمافزار Proteus رسم کنید.
3- در نرمافزار کدویژن با توجه به خواستههای نقشه فنی، دو پایه از PD.7 را به حالت خروجی و پایه PC.0 را در حالت ورودی با وضعیت Pullup قرار دهید.
4- در حالت اول، در جدول 3-7 ستون سمت چپ برنامه به زبان C، در نرمافزار کدویژن طوری نوشته شده است که با فعال کردن کلید موتور روشن شود.
5- تمام مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
6- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
7- مدار سختافزاری کنترل موتور را روی برِدبرُد ببندید.
8- چگونگی روشن شدن و تغییرات سرعت موتور را با توجه به فعال کردن کلید فشاری بهطور خلاصه توضیح دهید.
9- درحالت دوم، با توجه به جدول 3-7 ستون سمت راست، در برنامه تغییرات را به گونهای اعمال کنید، که هنگامی که کلید فشرده نشده سرعت موتور کم و با فشردن کلید سرعت موتور افزایش یابد.
10- تمام مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
11- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
12- مدار سختافزاری چشمکزن میکروکنترلر را روی برِدبرُد ببندید.
13- کارکرد موتور در دو حالت برنامه ریزی میکروکنترلر را باهم مقایسه کنید. تفاوتهای شروع به کار و سرعت موتور در دو حالت کنترل موتور با میکروکنترلر را به اختصار توضیح دهید.
14- نقش دیود D1 را در مدار کنترل موتور بنویسید.
15- برای کنترل دور موتور در این مدار عرض پالس اعمال شده به بیس ترانزیستور تغییر نموده است. (با مشاهده شکل موج بیس ترانزیستور) درست / نادرست
بحث کنید (صفحه 161 کتاب درسی)
چگونه میتوان سرعت موتور را چهار حالته کرد، به طوری که با هربار کلید زدن سرعت افزایش پیدا کند.
برای تغییر جهت گردش موتور چه مداری پیشنهاد میدهید، پیشنهادها را در کارگاه به بحث بگذارید.
فعالیت (صفحه 161 کتاب درسی)
برای مدار شکل 33-7، دو روش دیگر کنترل دور موتور طراحی کنید و مدار سخت افزاری آنها را ببندید.
کار عملی 7: راهاندازی و نمایش اعداد در نمایشگر هفت قطعهای (7Sag) (صفحه 161 کتاب درسی)
هدف: کسب مهارت در برنامهنویسی، شبیهسازی، پروگرام کردن میکروکنترلرAtmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: لوازم التحریر- دستورهای زبان C- برگه اطلاعاتی میکروکنترلر Atmega8- دستگاه پروگرامر (Programmer)- رایانه- نرمافزارهای مورد نیاز- برِدبرُد- میکروکنترلر Atmega8- میز آزمایشگاهی الکترونیک با تجهیزات استاندارد- مقاومت $220\Omega $ و $\frac{1}{4}$ وات هشت عدد- سیمهای بردِبرُد- هفت قطعهای (7Seg) کاتد مشترک
مراحل انجام کار
1- مدار شکل 34-7 مدار ساده برای روشن شدن و راهاندازی یک نمایشگر هفت قطعهای (7Seg سون سگمنت) به کار میرود، که میتواند با تأخیر 0/75 ثانیه اعداد 0 تا 9 و ممیز را نمایش دهد.
در 7Seg آند مشترک برای روشن شدن هر LED باید پایه آن را صفر کرد و در سون سگمنت کاتد مشترک برای روشن کردن هر LED باید پایه آن را یک کنیم.
پورتی که 7Seg به آن متصل میشود را به عنوان خروجی در نظر میگیریم.
برای روشن شدن 7Seg علاوه بر وارد کردن کدهای باینری میتوانید از کدهای هگزا دسیمال نیز استفاده کنید.
برای نمونه در جدول شکل 35-7 کد باینری و هگزا دسیمال عدد 2 نوشته شده است. برای سایر ارقام صفر تا 9 کد باینری و هگزادسیمال آنها را بنویسید.
2- مدار شکل 34-7 را در نرمافزار پروتئوس Proteus ببندید.
7Seg برای این پروژه از نوع کاتد مشترک است.
در قسمت Keywords مطابق شکل 36-7 عبارت 7Seg را جستجو کرده و نوع کاتد مشترک آن را انتخاب کنید.
3- در نرمافزار کد ویژن با توجه به خواستههای نقشه فنی تمام پایه پورت D را از PD0 تا PD7 را در حالت خروجی قرار دهید.
4- برای حالت اول در جدول 4-7 برنامه نشان دادن اعداد 0 تا 9 آمده است.
5- تمام مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
6- برنامه را توسط پروگرامر به میکرو انتقال دهید.
7- مدار سخت افزاری نمایشگر 7Seg با میکروکنترلر را روی برِدبرُد ببندید.
8- چگونگی روشن شدن و سرعت نمایشگر 7Seg را مشاهده کنید وبه سؤالات زیر پاسخ دهید.
- روش نوشتن در پورت D به صورت بیت یا بایت است؟
- مفهوم کد 0x3f و نوع آن را بنویسید؟ آیا به روشهای دیگر نیز میتوان نوشت؟
- انتهای بعضی خطهای برنامه دو خط کج (//) قرار داده شده است، آیا این دستور نمایش اعداد در میکروکنترلر است؟ توضیح دهید.
- آیا حروف را در 7Seg میتوان نمایش داد؟ چگونه؟ شرح دهید.
9- برای حالتهای دوم و سوم که خودتان تعریف میکنید، با استفاده از برنامه آماده، مراحل کار را تکرار کنید.
- کدام یک از مدارهای شکل 37-7 را برای استفاده از 7Seg پیشنهاد میدهید، دلیل خود را ذکر کنید.
تحقیق کنید (صفحه 164 کتاب درسی)
با مراجعه به رسانههای مختلف، در رابطه با کدهای حروف نمایشگر 7Seg تحقیق کنید و نتیجه تحقیق خود را به کارگاه ارائه دهید.
متغیرها در زبان C
یک متغیر محدودهای از فضای حافظه است که با یک نام مشخص میشود. یک متغیر بسته به نوع آن میتواند حامل یک مقدار عددی باشد. یک متغیر میتواند در محاسبات شرکت کند و یا نتیجه محاسبات را در خود حفظ کند. در کل میتوان گفت که نتایج بخشهای مختلف یک برنامه، در متغیرها ذخیره میشود. در جدول 5-7 انواع متغیرها، فضایی که در حافظه اشغال میکنند و بازه مقدارپذیری آنها را در کامپایلر کدویژن مشاهده میکنید.
چگونگی تعریف متغیرها:
متغیرها به صورت زیر تعریف میشوند:
; مقدار اولیه = نام متغیر نوع متغیر
ویژگیهای نام متغیر:
- اولین کاراکتر نام متغیر، نمیتواند عدد باشد.
- نام متغیر نمیتواند بیشتر از 31 کاراکتر داشته باشد.
- نام متغیر تنها ترکیبی از حروف a تا z، و A تا Z اعداد و کاراکترها میتواند باشد.
انواع متغیرها از نظر محل تعریف در برنامه
متغیرها از نظر مکانی که در برنامه تعریف میشوند، به دو دسته کلی:
متغییرهای عمومی (Global) و متغیرهای محلی (Local) تقسیم میشوند.
متغیرهای عمومی (Global)
متغیرهایی که قبل از تابع main تعریف میشوند را متغیرهای عمومی گویند و در تمام نقاط برنامه میتوان به آن دسترسی داشت. تعریف یک متغیر عمومی در ابتدای برنامه، مقدار مشخصی از حافظه را برای همیشه به آن متغیر اختصاص میدهد.
متغیرهای محلی (Local)
متغیرهای محلی در بدنه توابع تعریف میشوند و در بیرون از آن تابع، دسترسی به آن ممکن نیست. متغیرهای محلی تنها، در زمان احتیاج تعریف شده و در حافظه مینشینند و
بعد از مدتی از حافظه پاک میشوند.
الگوی ارزشیابی نظری (صفحه 165 کتاب درسی)
1- مفهوم متغیر را شرح دهید وکاربرد آن را بنویسید.
2- مفهوم متغیر بیتی را تعریف کنید. این متغیر با چه کلمهای معرفی میشود؟
3- متغیر بایت تا چه عددی ظرفیت دارد و با چه کلمهای معرفی میشود؟
4- متغییر (integer) int به چه متغیری گفته میشود؟
5- تفاوت متغیر بدون علامت و با علامت را بنویسید. کدام یک عدد بزرگتری را میتواند در خود جای دهد؟
6- اعداد اعشاری را چگونه معرفی میکنند؟ یک متغیر از نوع اعداد اعشاری، چه مقدار از حجم حافظه را اشغال میکند؟
7- جدول 6-7 را کامل کنید.
| مقدار عددی که باید در متغیری نگهداری شود | متغیر مناسب | متغیر نامناسب | حجم حافظه اشغالی و حداکثر عدد |
|---|---|---|---|
| برای مثال: متغیر بین 1 تا 15 | char unsigned char | int ، float، bool | 1byte, 0 …255 127...1byte,-128 |
| بین 10 تا 105 | |||
| برای روشن و خاموش کردن 1 لامپ | |||
| بین 67 - تا 89 | |||
| بین 178 - تا 1867 | |||
| بین 0 تا 40987 | |||
| بین 0/895 تا 3/254 | |||
| برای ایجاد مفهوم شب و روز |
فعالیت (صفحه 166 کتاب درسی)
مفهوم گروه متغیرها (آرایهها یا جدول متغیرها) را بنویسید؟
به نظر شما اگر بخواهیم در کار عملی 6 یک آرایه برای اعداد 0 تا 9 مشخص کنیم، در برنامه C چه تغییری ایجاد میشود، پیشنهاد خود را بنویسید و نتیجه را در کلاس به بحث بگذارید. مشاهده فیلم و مراجعه به کتاب همراه میتواند برای شما کمک کننده باشد.
تحقیق کنید (صفحه 166 کتاب درسی)
با مراجعه به رسانههای مختلف و help نرمافزار کدویژن اطلاعاتی در رابطه با سایر متغیرها را استخراج کنید و نتیجه تحقیق خود را ارائه دهید.
کار عملی 8: مدار شمارنده با 7Seg (صفحه 167 کتاب درسی)
هدف: کسب مهارت در برنامهنویسی، شبیهسازی، پروگرام کردن میکروکنترلرATmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: لوازم التحریر- دستورهای زبان C- برگه اطلاعات میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer)- رایانه- نرمافزارهای مورد نیاز- برِدبرُد- میکروکنترلر- ATmega8 -میز آزمایشگاهی الکترونیک با تجهیزات استاندارد- مقاومت $220\Omega $ و $\frac{1}{4}$ وات هشت عدد- سیمهای برِدبرُد- هفت قطعهای (7Seg)- کاتد مشترک
مراحل اجرای کار:
1- مدارشکل 38-7 را در نرمافزار پروتئوس Proteus رسم کنید.
2- در نرمافزار کدویژن با توجه به خواستههای نقشه فنی، تمام پایهها ازPD0 تا PD7 را درحالت خروجی قرار دهید و PC0 را در حالت Pullup و بهعنوان ورودی در نظر بگیرید.
3- در نرم افزار کدویژن شکل 39-7، ابتدا این دو متغیر را در مکان مشخص شده (مکان متغیرهای عمومی) قرار دهید.
4- برنامهای بنویسید که با هر بار فشردن کلید، یک عدد درنمایشگر 7Seg اضافه شود و بعد از عدد 9 به صفر تبدیل شود. در جدول 7-7 این برنامه آمده است.
5- مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
6- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
7- مدار سخت افزاری شمارنده با 7Seg را بر روی برِدبرُد ببندید.
8- مدار را راهاندازی کنید. با فشردن کلید شمارش را انجام دهید.
9- عملکرد مدار شکل 34-7 را با مدار شکل 38-4 مقایسه کنید و پرسشهای زیر را با توجه با جداول مختلفی که در اختیار دارید پاسخ دهید.
- مفهوم $N = N + 1;$ را شرح دهید. این عبارت در برنامه به چه منظور استفاده شده است؟
- تفاوت برنامه مدار شکل 38-7، با برنامه مدار شکل 34-7 در روش ارسال اطلاعات به پایههای 7Seg را توضیح دهید.
- دلیل استفاده این شرط $\left( {if(N > 9} \right)\{ )$ را بنویسید.
10- به چه دلیلی ;delay_ms(500) استفاده شده است؟
11- در روش معرفی متغیرها یک متغیر به شکل $charNUM\left[ {10} \right] = \{ ...$ تعریف شده است. چه نوع متغیری است؟ آیا روش دیگری برای قرار دادن اطلاعات درداخل آن وجود دارد؟ شرح دهید.
12- عدد 10 در متغیر $NUM\left[ {10} \right]$ به چه مفهوم است؟
فعالیت (صفحه 168 کتاب درسی)
دو روش دیگر برنامهنویسی توسط مربی برای مدار شمارنده یک رقمی در اختیار شما قرار میگیرد. آن را بررسی کنید و مدار سخت افزار آن را ببندید.
صفحه نمایش کاراکتری LCD
صفحه نمایش کاراکتری LCD یکی از پرکاربردترین وسایل خروجی است که به میکروکنترلر وصل میشود و مقدار متغیرهای ورودی میکروکنترلر یا پیامها را برای کاربر نمایش میدهد. برای این منظور میتوان کاراکترهای قابل چاپ را روی آن نمایش داد. مشخصه اصلی LCDهای کاراکتری تعداد سطر و ستون آنها است. بلوک دیاگرام، برگه اطلاعات و شکل ظاهری پایههای یک $16 \times 2LCD$ که دارای 2 سطر و 16 ستون است را در شکل 40-7 مشاهده میکنید. با این نمایشگر میتوان در مجموع 32 کاراکتر را نشان داد.
کار عملی 9: مدار ساده راهاندازی LCD به صورت نمایش اعداد و متن (صفحه 169 کتاب درسی)
هدف: کسب مهارت در برنامهنویسی، شبیهسازی، پروگرام کردن میکروکنترلر ATmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: رایانه- نرمافزارهای مورد نیاز- دستورهای زبان C- میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer)- سیمهای برِدبرُد- میز آزمایشگاهی الکترونیک با تجهیزات استاندارد- $16 \times 2LCD$- شارژر موبایل 5ولتی- مقاومت $560\Omega $ و $\frac{1}{4}$ وات یک عدد- پتانسیومتر $10K\Omega $ یک عدد- برِدبرُد
مراحل اجرای کار
1- به برگه اطلاعات $16 \times 2LCD$ شکل 40-7 مراجعه کنید و مفاهیم هر یک از کلمات خواسته شده را در جدول 8-7 به فارسی ترجمه کنید.
2- برای آوردن نمایشگر کاراکتری روی میز کار نرمافزار پروتئوس، در قسمت Keywords عبارت lcd را تایپ کنید.سپس LM016L که نمایشگر $16 \times 2$ است را مطابق شکل 41-7 روی میز کار بیاورید.
3- مدار شکل 42-7 را در نرم افزار پروتئوس Proteus رسم کنید.
4- در نرمافزار کدویژن با توجه به خواستههای نقشه فنی، تمام پایههای موردنیاز را برای حالت ارتباط با LCD تنظیم کنید، برای اینکار بعد از ایجاد پروژه در محیط کدویژن در قسمت ویزارد زبانه Lcd را انتخاب کنید شکل 43-7.
5- برنامه داده شده در جدول 9-7 را که ابتدا با پیام «Hello» شروع شده و خود را با عنوان یک «دانش آموز خوب» معرفی میکند. در انتها با پیام خداحافظی «Good by» برنامه را تمام میکند، مورد بررسی قرار دهید.
6- مراحل شبیهسازی مدار را در نرمافزار پروتئوس انجام دهید.
7- برنامه را توسط پروگرامر به میکروکنترلر انتقال دهید.
8- مدار سخت افزار نمایشگر LCD را روی برِدبرُد ببندید.
9- مدار را راهاندازی کنید. سپس با مراجعه به منابع مختلف به پرسشهای زیر پاسخ دهید.
- دستور lcd_ puts چه کاری انجام میدهد؟
- دستور lcd_clear چه کاربردی دارد؟
- دستور lcd_ gotoxy چه عملی انجام میدهد؟
فعالیت (صفحه 172 کتاب درسی)
دو برنامه دیگر که برای نمایش متن در نمایشگر LCD است در اختیار شما قرار میگیرد، آنها را بررسی کنید و مدار سخت افزار آن را ببندید.
واحد مبدل آنالوگ به دیجیتال A/D
واحد مبدل سیگنالهای آنالوگ به دیجیتال (ADC = Analog to Digital Converter) مداری الکترونیکی است که سیگنالهای پیوسته آنالوگ را به دادههای دیجیتالی تبدیل میکند. تمامی کمیتهای فیزیکی مانند دما، نور، نیرو، فشار، جابهجایی و حرکت آنالوگ هستند. برای پردازش توسط میکروکنترلر باید کمیتهای آنالوگ تبدیل به دیجیتال (0 و 1) شوند. عمل تبدیل ولتاژ ورودی آنالوگ به کد دیجیتال متناسب با ولتاژ آنالوگ توسط این واحد انجام میشود.
کنترل دمای محیط، کنترل سطح مایع در مخازن (مانند کنترل سطح سوخت خودرو)، کنترل وزن و فشار با میکروکنترلر از متداولترین پروژههای کاربردی در صنایع هستند. به همین دلیل مدار کنترل دمای محیط با حسگر حرارتی LM35 در حد گسترده مورد استفاده قرار میگیرد.
LM35 یک قطعه حسکننده حرارت همراه با یک مدار الکترونیکی است که همگی به صورت یک مدار مجتمع ساخته شدهاند. این مدار به صورت یک قطعه سه پایه شبیه یک ترانزیستور ساخته میشود. خروجی این آیسی (IC) به صورت خطی است و به ازای هر درجۀ سانتی گراد دما 10 میلی ولت ولتاژ در اختیار ما قرار میدهد. درشکل 45-7 برگه اطلاعات LM35 را مشاهده میکنید.
کار عملی 10: مدار ساده، کنترل دما با LM35 (صفحه 172 کتاب درسی)
هدف: کسب مهارت در بارگذاری و استفاده از برنامه، شبیهسازی، پروگرام کردن میکروکنترلر ATmega8 و بستن مدار سخت افزاری
مواد، ابزار و تجهیزات: رایانه- نرمافزارهای مورد نیاز- دستورهای زبان C- میکروکنترلر ATmega8- دستگاه پروگرامر (Programmer) سیمهای برِدبرُد- میز آزمایشگاهی الکترونیک با تجهیزات استاندارد $16 \times 2LCD$- شارژر موبایل 5ولتی- مقاومت $560\Omega $ و $\frac{1}{4}$ وات یک عدد- پتانسیومتر $10K\Omega $ یک عدد- برِدبرُد- حسگر LM35
مراحل اجرای کار:
1- مدار شکل 46-7 را در نرمافزار پروتئوس Proteus رسم کنید.
2- در نرمافزار کدویژن با توجه به خواستههای نقشه فنی تمام پایههای مورد نیاز را برای حالت ارتباط با LCD تنظیم کنید.
3- بخش ADC را در نرمافزار کدویژن فعال کنید، شکل 47-7.
4- در کدویژن در تعریف کتابخانهها، این خط را $\left( {\# include < stdio.h > } \right)$ اضافه کنید. (این خط برای دستور sprintf قرار میگیرد.)
5- دو متغیر با نامهای A و T را در بخش تعریفهای متغیرهای عمومی با عنوان char تعریف کنید. (یک متغیر از نوع آرایه PRN با طول 16 با توجه به طول کاراکتر $(charPRN\left[ {16} \right];:LCD16 \times 2$)
6- مراحل شبیه سازی مدار را در نرم افزار پروتئوس انجام دهید.
7- با مراجعه به کتاب همراه هنرجو عملکرد مدار را تشریح کنید و به سؤالهای زیر پاسخ دهید.
8- دستور $A = read - adc(0);$ چه عملی انجام میدهد؟
9- عملیات ریاضی $T = (A*255)/130;$ به کار رفته به چه منظور میباشد؟
10- دستور زیر چه عملی انجام میدهد؟
sprintf)PRN،”Temp = %d”،T);
11- مدار سختافزاری شکل 46-7 را با راهنمایی مربی در کارگاه ببندید.
جستوجو کنید (صفحه 174 کتاب درسی)
دستور $A = read - adc(0);$ از کدام نوع دستورهای استاندارد C، کتابخانهای و تابعی است.
فعالیت (صفحه 175 کتاب درسی)
با ترکیب کارهای عملی قبل با این کار عملی حداقل دو مدار کاربردی پیشنهاد کنید.
نکات مهم برای استفاده از میکروکنترولر
تغذیه میکرو کنترلرها:
میکروکنترلرها با توجه به نوع قطعات (ترانزیستورهای درون آن) با ولتاژهای متفاوتی کار میکنند. ولی معمولا ولتاژ کار آنها 5 ولت ثابت DC است ولی مواردی وجود دارد که طبق شکل 48-7 با ولتاژهای پایینتر کار میکنند (12 و 13 در شکل 48-7). همیشه از منبع تغذیه تثبیت شده استفاده کنید. مقدار جریان عبوری در حالت فعال و مصرف کم مشخص شده است. این مقدار مصرف ارتباطی به مقدار جریان مصرفی قطعات جانبی که به میکروکنترلر متصل میشوند ندارد.
میکروکنترلرهای کممصرفتر معمولاً سرعت کمتری دارند میکروکنترلر Atmega8 با Atmega 8L را در شکل 48-7 مقایسه کنید.
برای جلوگیری از تولید نویز در قطعات و مدارهای دیجیتال معمولاً همیشه یک خازن 100nF در نزدیکی پایههای ${V_{CC}}$ و GND میکروکنترلر قرار میدهند شکل 49-7. در نقشه فنی این خازن را در کنار کانکتور تغذیه رسم میکنند ولی در ساخت مدار چاپی باید این خازن در کنار پایههای تغذیه میکروکنترلر قرار گیرد و به آنها اتصال داده شود.
فرکانس کار:
برای کم کردن هزینه و سادگی کار با میکروکنترلرهای AVR معمولا در داخل آن یک اسیلاتور کالیبره RC شده قرار میدهند. این اسیلاتور با فرکانسهای (1، 2، 4، 8) مگاهرتز با دقت بالا کار میکند. برای دقت بیشتر میتوان از اسیلاتور کریستالی نیز استفاده کرد شکل 50-7. برای این کار نیاز به دو خازن و یک کریستال کوارتز داریم. به این ترتیب در اکثر مدارها نیازی به اسیلاتور کریستالی نیست.
حفاظت از ولتاژ بالا:
هنگامی که از میکروکنترلر برای فرمان دادن به مدارهای ولتاژ بالا استفاده میکنید، به حفاظت میکروکنترلر توجه داشته باشید زیرا ولتاژهای بالا میتوانند به میکروکنترلر آسیب بزنند، یا باعث توفق (Reset) بی مورد میکروکنترلر شوند.
مدارهایی که در آنها سیم پیچ وجود دارد، در زمان القاء به صورت لحظهای ولتاژ بسیار بالایی تولید میکنند، در این حالت باید، ارتباط این ولتاژ با ورودی و خروجی میکروکنترلر ایزوله شود. همچنین باید پایه منفی تغذیه از GND ایزوله شود.
برای حفاظت میکروکنترلر روشهای مختلفی به کار میرود. یک روش پرکاربرد و کم هزینه استفاده از قطعه اپتوکوپلر است. نماد فنی و شکل پایه اپتوکوپلر در شکل 51-7 نشان داده شده است.
در شکل 51-7 یک LED و یک ترانزیستور بدون هیچ ارتباط الکتریکی و فقط از طریق نور، ترانزیستور را فعال یا غیرفعال میکند. در مدل ساده آن که چهار پایه دارد، برای دو وضعیت خاموش و روشن از میکروکنترلر به خروجی یا از ورودی مدار به میکروکنترلر استفاده میشود. چگونگی بهکارگیری اپتوکوپلر برای حفاظت میکروکنترلر را در شکل 52-7 مشاهده کنید.
در مدار 52-7 نقش دیود زنر D1 کاهش ولتاژ و دیود D2 جهت حذف سیکل منفی AC است. مقاومت R1 بایاس LED اپتوکوپلر را بر عهده دارد. خازن C1، خازن صافی است و پالسهای ایجاد شده در خروجی را به یک ولتاژ DC ساده تبدیل میکند. در تنظیم میکروکنترلر، پایه PB7 بهعنوان کلید ورودی در نظر گرفته شده است. زمانی که ولتاژ 220 ولت وجود داشته باشد ولتاژ روی پایه PB7 میکروکنترلر کمتر از یک ولت (صفر منطقی) و زمانی که 220VAC وجود نداشته باشد، ولتاژ روی پایه PB7 میکروکنترلر 5 ولت (1 منطقی) میشود.
در خروجی برای راهاندازی اپتوکوپلر، برای بایاس LED آن مقاومت R2 استفاده شده است. ترانزیستور درون اپتوکوپلر، رله را فعال میکند در این حالت ولتاژ 220VAC از طریق کنتاکت COM و NO به موتور تک فاز AC وصل میشود و آن را راهاندازی میکند.
در اپتوکوپلرهای 6 پایه، پایه بیس B ترانزیستور را میتوان مطابق شکل 53-7 بایاس کرد. استفاده از این اپتوکوپلر دارای این مزیت است که میتوان حساسیت راهاندازی ترانزیستور را تغییر داد و حتی سیگنالهای کوچک آنالوگ را نیز انتقال داد، مثلاً به آسانی میتوان ولتاژ خروجی یک حسگر (Sensor) آنالوگ را که ولتاژ خروجی آن در محدوده بسیار کمی قرار دارد به میکروکنترلر انتقال داد.
الگوی پرسش (صفحه 178 کتاب درسی)
1- با مراجعه به جداول 1-7 تا 10-7 خطاهای برنامهنویسی را در جدول 11-7 مشخص کنید.
2- در برنامه داده شده در جدول 11-7 متغیر" [ ]NUM " اعداد نمایشی برای (7Seg) اماده شده است. بعد از پایان برنامه در صورتی که $(PINC.0 = 0)$ باشد، عدد نمایش داده شده در (7Seg) چه خواهد بود؟ با مراجعه به منابع معتبر پاسخ را بیابید.
3- به چه دلیل در برنامه $PINC = = 0$ با فاصله 100 میلی ثانیه استفاده شده است؟ با مراجعه به منابع معتبر پاسخ را بیابید.
4- برنامه داده شده برای مدار شکل 34-7 را بررسی کنید. آیا این برنامه موارد زیر را اجرا میکند؟
- ابتدا اعداد زوج (0 تا 9) را نمایش میدهد.
- سپس اعداد فرد (0 تا 9) را به نمایش در میآورد.
- در نهایت دوباره از اول اعداد زوج را تکرار میکند؟
5- برنامه داده شده برای مدار شکل 34-7 را بررسی کنید، آیا این برنامه موارد زیر را اجرا میکند؟
- ابتدا اعداد (0 تا 9) را نمایش میدهد.
- سپس از عدد 9 به صورت نزولی (9 تا 0) به نمایش در میآورد.
- در ادامه با تأخیر 500 میلی ثانیه حالت اول را تکرار میکند.
6- در مدار شکل 54-7 با فرض اینکه مقاومتهای بهکار رفته در مدار 1 یک **** لو اهمی باشند. مقدار مصرف جریان کل مدار را در بیشترین و کمترین حالت مشخص کنید. (کمترین = (7Seg) خاموش، بیشترین = نمایش عدد 8 + ممیز) از شکل 54-7 استفاده کنید.
7- در مدار شکل 54-7 اگر برای افزایش نور، مقاومتها را به 220 اهم کاهش دهیم، بیشترین جریان مدار چقدر خواهد شد؟
8- اگر بخواهیم سه عدد هفت قطعهای (7Seg) به پورتهای PC و PD و PB متصل کنیم و مقاومتها را 330 اهم قرار دهیم حداکثر جریان مصرفی مدار چه مقدار است؟
9- در صورتیکه 7Seg را بخواهیم با مدل آند مشترک عوض کنیم چه تغییری در سخت افزار و چه تغییری در نرمافزار باید انجام شود؟ توضیح دهید.
تحقیق کنید (صفحه 179 کتاب درسی)
برای نمایش حروف E ,U , L , C , J و H در شکل 54-7، چه کدهایی در مبنای هگزادسیمال باید به پورت D ارسال شود؟
آزمون عملی 1: اجرای پروژه چشمکزن 8 کانالی (LED8) با دو نوع حرکت و چرخش (صفحه 180 کتاب درسی)
1- رسم نقشه مدار در نرمافزار پروتئوس
2- بارگذاری و اجرای شبیهسازی برنامه برای حرکت اول
3- بارگذاری و اجرای شبیهسازی برنامه برای حرکت دوم
4- اضافه کردن یک کلید جهت انتخاب حالت 1 یا 2 در مدار
5- ترکیب دو برنامه و کلید و اجرا در شبیهسازی
6- پروگرام کردن میکروکنترلر و اجرا روی بردبرد
آزمون عملی 2: اجرای پروژه نمایش اعداد در دو عدد Seg7 با شمارش از 1 تا 99 (صفحه 180 کتاب درسی)
1- رسم نقشه مدار در نرمافزار پروتئوس
2- بارگذاری برنامه و اجرای شبیهسازی برنامه برای نمایش 1 تا 99
3- اضافه کردن دو کلید به نقشه و برنامه جهت ایجاد یک شمارنده صعودی نزولی
4- نوشتن برنامه همراه دو کلید به گونهای که با زدن یک کلید یک رقم به نمایش اضافه شود و با زدن کلید دیگر یک رقم کم شود و اجرا شبیه سازی در نرمافزار پروتئوس
5- پروگرام کردن میکروکنترلر و پیادهسازی مدار روی بِردبُرد
آزمون عملی 3: اجرای و ساخت یک ولتمتر و نمایش در LCD (صفحه 180 کتاب درسی)
1- رسم نقشه مدار در پروتئوس با مقادیر مناسب قطعات
2- اجرای یک ولت متر برای محدوده 0 تا 5 ولت و نمایش درLCD
3- اضافه کردن یک کلید جهت انتخاب دو حالت (0 تا 5) یا (0 تا 20) ولت و قطعات مورد نیاز به تشخیص خود هنرجو
4- پروگرام کردن میکروکنترلر و پیادهسازی مدار روی بِردبُرد
آزمون عملی 4: اجرا و ساخت یک کنترل دور موتور DC توسط سه کلید (صفحه 180 کتاب درسی)
1- رسم نقشه مدار در پروتئوس با مقادیر و قطعات مناسب
2- اجرای پروژه چپگرد و راست گرد توسط دو کلید (خاموش-چپ گرد-راست گرد)
3- اجرای کنترل دور موتور به این صورت که (کلید 1 برای خاموش و روشن شدن کلید 2 برای چپگرد و راستگرد-کلید 3 برای حرکت با دو نوع سرعت 1/2 قدرت-با قدرت کامل)
4- پروگرام کردن میکروکنترلر و پیادهسازی مدار روی بِردبُرد