آشنایی با نرم افزار Proteus
نرم افزار Proteus يكي از پركاربرد ترين نرم افزار ها در زمينه ي شبيه سازي و تحليل مدارهاي الكترونيكي مي باشد. هر چند اين نرم افزار در زمينه ي تحليل مدارهاي آنالوگ نيز كاربرد دارد اما كاربرد اصلي اين نرم افزار در شبيه سازي مدارات ديجيتال و اطمينان از صحت عملكرد آن قبل از پياده سازي سخت افزاري مي باشد. شهرت اصلي اين نرم افزار به خاطر محيط ساده، كاربري

آسان و كتابخانه ي وسيع آن مي باشد. بدين منظور در اين دستور كار سعي شده تا علاوه بر آشنايي شما با اين نرم افزار به تحليل مدارات هر آزمايش با اين برنامه بپردازيم. بدين منظور در نظر داريم با توضيح مختصري از اين نرم افزار، با شيوه ي عملكرد آن در حد نياز آشنا شويم.
تصوير زير ( شکل ۱ ) محيط نرم افزار Proteus را نشان مي دهد. همان طور كه مي بينيد محيط اين نرم افزار از قسمت هاي متعددي ساخته شده كه در ادامه شما را با قسمت هاي مورد نيازتان آشنا مي كنيم.

شکل ۱- محیط نرم افزار Proteus
اولين عملي كه مي بايست در راستاي تحليل يك مدار انجام داد، چگونگي آوردن قطعات مداري و اتصال آن ها به يكديگر مي باشد. براي آوردن قطعات مورد نياز از كتابخانه ي Proteus مطابق شكل زير ( شکل ۲ ) پس از انتخاب حالت Component Mode از نوار كناري، بر روي گزينه ي P كليك مي كنيد تا كتابخانه ي مورد نظر باز شود .

شکل ۲
در پنجره ي باز شده در قسمت Keywords (همان طور كه نشان داده شده ) نام قطعه ي مورد نظر را وارد مي كنيم ( شکل ۳ بالا ). به عنوان مثال مي نويسيم atmega16 (شکل ۳ وسط )، اكنون از ليست آورده شده در سمت چپ يكي از انواع آي سي Atmega16 را با توجه به نوع آي سي كه در آزمايشگاه در اختيار داريم انتخاب مي كنيم (به عنوان يك گزينه ي خوب مي توانيد روي ATMEGA16 كليك كنيد) و روي گزينه ي OK كليك كنيد( شکل ۳ پایین ).

شکل ۳
حال در محيط كار (زمينه ي خاكستري رنگ ) يك كليك كنيد و قطعه ي مورد نظر را در مكان مورد نظرتان با يك كليك ديگر قرار دهيد ( شکل ۴ ).

شکل ۴

قطعات ديگر را نيز به همين صورت مي توانيد انتخاب كنيد. مورد ديگر منابع ولتاژ يا جريان مي باشد بدين منظور مي توانيد با كليك بر روي گزينه ي Generator Mode و انتخاب هر يك از انواع منبع مورد نياز آن را به محيط كار اضافه كنيد. به عنوان مثال با انتخاب گزينه ي DC يك منبع ولتاژ DC و يا با انتخاب SINE يك منبع ولتاز سينوسي با دامنه، فركانس و … قابل تنظيم را مي توانيد به محيط كار اضافه كنيد ( شکل ۵ ).

شکل ۵
يك نكته ديگر كه معمولا در تمامي مدار ها به آن نياز داريد زمين مدار است براي افزودن زمين به مدار خود از Terminals Mode‌ روي گزينه ي GROUND كليك كرده و آن را به محيط مدارتان اضافه كنيد.

شکل ۶
و اما يكي ديگر از قابليت هاي بسيار جالب و مهم اين نرم افزار وجود ابزار هاي اندازه گيري مثل اسيلوسكوپ، ولت متر، آمپرمتر و … مي باشد براي استفاده از اين وسايل كافي است با كليك روي گزينه ي Virtual Instruments Mode ابزار مورد نظرتان را انتخاب و از آن بهره ببريد (شکل ۷ ).

