شبيه سازی مدارات ميکرو کنترلی:
در اين پستآموزش نرم افزار پروتوس (قسمت سوم) شما با طريقه ريختن برنامه روی ميکرو و شبيه سازی وديباگ کردن مدارات ميکرو کنترلی اشنا مي شويد بدون شک بيشترين استفاده ای که از اين نرم افزار ميشود براسی شبيه سازی مدارت ميکرو کنترلی است. در مداری که ميخواهيم شبيه سازی کنيم ، بايد دما را توسط سنسور lm35 اندازه گرفته و بر روی lcd نمايش داده شود ، در زير شماتيک مدار را مشاهده ميکنيد:
درپست آموزش نرم افزار پروتوس (قسمت دوم) با طريقه اوردن قطعات از کتابخانه و طريقه سيم کشی اشنا شديد ، قطعات را به سند شماتيک بياوريد و
مسير کشی بين انها را انجام دهيد ريختن کد هگز روی ميکرو : مرحله بعدی ريختن کد هگز بر روی ميکرو ميباشد ( در عمل نيز شما بايد کد هگز را توسط پروگامر روی ميکرو بريزيد ) برای اين کار برنامه زير را در بسکام کپی کنيد و بعد از کامپايل کردن برنامه کد هگز را در مکانی مناسب ذخيره کنيد.
$regfile = “m16def.dat” : $crystal =10000000
Config Lcdpin = Pin , Db4 = Pind.0 , Db5 = Pind.1 , Db6 = Pind.2 , Db7 = Pind.3 , Rs = Pind.4 , E = Pind.5
Config Lcd = 16 * 2 : Dim A As Word
Config Adc = Single , Prescaler = Auto : Start Adc
Do
A = Getadc(0) : A = A / 2
Locate 1 , 1 : Lcd “temp is:” ; A ; “c “
Loop
End
بر روی ميکرو دوبار کليک کنيد ، پنجره ای مانند شکل زير باز ميشود ، بر روی محل مشخص شده کليک کنيد و در پنجره ای که در ادامه باز ميشود کد هگز را باز کنيد : گزينه ی clock frequency مشخص کننده فرکانس کاری ميکرو ميباشد ، مقدار نوشته شده در اين قسمت بايد با مقدار کريستال نوشته شده در برنامه (crystal =10000000$) و کريستال متصل شده به پايه های xtal1 , xtal2 ميکرو ، يکی باشد تا دستورات تاخير و.. درست انجام شود.
در قسمت Advanced properties نيز برخی از فيوز بيت ها ميکرو وجود دارد ( مانند استفاده از کريستال خارجی و…) که مي توانيد انها را ويرايش کنيد ، در اين مورد عدد صفر (0) به نشانه برنامه ريزی و رقم 1 به نشانه عدم برنامه ريزی است.
بعد از اعمال تنظيمات بر روی ok کليک کنيد ، مدار شما اماده شبيه سازی است ، در قسمت کنترل بر روی play کليک کنيد تا شبيه سازی شروع شود ، مشاهده ميکنيد که دمای نمايش داده شده بر روی سنسور بر روی lcd نيز نمايش داد ه می شود:
ديباگ کردن برنامه :
توسط اين نرم افزار ميتوان هنگام شبيه سازی مدارات ميکرو کنترلری مقادير ثبات ها و ريجسترها و … ميکرو را مشاهده کرد ، برای اين کار به فايلی با پسوند elf. که توسط کامپايلر توليد ميشود(اين فايل توسط کامپايلر های و avr studio و code vision و win avr ساخته ميشود ) نياز است . برای انجام عمليات بالا که به ان ديباگ کردن (debugging) گفته ميشود مراحل زير را انجام دهيد : مراحل ريختن کد هگز روی ميکرو را انجام دهيد ، اما به جای ريختن کد هگز ، کد با پسوند elf. را روی ميکرو بريزيد . در منوی فرمان به جای کليک کردن روی play بر روی step کليک کنيد :
با هر بار زدن کليک step يک خط از برنامه اجرا ميشود . برای نمونه ميتوانيد به مسير زير در محل نصب نرم افزار برويد و نمونه مدار موجود را باز کنيد و نتيجه را مشاده کنيد:
Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for AVR\One-Wire\DS18X20
روش های کم کردن حجم سيم کشی:
گاهی اوقات مدار بزرگ است و به سيم کشی بالا يی نياز دارد ، در پروتوس کشيدن مسير ها کار ساده ای است اما افراد بعدی که مدار شما را مطالعه ميکنند بدون شک دچار سر درگمی ميشوند ، پورتوس برای کم کردن حجم سيم کشی روش های زير را ارئه کرده است: بعضی از اين روش ها در منوی TERMINALS و بعضی ديگر در منوی ابزار وانتخاب مد (Mode Selector Toolbar) موجود ميباشند ،ابتدا به بررسی موارد موجود در منوی TERMINALS ميپردازيم . ترمينال DEFAULT :
اولين گزينه که DEFAULT ميباشد ، برای اتصال دو يا چند نقطه از مدار به کار ميرود :
اکنون بر روی هر ترمينال کليک کنيد ، پنجره ای مانند شکل زير باز ميشود ، در قسمت مشخص شده نام مناسبی را قرار دهيد ، توجهکنيد که دو ترمينالی که قرار است به يک ديگر متصل شوند بايد دارای يک نام باشند :
ترمينال های input و output و BIDIR:
اين ترمينال ها دقيقا مانند ترمينال معمولی (DEFAULT) ميباشد ، همانطور که از شکل اين ترمينال معلوم است ، بوسيله ان ميتوان ورودی يا خروجی يا دوطرفه بودن پايه را مشخص کرد(برای استفاده از اين ترمينال مانند بالا عمل کنيد):
ترمينال های POWER و GROUND :
از اين دو ترمينال برای اتصال دو يا چند نقطه از مدار به يک ديگر استفاده ميشود ، ترمينال های مشابه در سرتاسر مدار به يکديگر متصل ميشوند ( شما ميتوانيد از چند ترمينا ل DEFAULT هم نيز به جای اين دو ترمينال استفاده کنيد اما همانگونه که ميدانيد هدف خوانا کردن نقشه است)
BUSES MODE و WIRE LABLE MODE:
اين دو ابزار در منوی ابزار وانتخاب مد هستند :
کار wire lable mode ، مشابه ابزار های قبلی ميباشد ، و تنها تفاوت در سنبل گرافيکی ميباشد . برای استفاده از اين روش مراحل زير را انجام دهيد: از ابزار سمت چپ برنامه ابزار گزينه ی Buses mode را انتخاب کنيد و سپس از جلو اولين پايه شروع به کشيدن کنيد تا به اخرين پايه برسيد ( اولين پايه مبدا تا اخرين پايه مقصد ):
از ابزار سمت چپ روی گزينه selection mode کليک کنيد و سپس توسط پايه ها مورد نياز را به bus متصل کنيد .
شما ميتوانيد ديگر ترمينال ها را نيز به bus متصل کنيد :
بعد اتصال پايه های مورد نياز ، از نوار ابزار سمت چپ گزينه ی WIRE LABLE MODE را انتخاب کنيد و با کليک کردن روی مسير ها يک نام به انها اختصاص دهيد ( در پنجره باز شده نام را وارد کنيد و سپس روی ok کليک نماييد) و در نهايت کليه مسير های هم نام به يکديگر متصل مي شوند:
طراحی چند صفحه ای : يکی ديگر از روش های کم کردن حجم سيم کشی استفاده از طراحی چند صفحه ای ميباشد ، در اين روش مدار در چند صفحه رسم ميشود و اجزا از طريق ترمينالی های که در بالا معرفی شدند به يکديگر متصل ميشوند ، برای اجرای يک نقشه در چند صفحه مراحل زير را دنبال کنيد : يک عدد 16*2 lcd به صفحه شماتيک بياوريد و مطابق شکل تعداد 6 عدد ترمينال را به پايه های ان متصل کنيد :
از منوی desing گزينه ی new sheet را انتخاب کنيد تا يک صفحه جديد ايجاد شود :
مشاهده ميکنيد که صفحه جديدی باز ميشود ، در اين صفحه مدار زير را رسم کنيد :
برنامه زير را در محيط بسکام کامپايل کنيد و سپس ان را درون ميکرو بريزيد :
$regfile = “m8DEF.dat”
$crystal = 4000000
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
“Lcd “SALAM
End
بعد از ريختن برنامه روی ميکرو ( که نحوه انجام کار در بخش سوم گفته شد) از منوی DESING گزينه ی Previous sheet را انتخاب کنيد و شبيه سازی را اغاز کنيد . مشاهده ميکنيد که بر روی lcd عبارت salam نمايشد داده ميشود ، نقشه را ذخيره کنيد ، اکنون به محل ذخيره سازی برويد مشاهده مکنيد که فقط يک سند وجود دارد ، سند را باز کنيد ، ميبينيد که فقط اولين صفحه سند که lcd در ان وجود دارد نمايش داده ميشود . شما ميتوانيد ديگر مدارت خود را نيز مانند مدار بالا در چنديدن صفحه رسم کنيد .