شبیه سازی یا سیمولاتور

مقدمه :
شبيه سازي ياsimautation : در كامپيوتر معناي تقليد از يك فرآيند فيزيكي يا شي‎ء توسط برنامه‎اي كه موجب مي‎شود كامپيوتر به شكل رياضي به دادها و شرايط متغير واكنش نشان دهد چنان كه گويي خود شي يا فرآيند اين واكنش را نشان مي‌دهد .
مقلد يا emulator : سخت‌افزار يا نرم‌افزاري است كه نوعي از كامپيوتر يا تجهيزات را وادار مي‌سازد تا مانند ديگري عمل كند به وسيله مقلد كامپيوتر مي‌تواند نرم‌افزاري را كه براي ماشين ديگري نوشته شده اجرا كند. در يك شبكه ريز كامپيوترها ممكن است كامپيوترهاي بزرگ يا ترمينالها را تقليد كنند تا دو ماشين بتوانند با هم ارتباط برقرار كنند.

فصل اول
سميولاتور ۲۰۰۳

مقدمه:
سميولاتور ۲۰۰۳ چيست؟
سميولاتور ۲۰۰۳ شبيه‎سازي است بر مبناي ۵۱c87/8032/8031/52c87/51c89/52c89/8051/8052 كه بسيار براي كاربران آسان است.
منوها و پنجره‎هاي شبيه سازي به شما اجازه مي‎دهد تا سريع و آسان برنامه‎هاي ۸۰۵۲/۸۰۵۱/۵۲c89/51c89/52c87/51c87 را شبيه سازي كند – خطا ها را بگيرد و اشكالات را رفع كند .
شبيه ساز ۲۰۰۳ شامل ويژگيهاي مفيدي است كه قبلاً در شبيه سازي‎هاي ۸۰۵۲/۸۰۵۱/۵۲c89/51c89/52c87/51c87/8022/8031 مشاهده نشده.

مشخصات سميولاتور ۲۰۰۳:
۱-فعال كردن پنجرة نمايش (watch window) و اجازة نمايش location/bit selected حافظه در مبناي hex، دسيمال و Bin، بطوري كه ممكن است شما شخصاً روي requred Location/bit متمركز شويد به جاي پيدا كردن پنجره‎هاي متفاوت مربوط به آنها.
۲-اين شبيه ساز به دقت ساختار وقفه را كه شامل وقفه‎هاي همزمان است به وسيلة قراردادن تعدادي اولويتهاي وقفه شبيه‎سازي مي‎كند كه معمولاً در ساير شبيه‎سازها چشم پوشي مي‎‏شود.
۳-رفتار فلگهاي TI را به دقت شبيه‎سازي مي‎كند كه توسط شبيه‎سازهاي ديگر فراموش مي‎‎شود.
۴-ديباگ قدرتمند كه شامل Skip instruction, Time Based, Bulk step single step است.
۵-سرعت شبيه سازي قابل تنظيم

۶-توانايي براي برداشتن برچسبها از ليست فايلها
۷-پنجرة Bit memory كه مستقيماً براي مشاهدة حافظه بيتي است.
۸-پنجرة نهايي براي ارتباط سري
۹-همة پنجره‎هاي شبيه‎سازي قابل تغيير هستند در موقعيت و سايز نمايش بهتر.
۱۰- ذخيرة دستي و اتوماتيك براي ذخيرة موقعيت و سايز پنجره‎ها
۱۱-History اجرايي دستورالعملها براي مشاهدة ۱۰۰۰ دستورالعمل اخير
۱۲-پنجرة شامل خطاها و اخطارها

۱۳-كد disassembly و توانايي براي ذخيره كردن كد disassembly
14-امكان استفاده Breakpoint
15-پنجرة عمومي Real/write اضافه شده براي خواندن و نوشتن سريع memory location/bit در Active watch window
16-optionهاي راه اندازي مفيد.
۱۷-optionهاي، refresh كردن تنوع براي نيازهاي شما
۱۸-راحتي كار براي استفاده user interfuce