شکل ۷
خوب تا به اين جا با نحوه ي آوردن قطعات مورد نياز در محيط كار آشنا شديم در ادامه با نحوه ي سيم بندي مدار در نرم افزار Proteus آشنا مي شويم. هرگاه بخواهيم دو نقطه از مدار را به يكديگر متصل كنيم كافي است با كليك روي پايه ي مورد نظر از المان مورد نظر حالت سيم بندي را فعال كرده و آن را به قسمتي از مدار كه مي خواهيم با سيم به آن اتصال برقرار شود، وصل مي كنيم اين عمل در شكل زير نشان داده شده است.

شکل ۸
از آن جا كه در اين آزمايشگاه با آي سي هاي قابل برنامه ريزي كار مي كنيم بايستي بتوان آي سي مورد نظر را ( به عنوان مثال atmega16 در اين جا ) در محيط Proteus برنامه ريزي كرد و نتايج را مشاهده نمود. به منظور برنامه نويسي آي سي از نرم افزار هاي ديگر مثل Codevision، Bascom و … استفاده مي كنيم كه در ادامه با Codevision آشنا مي شويم. اما اين گونه برنامه ها يك فايل با پسوند .hex توليد مي كنند كه از اين فايل براي برنامه ريزي آي سي مورد نظر در محيط Proteus استفاده مي كنيم. فرض كنيد كه چنين فايلي نوشته شده و آن را داريم. كاري كه در محيط Proteus بايستي انجام شود به صورت زير است :

روي آي سي مورد نظر دو بار كليك ( دابل كليك ) كنيد تا پنجره ي زير باز شود ( شکل ۹ ). رو به روي گزينه ي Program File روي علامت زرد رنگ كليك كنيد تا پنجره ي بعدي باز شود.

شکل ۹

حال در پنجره ي باز شده به مسيري كه فايل .hex ذخيره شده مي رويم و با انتخاب آن و زدن گزينه ي Open در اين پنجره و زدن گزينه ي OK در پنجره ي زيري، آي سي برنامه ريزي ( پروگرام ) مي شود. حال مي توان با زدن كليد Play در گوشه ي سمت چپ، پايين، نتيجه را مشاهده كنيد. براي توقف اجراي شبيه سازي روي دكمه ي Stop كليك كنيد ( شکل ۱۰ ).

شکل ۱۰

آشنایی با نرم افزار CodeVisionAVR
همان طور كه در بخش قبلي نيز اشاره شد نرم افزار CodeVisionAVR‌ ، نرم افزاري به منظور كد نويسي و پروگرام كردن آي سي هاي خانواده ي AVR مي باشد. زبان كدنويسي اين نرم افزار بسيار شبيه زبان برنامه نويسي C مي باشد. تصاوير آورده شده در اين بخش از نسخه ي ۲٫۰۴۴a آورده شده ليكن با توجه به كليت مطالب، در مورد ساير نسخه هاي اين نرم افزار نيز برقرار است. شكل زير ( شکل ۱۱ ) تصويري كلي از محيط اين نرم افزار مي باشد. همان طور كه مشاهده مي كنيد بخش هاي متعددي در اين نرم افزار وجود دارد اما ما به توضيح آن چه بدان نيازمنديم مي پردازيم.

شکل ۱۱
اولين نياز براي كد نويسي ، باز كردن صفحه اي براي نوشتن كد ها مي باشد بدين منظور از گزينه ي File روي عنوان New كليك مي كنيم ( شکل ۱۲ ). از پنجره ي باز شده عبارت Project را انتخاب كرده و روي گزينه ي OK كليك مي كنيم ( شکل ۱۳ ).

شکل ۱۲

شکل ۱۳

پس از زدن گزينه ي OK پنجره ي جديدي باز مي شود (شکل ۱۴ ) كه از شما مي پرسد آيا مي خواهيد از امكانات CodeWizardAVR استفاده كنيد يا خير؟ CodeWizardAVR قابليتي است در برنامه ي Codevision‌ كه عمل برنامه نويسي را راحت تر مي كند، بنابراين با انتخاب گزينه ي Yes از اين امكانات بهره مي بريم.

شکل ۱۴

