تبلیغات
به نام خدا

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

و با عرض پوزش فراوان به خاطر تاخیر در ارائه ی جلسه ی چهاردهم

این جلسه همان‌طور که قول داده بودیم، قراره کمی در مورد Codevision توضیحاتی بدیم.

در ابتدا دوستان عزیز برای اینکه بتونن مطلب رو با ما دنبال کنند، لازمه که این نرم افزار تهیه کرده و روی کامپیوتر شخصی خود نصب کنند. در زیر نسخه ی2.03.4 Crack شده‌ی این نرم افزار را، برای دانلود دوستان قرار دادیم.(حجم 8.15مگابایت)
برای دانلود نرم افزار اینجا كلیك كنید
پس انجام مراحل نصب برنامه، برنامه را باز کنید.



چگونه یك پروژه‌ی جدید تعریف كنیم؟



برای نوشتن یک پروژه ی جدید، باید ایتدا از منوی File، گزینه ی New را انتخاب کنید. یک پنجره ی کوچک در وسط صفحه باز می شود که در آن باید گزینه ی Project را انتخاب کرده و تایید کنید. بلافاصله پنجره ی دیگری باز می شود که از شما سوال می کند آیا تمایل دارید برای انجام پروژه ی خود از CodeWizard استفاده کنید؟

همانطور که گفته شد، CodeWizard یکی از نرم افزارهای جانبی CodeVision است که به وسیله ی یک واسط گرافیکی، در نوشتن برنامه ی اصلی و انجام تنظیمات اولیه پورت ها و ....، کمک بسیار زیادی به ما می کند.

پس گزینه ی Yes را انتخاب می کنیم و CodeWizard باز می شود.


چگونه از CodeWizard استفاده کنیم:


شکل زیر، نمای کلی از CodeWizard است:




همانطور که میبینید، لبه های متعددی برای انجام تنظیمات مختلف میکروکنترلر در آن وجود دارد.

لبه‌ی Chip:

اولین لبه ای که ما با آن کار داریم لبه ی Chip است. در این قسمت ما باید نوع میکروکنترلر خودمان را انتخاب کنیم. همانطور که در شکل بالا می بینید، میکرو کنترلر ATmega16L را انتخاب کرده ایم.

قسمت Clock مربوط به تنظیم فرکانس کاری آی سی است که ما فعلاً وارد این مبحث نمی‌شویم و آنرا با همان مقدار پیش فرض می پذیریم. با قسمت های دیگر این لبه هم ما کاری نداریم و آن ها را به همان صورت پیش فرض می پذیریم.

لبه‌ی Port: 

این لبه مربوط به تنظیمات ورودی خروجی پایه هاست.




همانطور که می بینید هر پایه از هر پورت را در این قسمت می توان به راحتی به صورت In (ورودی) و یا Out(خروجی) تنظیم کرد. فقط کافیست لبه ی مربوط به پورت مورد نظر را انتخاب کنید، حالا برای تغییر وضعیت هر پایه باید روی آن کلیک کنید.

Output value یا مقدار اولیه:

وقتی پایه ای را به صورت خروجی تنظیم می کنیم، می توان با تنظیم رجیستری PORTx تعیین کرد که سطح ولتاژ خروجی این پایه به صورت پیش فرض 0 باشد یا 1. یعنی در زمانیکه هنوز برنامه‌ی ما برای پایه ها تعیین وضعیت نکرده است، می توان به این طریق سطح ولتاژ اولیه ی پایه را تعیین نمود.

CodeWizard در این جا هم کار ما را راحت تر کرده است، در ستون مقابل یعنی ستون "Pullup/Output value" برای پایه هایی که به صورت خروجی تعریف شده اند، می توان با یک کلیک وضعیت خروجی پایه را مشخص کرد. مثلاً الآن پایه ی شماره ی 2 از پورت A به صورت خروجی تعریف شده و در ستون مقابل نیز مقدار پیش فرض خروجی 0 تعیین شده است.

Pullup:

این قابلیت سخت افزاریست و در خانواده ی AVR نیز وجود دارد. Pullup کردن به این معناست که پایه ای را با یک مقاومت بالا(مثلاً 10 کیلو اهم) به + وصل کنیم. اگر هم پایه را با این مقاومت به GND وصل کنیم، می گوییم پایه را Pulldown کرده ایم. مقاومت بزرگ باعث می شود که جریان عبوری به حداقل کاهش یابد، ولی به وسیله ی ولتاژی که بر روی پایه قرار می گیرد، می‌توان ورودی مورد نظر را در هنگامیکه هنوز ورودی از خارج دریافت نکرده به صورت پیش فرض 0 یا 1 کرد.

وقتی پایه ای را به صورت ورودی تعریف می کنیم، با تنظیم رجیستری PORTx می توان تعیین کرد که پایه ی ورودی به صورت پیش فرض Pullup باشد یا نباشد. دقت کنید که در اینجا نمی توان تنظیم کرد که مقدار ورودی پیش فرض 0 باشد، چون خانواده ی AVR قابلیت Pulldown ندارند وفقط می توان آنرا به صورت Pullup تنظیم نمود، و در نتیجه پایه ای که Pullup شده است در هنگامیکه هنوز از خارج مقداری را دریافت نکرده است، به صورت پیش فرض 1 منطقی شود.


حالا بعد از انجام تنظیمات اولیه پورت ها و خود آی سی ، باید از Codewizard بخواهیم تا یک برنامه ی نیمه آماده با توجه به تنظیماتی که تنجان داده ایم در اختیار ما بذاره.

