میکروکنترلر و مقدمات ...
از ابن جلسه ما وارد مبحث میکروکنترلر میشویم. این مبحث نسبت به مباحث قبلی، نیازمند توجه و دقت بیشتری است و دوستان باید زمان بیشتری برای آموزش این مبحث صرف کنند. بخشی از این مبحث مربوط به برنامه نویسی تحت زبان C است که ما سعی می کنیم دوستان رو در حد کمی با مقدمات برنامه نویسی در این زبان نیز آشنا کنیم. | |
به نام خدا
با عرض سلام خدمت همهي دوستان عزيزم
اميدوارم تا اين جلسه مطالب مفيد بوده باشند و دوستان عزيز توانسته باشند از اين مطالب به خوبي استفاده کنند. از ابن جلسه ما وارد مبحث ميکروکنترلر مي شويم. اين مبحث نسبت به مباحث قبلي، نيازمند توجه و دقت بيشتري است و دوستان بايد زمان بيشتري براي آموزش اين مبحث صرف کنند. بخشي از اين مبحث مربوط به برنامه نويسي تحت زبان C مي باشد که ما سعي مي کنيم دوستان رو در حد کمي با مقدمات برنامه نويسي در اين زبان نيز آشنا کنيم.
ميکروکنترلر در زبان انگليسي به معني «ريز کنترل کننده" است. اين قطعه در واقع يک کنترل کننده ي مرکزي و يک مرکز تصميم گيري و هدايت براي مدارهاي ماست. اين قطعه يک آي سي است که مي تواند توسط کاربر برنامه ريزي شود. برنامه ريزي آن نيز توسط زبان هاي مختلف برنامه نويسي مانند C، اسمبلي و basic انجام مي شود.
فقط کافيست تمام ورودي و خروجي هاي مدار يا ربات خود را در اختيار ميکرو کنترلر قرار دهيم و سپس الگوريتم مورد نظر خود را تحت يکي از اين زبان هاي برنامه نويسي پياده سازي کرده و ميکروکنتلر را برنامه ريزي کنيم، حالا اين قطعه به راحتي ربات يا مدار ما را به طور کامل کنترل مي کند.
تصوير بالا تصوير يک ميکروکنترلر ATmega16L است. اين ميکرو کنترلر يک آي سي 40 پايه از خانواده ي ميکروکنترلرهاي AVR است و به دليل ويژگي هاي خاص و قيمت مناسبش(حدوداً 2000تومان)، به عنوان يکي از پرکاربردترين و معروف ترين انواع ميکروکنترلرها در جهان شناخته شده است. به همين دليل ما نيز آموزش کار با همين ميکروکنترلر را خواهيم داد. البته اين به اين مفهوم نيست که ما اگر ميکروکنترلرATmega16L را آموزش ببينيم فقط مي تونيم فقط با همين ميکروکنترلر کار کنيم، بلکه کار کردن با ساير ميکروکنترلرهاي خانواده ي AVR را نيز فرا مي گيريم و فقط کافيست چند نکته ي کوچک در مورد ميکروکنترلر هاي ديگر اين خانواده ياد بگيريم تا بتوانيم با آن ها نيز کار کنيم.
جالبه بدونيد که اولين ميکروکنترلرها در دهه ي 80 ميلادي ساخته شد، که هنوز هم کار با آن ميکروکنترلرها در بسياري از دانشگاه ها و مراکز مختلف آموزشي، آموزش داده مي شود.
خوب، حالا کمي با اين قطعه ي جادويي بيشتر آشنا بشويم...
ميکروکنترلر يک ريز پردازنده (Processor) است که مي تواند ورودي و خروجي هاي متعدد داشته باشد. يعني تعددادي ورودي از محيط دريافت کند و طبق برنامه ريزي هايي که روي آن انجام شده، خروجي هايي متناسب با آن ها صادر کند.
ما براي برنامه ريزي اين قطعه، از زبان C که يکي از کاملترين زبان هاي برنامه نويسي روز دنياست، استفاده مي کنيم.
توضيحات ابتدايي در مورد قسمت هاي نرم افزاري: |
به برنامه اي که توسط کاربر نوشته مي شود، Source گفته مي شود. اين برنامه بايد توسط يک نرم افزار، به زبان قابل فهم براي ميکروکنترلر تبديل شود. به اين نرم افزار کامپايلر مي گويند. به اين برنامه ي کامپايل شده نيز، يک Object مي گويند. حالا بايد اين Object توسط نرم افزار ديگري به چيپ (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) نام دارد. اين قابليت يکي از بزرگترين مزيت هاي اين نوع ميکروکنترلر به شمار مي رود. زيرا ديگر نيازي به صرف هزينه ي اضافي براي خريد اين مدار نيست. علاوه بر اين ديگر نيازي نيست چيپ هر بار براي پروگرام شدن از روي ربات جدا شود.
در مورد ميکروکنترلر مطالب بسيار گسترده و زيادي وجود دارد، تا جايي که به عنوان يکي از درس هاي تخصصي رشته هاي برق و کامپيوتر به دانشجويان مقطع کارشناسي ارائه مي شود. بديهي است ما نمي توانيم در اينجا تمامي مطالب موجود در مورد ميکروکنترلر ها را آموزش دهيم. اما به هر حال در جلسات آينده سعي مي کنيم شما رو تا حد مناسبي با اين قطعه ي با ارزش آشنا کنيم.
تا جلسه آينده خدا نگه دار
پيروز باشيد!
دوست شما، فراز