در صورت زدن گزينه ي Yes پنجره ي زير باز مي شود ( شکل ۱۵ ) كه شامل گزينه هايي براي تنظيم نوع آي سي مورد استفاده و بخش هاي مختلف آن از جمله تعريف نوع پايه ها به عنوان ورودي يا خروجي، منبع اسيلاتور براي كلاك پالس آي سي، تنظيمات مربوط به وقفه و تايمر/كانترها و … مي باشد. كه هر كدام را در جاي خود توضيح مي دهيم.

شکل ۱۵

براي شروع از سربرگ Chip، روي گزينه ي Chip، نوع آي سي را كه همان atmega16 است انتخاب مي كنيم و در نوار زيري يعني Clock، فركانس كار آي سي را مشخص مي كنيم. به عنوان مثال آن را روي ۱MHz قرار مي دهيم اين بدان معني است كه فركانس كلاك پالس آي سي شما صرف نظر از چگونگي توليد آن برابر يك مگا هرتز است ( شکل ۱۶ ).

شکل ۱۶
حال وارد سربرگ Ports شويد. در اين سربرگ تنظيمات مربوط به پايه هاي آي سي را انجام مي دهيم به اين صورت كه براي هر كدام از دسته پورت هاي Port A، Port B، Port C و Port D مشخص مي كنيم كه كدام پايه را به عنوان ورودي و كدام پايه را به عنوان خروجي تعريف كنيم. براي اين كار با كليك روي كليد كنار هر پايه ي پورت آن را در حالت ورودي ( In ) يا (‌ Out ) قراردهيد. به عنوان مثال با كليك روي كليد كناري Bit 0 از Port A آن را در حالت Out قرار دهيد اين بدان معناست كه پايه ي صفرم از پورت A مربوط به آي سي atmega16 شما به عنوان يك پايه ي خروجي تعريف مي شود ( شکل ۱۷ ).

شکل ۱۷

فعلا با ساير بخش ها كاري نداريم. حال پس از تعيين نوع آي سي و فركانس كاري آن و تعيين پايه هاي ورودي و خروجي بايستي فايل را ذخيره كنيم براي اين كار روي گزينه ي File از پنجره ي CodeWizardAVR روي عبارت Generate, Save and Exit مي رويم ( شکل ۱۸ ). در اين حالت بايستي پروژه را در آدرس مورد نظرتان در سه مرحله ذخيره كنيد كه براي اجتناب از هر اشتباه نام فايلتان را در هر سه مرحله يكسان وارد كنيد. منظور از سه مرحله اين است كه در پنجره ي اول نام فايل با پسوند .c ( C Compiler File ) را از شما مي گيرد در پنجره ي بعدي فايل با پسوند .prj ( Project File ) و در پنجره ي سوم فايل با پسوند .cwp ( CodeWizardAVR project files ) را. يعني براي هر پروژه سه فايل در ابتدا ايجاد مي شود كه همان طور كه تذكر داده شد نام هر سه را يكسان وارد كنيد ( شکل ۱۹ ).

شکل ۱۸

شکل ۱۹
پس از آن مي بينيد كه فايل كد ها در محيط Codevision ايجاد مي شود اما به اين نكته توجه كنيد كه اين كد ها تنها شامل تنظيمات اوليه اي مي باشد كه شما آن را در CodeWizardAVR انجام داديد( شکل ۲۰ ).

شکل ۲۰
در ادامه مي بایست كد هاي خود را در اين پنجره بنويسيم. البته براي اينكه پنجره ي كدها خلوت تر شود مي توانيد توضيحاتي را كه به رنگ آبي نوشته شده و با دو علامت // شروع مي شوند را پاك كنيد (شکل ۲۱).

شکل ۲۱
با فرض اينكه كدهاي برنامه ي مورد نظر را براي آي سي ميكروپروسسور نوشته ايم مراحل را در نرم افزار Codevision ادامه مي دهيم. فايلي كه در محيط سخت افزاري در آي سي ميكرو پروگرام مي شود و منجر به انجام امور مورد انتظار توسط آي سي مي گردد فايلي است با پسوند .hex كه بايستي توسط برنامه از روي كدهاي نوشته شده توليد شود. براي اين كار بر روي گزينه ي Compile the project كليك كنيد. اين امر بدين منظور انجام مي گيرد كه برنامه كدهاي شما را چك كرده