Toolbar سيمولاتور ۲۰۰۳:
Open file: فايلي كه شما مي‎خواهيد آن را شبيه سازي كنيد باز مي‎كند. فرمتهاي Support شده intel Hex و bin هستند.
Close file: فايلهاي باز شده را مي‎بندد.
Get lables form file: اين دستور Lable را به داخل سميلاتور ۲۰۰۳ بارگذاري مي‎كند. دو فرمت پوشش داده مي‎شوند. ۸۰۵۱ Cross Assembler فايل برچسب توليد مي‎كند و Pseudo sam Assembler فايلها را توليد مي‎كند. وقتي اين دستور را اجرا مي‎كنيد پنجره‎اي باز مي‎شود كه مي‎تواند فايل برچسبها را انتخاب و با زدن Open برچسبها Laud شوند.
Open Simulation: اين دستور اين اجازه را به شما مي‎دهد كه به شبيه‎سازي ذخيره شده خودتان برگرديد.
هنگاميكه اين دستور اجرا مي‎شود پنجره‎اي نمايش داده مي‎شود تا فايل خودتان انتخاب كنيد.

Save simulation: اين دستور اين اجازه را به شما مي‎دهد كه كارتان را ذخيره كنيد و دوباره آن را بازكنيد در هر زماني با استفاده از Open Simulation، اين دستور حافظه برنامه، همة ثباتهاي SFR، RAM داخلي و RAM خارجي، موقعيت پنجره‎هاي بازشده و سايزها را ذخيره مي‎كند. اين دستور خيلي مفيد است هنگامي كه شما در حال شبيه‎سازي برنامه‎اي هستيد و برنامة ديگري وقفه ايجاد مي‎كند. شما ممكن است برنامة خودتان را Save كرده باشيد و بعداً در زمان ديگري آن را restore كنيد.
Previously Opened Files list: سميلاتور ۲۰۰۳ ليست ۱۰ فايل بازشدة قبلي را نگه مي‎دارد. بطوري كه شما مي‎توانيد سريعاً هر برنامة‌ باز شده قبلي را باز كنيد.
روي نام فايل كليك و آن را باز كنيد. براي شروع شبيه‎سازي، اگر برنامه‎اي در حال حاضر باز باشد، بسته مي‎شود و برنامه‎اي كه روي آن كليك كرديد باز مي‎شود.
Exit: Exit مي‎شويد از سميلاتور ۲۰۰۳

Execution:
Start / stop Execution: تبديل مي‎كند اجراي شبيه سازي را هنگامي كه اجرا نگه داشته مي‎شود، شروع مي‎كند اجرا را و هنگاميكه اجرا در حال پيشرفت كردن است، اجرا را نگه مي‎دارد. بعضي از پارامترهاي كنترلي اجرا از قبيل شمارة دستورالعمل Butch. Refersh type، و سرعت شبيه‌سازي.
Reset enecation: برنامه را reset مي‌كند. Pc با صفر راه‌اندازي مي‌شود و مقادير پيش فرض در ثبات SFR داخلي و RAM خارجي Load مي‌شود.
View: قابليت ديد پنجره‌هاي شبيه‌سازي را تبديل مي‌كند. ۹ پنجرة شبيه‌سازي وجود دارد كه در پائين شرح داده مي‌شود:

(SFRs) Special Function register: اين پنجره مقادير (SFRs) Special Function register را در فرمت Hex و فلگهاي ميكروكنترلر را نشان مي‌دهد.
اگر كه مي‌خواهيد مقادير ثباتها را تغيير دهيد روي edit box خودش دوبار كليك كنيد.
يك General write window نمايش داده مي‌شود كه به شما اجازه مي‌دهد تا با استفاده از Hex دسيمال يا Binمقادير را تغيير دهيد.
فلگهاي ميكروكنترلر نيز در پنجرة SFR مشاهده مي‌شود. رنگ آبي به معني مرحلة صفر و رنگ قرمز به معني مرحلة ۱ است. به منظور تغيير مقادير فلگها روي فلگهايي كه مي‌خواهيد دوبار كليك كنيد. يك پنجرة Write مشاهده مي‌شود براي اينكه شما بتوانيد به راحتي مقادير را تغيير دهيد.

Internal RAM
RAM داخلي، (هم بالاتر و هم پائين‌تر) را نمايش مي‌دهد.
روي هر كدام از خانه‌هاي اين پنجره دوبار كليك كنيد مي‌توانيد مقدار آن را در Write window تغيير دهيد.

External RAM
RAM خارجي را نمايش مي‌دهد.
Bit memory: حافظة بيتي را بصورت زير نشان مي‌دهد.
با دوبار كليك روي هر كدام از خانه‌ها با كمك General write window مي‌توانيد ارزش مقادير را تغيير دهيد. ستون سمت چپ آدرس بيتي مطلق و آدرس منطقي بايتي را نشان مي‌دهد. آدرس بيتي مطلق ۷ آدرس منطقي بايتي ۲۶۰H.7 دارد.

