از ابن جلسه ما وارد مبحث میکروکنترلر میشویم. این مبحث نسبت به مباحث قبلی، نیازمند توجه و دقت بیشتری است و دوستان باید زمان بیشتری برای آموزش این مبحث صرف کنند. بخشی از این مبحث مربوط به برنامه نویسی تحت زبان C است که ما سعی می کنیم دوستان رو در حد کمی با مقدمات برنامه نویسی در این زبان نیز آشنا کنیم.
|
|
میکروکنترلر در زبان انگلیسی به معنی «ریز کنترل کننده" است. این قطعه در واقع یک کنترل کننده ی مرکزی و یک مرکز تصمیم گیری و هدایت برای مدارهای ماست. این قطعه یک آی سی است که می تواند توسط کاربر برنامه ریزی شود. برنامه ریزی آن نیز توسط زبان های مختلف برنامه نویسی مانند C، اسمبلی و basic انجام می شود.
فقط کافیست تمام ورودی و خروجی های مدار یا ربات خود را در اختیار میکرو کنترلر قرار دهیم و سپس الگوریتم مورد نظر خود را تحت یکی از این زبان های برنامه نویسی پیاده سازی کرده و میکروکنتلر را برنامه ریزی کنیم، حالا این قطعه به راحتی ربات یا مدار ما را به طور کامل کنترل می کند.
تصویر بالا تصویر یک میکروکنترلر ATmega16L است. این میکرو کنترلر یک آی سی 40 پایه از خانواده ی میکروکنترلرهای AVR است و به دلیل ویژگی های خاص و قیمت مناسبش(حدوداً 2000تومان)، به عنوان یکی از پرکاربردترین و معروف ترین انواع میکروکنترلرها در جهان شناخته شده است. به همین دلیل ما نیز آموزش کار با همین میکروکنترلر را خواهیم داد. البته این به این مفهوم نیست که ما اگر میکروکنترلرATmega16L را آموزش ببینیم فقط می تونیم فقط با همین میکروکنترلر کار کنیم، بلکه کار کردن با سایر میکروکنترلرهای خانواده ی AVR را نیز فرا می گیریم و فقط کافیست چند نکته ی کوچک در مورد میکروکنترلر های دیگر این خانواده یاد بگیریم تا بتوانیم با آن ها نیز کار کنیم.
جالبه بدونید که اولین میکروکنترلرها در دهه ی 80 میلادی ساخته شد، که هنوز هم کار با آن میکروکنترلرها در بسیاری از دانشگاه ها و مراکز مختلف آموزشی، آموزش داده می شود.
خوب، حالا کمی با این قطعه ی جادویی بیشتر آشنا بشویم...
میکروکنترلر یک ریز پردازنده (Processor) است که می تواند ورودی و خروجی های متعدد داشته باشد. یعنی تعددادی ورودی از محیط دریافت کند و طبق برنامه ریزی هایی که روی آن انجام شده، خروجی هایی متناسب با آن ها صادر کند.
ما برای برنامه ریزی این قطعه، از زبان C که یکی از کاملترین زبان های برنامه نویسی روز دنیاست، استفاده می کنیم.
توضیحات ابتدایی در مورد قسمت های نرم افزاری: |
به برنامه ای که توسط کاربر نوشته می شود، Source گفته می شود. این برنامه باید توسط یک نرم افزار، به زبان قابل فهم برای میکروکنترلر تبدیل شود. به این نرم افزار کامپایلر می گویند. به این برنامه ی کامپایل شده نیز، یک می گویند. حالا باید این توسط نرم افزار دیگری به چیپ (Chip) یا همان آی سی منتقل شود. به این عمل، یعنی انتقال برنامه ی کامپایل شده به چیپ، پروگرام کردن می گویند و به نرم افزاری که این کار را انجام می دهد پروگرامر (Programmer) می گویند. محیطی که ما در آن برنامه ی مورد نظر خود را می نویسیم (تایپ می کنیم) Editor نام دارد. این نرم افزار ما را در خلل برنامه نویسی بسیار کمک می کند، مثلاً کلمات رزرو شده و غیر قابل تعویض را با رنگها و فونت های گوناگون برای ما برجسته می کند.
این 3 برنامه، یعنی کامپایلر، پروگرامر و ادیتور، در غالب نرم افزاری به نام "Code Vision" توسط شرکت HP به بازار عرضه شده است . کاربر با نصب این نرم افزار بر روی کامپیوتر شخصی خود، در حقیقت هر 3 برنام را، به علاوه ی چندین قابلیت و برنامه ی جانبی دیگر را که در جلسات آینده با آن ها آشنا خواهید شد، بر روی دستگاه خود نصب کرده است. در واقع Code vision یک بستهی نرم افزاری کامل و جامع برای خانواده ی AVR است که تمام نیازهای نرم افزاری ما را برای کار کردن با میکروکنترلرهای این خانواده برطرف می کند. در جلسات آینده در مورد این نرم افزار بیش تر توضیح خواهیم داد.
توضیحات مقدماتی در مورد قسمت های سخت افزاری: |
میکروکنترلر ATmega16L دارای 4 پورت (Port) یا درگاه است. هر پورت دارای 8 پایه است که می توانند به عنوان ورودی یا خروجی استفاده شوند. در حقیقت این میکروکنترلر دارای 32 پایه برای دریافت اطلاعات و یا صدور دستورات مختلف برای کنترل سایر قطعات است. 8 پایه ی دیگر نیز وظایف مختلفی بر عهده دارند که در جلسات آینده در مورد آن ها نیز توضیح داده خواهد شد.
در بعضی از میکروکنترلرها برای انتقال برنامه به چیپ (پروگرام کردن چیپ)، از یک مدار جانبی به نام "Micro controller programmer" استفاده می کنند و چیپ را در آن مدار قرار داده و چیپ باید فقط روی آن مدار پروگرام شود. ATmega16L این قابلیت را دارد که بدون هیچگونه مدار خارجی و فقط به وسیله ی چند رشته سیم معمولی، بر روی خود ربات یا مدار اصلی پروگرام شود. این قابلیت به اختصار ISP یا (In System programing) نام دارد. این قابلیت یکی از بزرگترین مزیت های این نوع میکروکنترلر به شمار می رود. زیرا دیگر نیازی به صرف هزینه ی اضافی برای خرید این مدار نیست. علاوه بر این دیگر نیازی نیست چیپ هر بار برای پروگرام شدن از روی ربات جدا شود.
در مورد میکروکنترلر مطالب بسیار گسترده و زیادی وجود دارد، تا جایی که به عنوان یکی از درس های تخصصی رشته های برق و کامپیوتر به دانشجویان مقطع کارشناسی ارائه می شود. بدیهی است ما نمی توانیم در اینجا تمامی مطالب موجود در مورد میکروکنترلر ها را آموزش دهیم. اما به هر حال در جلسات آینده سعی می کنیم شما رو تا حد مناسبی با این قطعه ی با ارزش آشنا کنیم.
|