و اگر در كد هاي نوشته شده مشكل برنامه نويسي وجود داشته باشد با اعلام آن ها در بخش Errors و Warnings اولا شما را از وجود آن ها مطلع كند و ثانيا با توضيحات آورده شده در اين دو بخش شما را در حل مشكل ياري نمايد. علاوه بر اين پنجره اي باز مي شود كه اطلاعاتي راجع به وضعيت حافظه هاي داخلي آي سي به شما مي دهد ( شکل ۲۲ ).

شکل ۲۲

اگر برنامه ايرادي نداشت يا ايراد آن را برطرف كرديد در ادامه با كليك روي گزينه ي Build all project files فايل با پسوند .hex ايجاد مي شود (شکل ۲۳ )، كه اين همان فايل هِگزي است كه در بخش مربوط به نرم افزار Proteus از آن براي پروگرام كردن آي سي استفاده كرديم.

شگل ۲۳

تا به این جا با روال کار با دو نرم افزار Proteus و CodeVisionAVR آشنا شدید. اکنون زمان آن رسیده که خودتان دست به کار کد نویسی شوید. برای آشنایی با زبان کدنویسی در محیط Codevision
فایل C language.pdf را از سایت دانلود و مطالعه کنید.

آزمایش مقدماتی
آشنایی با مراحل برنامه ریزی میکروکنترلرهای AVR

موارد خواسته شده در پيش گزارش اين آزمايش
۱- نوشتن كد برنامه در CodeVisionAVR.
2- بستن مدار شبيه سازي توضيح داده شده در بخش ( ۰-۳ ).
۳- پاسخ به سوالات مطرح شده در طول آزمايش.
۴- به همراه داشتن فايل كدهاي CodeVision و فايل Proteus مربوط به مدار شبيه سازي.

مروري بر چگونگي انجام آزمايش
۰-۱- برنامه ي زير را كه به زبان C نوشته شده است در نظر بگيريد:

#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0x00; DDRA=0x00;
PORTB=0x00; DDRB=0x00;
PORTC=0x00; DDRC=0x00;
PORTD=0x00; DDRD=0xFF;
while (1)
{
PORTD=0x01;delay_ms(100);
PORTD=0x02;delay_ms(100);
PORTD=0x04;delay_ms(100);

PORTD=0x08;delay_ms(100);
PORTD=0x10;delay_ms(100);
PORTD=0x20;delay_ms(100);
PORTD=0x40;delay_ms(100);
PORTD=0x80;delay_ms(100);
};
}

سوال: اين برنامه را به صورت خط به خط تحليل كنيد.

۰-۲- اين برنامه را در محيط نرم افزار CodeVisionAVR به كمك بخش CodeWizardAVR، بـراي تراشه ي atmega16 فركانس كاري ۱MHz، بنويسيد.

۰-۳- حال به كمك نرم افزار Proteus، محيطي براي شبيه سازي و تست اين برنامه فراهم كنيد. براي اين كار مي توانيد از شكل زير كمك بگيريد( شکل ۰-۱ ).

شکل ۰-۱
( راهنمایی: برای آوردن LED ها از کتابخانه به محیط شبیه سازی پس از ورود به بخش کتابخانه ی Proteus در قسمت Keywords، وارد کنید LED-GREEN ).
0-4- اكنون برنامه را اجرا كرده و آن چه را مشاهده مي كنيد به همراه علت در گزارش كار بنويسيد.
۰-۵- حال به كد برنامه برگرديد و زمان هاي تاخير در تابع delay_ms را از ۱۰۰ به ۵۰ تغيير دهيد و دوباره برنامه را اجرا كنيد. چه تغييري مشاهده مي كنيد؟ پاسخ تان به همراه علت را در گزارش كار بنويسيد.

آزمایش شماره ی یک
آشنایی با عملکرد درگاه های میکروکنترلرهای AVR

موارد خواسته شده در پيش گزارش اين آزمايش
۱- نوشتن كد برنامه در CodeVisionAVR.
2- بستن مدار شبيه سازي توضيح داده شده در بخش طراحی.
۳- پاسخ به سوالات مطرح شده در طول آزمايش.
۴- به همراه داشتن فايل كدهاي CodeVision و فايل Proteus مربوط به مدار شبيه سازي.