برای این کار از منوی File گزینه ی "Generate, Save and Exit" را انتخاب کنید. حالا باید جایی که می خواهید برنامه ی شما Save شود را مشخص کنید. Codevision در اینجا 3 فایل برای برنامه ی شما می سازد که باید آن ها را نام گداری کنید. بهتر است نام این 3 فایل و محل ذخیره سازی آن ها یکی باشد.

بعد از ساخته شدن این 3 فایل توسط Codevision برنامه آماده است، حالا شما باید دستورات خود را در محل تعیین شده بنویسید.




بعد از نوشتن برنامه باید آنرا کامپایل کرده و و سپس فایلHex آنرا بسازید و بعد از آن، فایل Hex را در میکرو کنترلر Load کنید. حالا میکروکنترلر شما پروگرام شده و آماده ی استفاده است. در جلسه ی آینده با روند اجرای این مراحل در Codevision آشنا خوهید شد.


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


همانطور که گفته شد فقط «زبان ماشین»(Machine Language)، زبان قابل فهم برای پردازنده ی کامپیوتر است، و برنامه هایی که در زبان های دیگر می نویسیم برای اینکه بتوانند توسط پردازنده اجرا شوند باید حتماً توسط کامپایلرها به «زبان ماشین» ترجمه شوند. اما نوشتن برنامه در این زبان برای ما بسیار مشکل است، زیرا دستورات قابل فهم برای این زبان بسیار ابتدایی و ساده هستند و به سختی می توان برنامه های حرفه ای و الگوریتم های پیچیده را در آن پیاده سازی کرد. مثلاً حتی برای انتقال داده از یک متغیر به متغیر دیگر، باید چندین خط برنامه بنویسید، اما در زبان C این کار در 1 عبارت انجام می شود. برنامه نویسی در این زبان دشواری های مختلفی دارد که فعلاً به آن ها نمی پردازیم.

به همین خاطر ما برنامه های خود را در زبان C می نویسیم و باقی کارها را به کامپایلر می سپاریم. کامپایلر ابتدا برنامه ی ما را از زبان C به زبان اسمبلی ترجمه می کند، سپس برنامه ی دیگری به نام «اسمبلر»(" Assembler") برنامه ی ما را از اسمبلی به «زبان ماشین» تبدیل می کند.
زبان اسمبلی یک پله کاملتر از زبان ماشین است. برنامه نویسی در این زبان بسیار ساده تر از زبان ماشین است و بعضی از مشکلاتی که در زبان ماشین وجود داشت در این زبان برطرف شده و یکی از زبان های رایج فعلی برای برنامه نویسی میکروکنترلرها همین زبان اسمبلی است که بیشتر هم در برنامه نویسی میکروکنترلرهای سری 8051 استفاده می شود. اما برنامه نویسی در این زبان هم بسیار پیچیده تر از زبان C است و نوشتن برنامه های حرفه ای و طولانی در این زبان بسیار دشوار است.



حال چگونه باید این مراحل را در محیط CodeVisionانجام داد:
بعد از نوشتن برنامه، شما می توانید با فشار دادن کلید F9 برنامه ی خود را کامپایل کنید. با فشار دادن همزمان Shift+F9 برنامه ی شما ابتدا کامپایل شده و به اسمبلی تبدیل می شود وسپس توسط اسمبلر، به زبان ماشین تبدیل می شود. سپس فایلی با پسوند .HEX در محلی که شما مشخص کرده اید(در هنگام ساختن پروژه) ساخته می شود.این فایل همان برنامه ی شماست و شما باید این فایل را طی مراحلی که در ادامه توضیح داده می شود، در میکروکنترلر Load کنید.

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

همانطور که در جلسات پیش مطرح شد، CodeVision مجموعه ای از چند برنامه ی مختلف است که در کنار هم جمع شده اند تا همه ی نیازهای کاربر را برطرف کنند. در اینجا هم پروگرامر CodeVision مشکل ما رو حل می کند. برای استفاده از پروگرامر، باید در نوارابزار بالا روی "Chip Programmer" کلیک کنید تا پنجره ای به شکل زیر باز شود.




حال از منوی File"" ِ همین پنجره، گزینه ی Load Flash"" را انتخاب کنید. حالا فایلی که در قسمت بالا ساختید (.Hex) را از پوشه ی "exe" انتخاب کنید. البته به صورت پیش فرض این کار انجام می شود و فایل .HEX برنامه ی شما در پروگرامر Load می شود، اما ممکن است گاهی به دلایل مختلف نیاز باشد فایل دیگری را Load کنید.

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

حالا از منوی "Program" گزینه ی "Erase Chip" را انتخاب کنید تا برنامه های قبلی ای که رو میکروکنترلر شما هست پاک شود و میکروکنترلر آماده دریافت برنامه ی جدید شود. سپس از همین قسمت، گزینه ی "Flash" را انتخاب کنید تا برنامه ی جدید شما در داخل میکروکنترلر Load شود. حالا میکروکنترلر شما پروگرام شده و آماده ی استفاده است.


مشکلات احتمالی:

در بخش کامپایل کردن برنامه، ممکن است برنامه ی شما ایرادات مختلفی داشته باشد که مانع کامپایل شدن برنامه شود. این ایرادات(Errors)، همراه با شماره ی خطی که در آن ایراد وجود دارد، بعد از هربار که برنامه را کامپایل می کنید در قسمت سمت چپ، در لبه ی"Code Navigator" نمایش داده می شوند .





نکته ی مهم:یکی از رایج ترین ایرادات که مربوط به نگذاشتن ";" در پایان جملات است، ایراد "missing';' " است.

سپس بعد از رفع ایراد ، دوباره برنامه را کامپایل کنید و اگر Error در آن قسمت نبود، برنامه ی شما کامل است.


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

منتظر سوالات و نظرات دوستان خوبم هستم.

تا جلسه ی آینده خدا نگه دار.