Active watch:
يكي از قوي‌ترين مشخصات سميولاتور ۲۰۰۳ Active watch window است. در طول شبيه‌سازي، به طور معمول كار بر روي تعدادي ثباتهاي بيتي كار مي‌كند. به جاي پيدا كردن آنها در پنجره‌هاي مختلف Active watch window اجازه مي‌دهد به كاربر تا تنها روي ثباتهاي بيتي انتخاب شده تمركز كند بطوري كه اينها به آساني قابل دسترسي هستند.
اين نه تنها مقادير ثباتهاي بيتي انتخاب شده را در ۳ فرمت نشان مي‌دهد بلكه به شما اجازه مي‌دهد تا سريعاً مقادير آنها را ويرايش كنيد.
در نوع uregiterad شما بيش از ۵ آيتم را نمي‌تواند به Active watch window اضافه كنيد. ولي اگر Unregister نباشد اين محدوديت وجود ندارد.

نوار ابزار دكمه بصورت زير است:
Add Item: اين گزينه به شما اجازه مي‌دهد تا آيتم‌ها را به Active watch window اضافه كنيد. هنگامي كه شما روي آن كليك مي‌كنيد Add to Active watch window نمايش داده مي‌شود.
type را از ۵ نوع موجود انتخاب كنيد: (SFR Register/SFR Bits / Internal RAM/Enternal RAM, Bit memory هنگامي كه شما تايپ را انتخاب مي‌كنيد آيتم‌هاي آن خود به خود در Name/Addres Load مي‌شود. آيتمي كه مي‌خواهيد تا اضافه كنيد را انتخاب و كليك Add Button را كليك كنيد و بعد Ok را بزنيد.

Remove itemo:
آيتمي كه مي‌خواهيد برداريد را انتخاب و اين دكمه را بزنيد تا آيتم انتخاب شده را حذف كند.
Delete all items:
اگر روي آن كليك كنيد همة آيتمها از ليست برداشته مي‌شود.
Execution status window:
اين پنجره اطلاعات مفيدي را در مورد اجراي شبيه‌سازي نشان مي‌دهد.
شبيه‌ساز ۲۰۰۳ ركورد ۱۰۰۰۰ دستورالعمل اجرا شده آخر را نگه مي‌دارد.
هنگامي كه دستورالعمل اجرا شده از ۱۰۰۰۰ تا بيشتر شد پاك مي‌شود.
با دو بار كليك روي Pc از Genral write window تقاضا مي‌كند براي ويرايش مقدار PC

Terminal window
Terminal window: سرعت باود رسيدن و انتقال را در ميان انتقال / رسيدن كاراكترها را بصورت زير نمايش مي‎دهد.
Trunsmit Byte:
اين به شما اجازه مي‎دهد بايتها را داخل Buff بنويسيد و انتقال سري را شبيه‎سازي كنيد. هنگامي كه شما اين دكمه را فشار دهيد بايتها را داخل پنجرة نمايش پورت سريال مي‎فرستيد.
مقادير كه مي‎خواهيد تا در Sbuff نوشته شود را بنويسيه و روي Send كليك كنيد تا انتقال سري شروع شود.
مشخصة قدرتمند ديگر شبيه‎ساز ۲۰۰۳ اينست كه به دقت رفتار ميكرو كنترلر را با Seting TI شبيه‎سازي مي‎كند و بطوري كه يك بايت كامل فرستاده خواهد شد. براساس سرعت باود انتخاب شده است.
توجه: انتقال سري جاري تنها هنگامي شبيه‎سازي خواهد شد كه مقدار را در SBUF بنويسيد و Send كنيد به پنجرة Serial port و يا بوسيلة دستور: Mov SBUF, A instruction

-Clear Transimt Buffer
هنگامي كه شما اين دكمه را كليك مي‎كنيد Transmit buffer پاك مي‎شود.
-Clear Receive Buffer
هرگاه يك بايت از SBUF با دستور Mov A, SBUT خوانده مي‎شود آن به receive Buffer منتقل مي‎شود.
هنگامي كه شما روي اين دكمه كليك مي‎كنيد receve buffer پاك مي‎شود.
-Manual Refresh
روي اين دكمه كليك كنيد تا بطور دستي پنجرة ترمينال بروز رساني شود.
Warnings
Warnings مواجه شده در طول شبيه‎سازي را نمايش مي‎دهد.

Toolbar آن بصورت زير است:
۱-Marnalrefresh
بطور دستي پنجره و warning را بروز رساني مي‎كند.

۲-Clear list
ليست Warning را پاك مي‎كند.

Errors
Error مواجه شده در طول شبيه سازي را نمايش مي‎دهد.

طول بار را بصورت زير است:
۱-Monnal Refrsh
پنجره error را بطور دستي بروزرساني مي‎كند.
۲-Clear list
ليست error را پاك مي‎كند.

Debugging
1-Single step(f2): يك دستور را اجرا مي‎كند.
۲-Bulk step(f3): قسمت بزرگي از دستورات را اجرا مي‎كند به صورت مشخص شده بوسيله Bulk step count در setting شبيه سازي.
۳-Time Base(f4)

اين يك مد debug كردن مفيد است كه دستورالعملها را براساس زمان اجرا مي‎كند.
هنگامي كه شما از اين مد استفاده مي‎كنيم سميولاتور ۲۰۰۳ مرحلة زمان را به كار مي‎برد همانطور كه شما در Setting شبيه سازي مشخص گرديد و محاسبه مي‎كند كه چه تعداد دستورالعمل را بايد اجرا كند و سپس آن تعداد دستورالعمل را اجرا مي‎كند.

۴-Skip instraction: از دستورالعمل جاري مي‎پرد و Pc را به دستورالعمل بعدي مي‎‏برد.
۵-Stop dqugging: ديباگ كردن را متوقف مي‎كند هنگامي كه Bulk step يا time based debugging در جريان است بدون منتظر شدن براي اينها تا كامل شود.
Deussembly؛

Disasrembly code
يكي از ويژگيهاي قدرتمند سميولاتور ۲۰۰۳ اينست كه به شما اجازه مي‎دهد تا عمل disass emble كه disassembled شامل خيلي اطلاعات مفيد مثل شمارة خط، آدرس، label، دستورالعمل و cycle كه بصورت زير نشان داده شده است.
اولين ستون براي break point است. هنگامي كه شما روي آن كليك مي‎كنيد. Break point راه اندازي مي‎شود اگر خط جاري به عنوان Break point علامت نخورده باشد. به عنوان break piont روش ديگري براي اضافه كردن Break point وجود دارد كه به طور خلاصه شرح داده خواهد شد.
Save code button

هنگامي كه شما روي اين دكمه كليك مي‎كنيد يك پنجره باز خواهد د كه از شما مي‎خواهد تا نام كامل فايل (همراه با مسير) را وارد كنيد كه كد تبديل شده به زبان اسمبلي ذخيره خواهد شد.
نام فايل را وارد ورودي Ok كليك كنيد تا كد تبديل شده به زبان اسمبلي ذخيره شود.
Ok button: هنگامي كه شما روي اين دكمه كليك كنيد تغييراتي كه شما در Break piont ايجاد كرديد ذخيره نمي‎شود و

Break Opints
هنگامي كه يك آدرس به عنوان Break point علامت مي‎خورد، در طول اجرا هنگامي كه با اين آدرس روبرو شد، اجرا متوقف مي‎شود. پنجرة Break point يك راه اضافه كردن و برداشتن Break point
همچنين با كمك پنجرة Disasemble نيز مي‎توانيد اين كار را انجام دهيد.
هنگامي كه شما روي اين كليك كنيد پنجرة Break point نمايش داده خواهد شد كه به شما اجازه مي‎دهد به آساني Add، Delete يا delete كنيد.
هنگامي كه شما روي Add كليك مي‎كنيد پنجرة Break point نشان داده خواهد شد. آدرس Break point (در Hex يا دسيمال) وارد كنيد و Ok را فشار دهيد تا آن آدرس به عنوان Break point علامت بخورد. Break point اضافه شده در ليست نشان داده خواهد شد.

هنگامي كه شما روي Ok در پنجره Break point كليك كنيد تغييراتي كه در Break point ايجاد كرديد ذخيره و پنجره بسته خواهد شد. هنگامي كه شما روي cancel كليك كنيد تغييراتي كه در ليست Break point ايجاد كرديد ذخيره نخواهد شد و پنجره بسته خواهد شد.