کامپیوتر و IT و اینترنتعلوم مهندسی

محیط برنامه نویسی BASCOM

صفحه 1:
محیط برنامه نویسی ‎BASCOM‏ هم نسم

صفحه 2:
معرفي منوهاي محیط ‎BASCOM‏ BOR ‏میکروکنترلرهاي‎

صفحه 3:
* ايجاد فايل جدید (660 6۳۵) با انتخاب این گزینه یک پنجره جدید که شما قادر به نوشتن برنامه در آن هستید ایجاد می شود . * باز کردن ‎OPEO EVE) di‏ ( با انتخاب این گزینه شما قادر به فراخوانی فایلی که در حافظه موجود است می باشید . 00009000 فايلها را بصورت استاندارد 0005800 ذخيره مى كند .بذ اتوانيد از ويرايشكرى مثل 07001002000900 براى نوشتن برنامه استفاده محيط انتقال دهيد. * بستن فایل هراعج 0۵۵6)) اين كزينه ينجره برنامه فعال را مى بندد . اكر در فايل تغييرى ايجاد كرده ايد ابتدا بايد قبل از بستن آن را ذخیره نمیید . * ذخیره فیل (۵8006 هم) با این گزینه شما قادر به ذخیره قایل بصورت 96962/71) در کامپیوتر خواهید بود . * ذخیره کردن بعنوان (68 ۵600 ها ) با این گزینه قادر خواهید بود فایل موجود را با نام دیگر ذخیره کنید.

صفحه 4:
ادامه منوی ۳۱۱۴ ... 9 نمایش پرینت فایل (۵60160 یس ها ) اين كزينه نشان مى دهد كه فايل متنى موجود برنامه در هنكام بر بود . * پرینت فا یل ‎(PUG bd)‏ با اين كزينه شما مى توانيد فايل موجود در برنامه را پرینت نمایید . * بستن یل هر 0۷۵۵6 ) ) با اين گزینه شما قادر خواهید بود از محیط (06069606000) خارج شوید ولی در صورتی که شما در برنامه تان تغییری داد ايد و أن را ذخيره نكرده ايد , پیش از خروج هشدار میدهد. به چه صورت خواهد

صفحه 5:
۰ ۵0۵۰۰0 با این گزینه شما می توانید دستکاری اخیرتان در برنامه را از بین ببرید . ۶ ۵00 601 با این گزینه شما می توانید دستکاری اخیرتان را که از بین برده بودید دوباره برگردانید , ۰ 600۵ ابا اين كزينه شما مى توانيد متن انتخاب شده را بریده و به محل جدیدی انتقال دهید . ۰ 006۷ 60 با ان گزینه شما می توانیدمتن انتخاب شده را کپی کرده و به محل جدیدی انقال دهید . ‎٠‏ ۵۵۲ 60 با اين گزینه شما می توانید متنی را که قبلا 6060"۷() یا (200) کرده بودید در محل مورد نظر بچسبانید .

صفحه 6:
۵0۸۵۵ ابا اين كزينه شما مى توانيد متنى را در برنامه تان جستجو كنيد . ۰ ۵۵ ۵۵ 60۳۲ با این گزینه شما می توانید متن مورد جستجو را دوباره جستجو نماید , ۶ 6۵6۵06۵ 0 با این گزینه شما می توانید متنی را جایگزین متن موجود در برنامه نمایید ‎PDO‏ متن مورد جستجو که بايد توسط متن دیگری جایگزین شود را ,0۲۳۲ 600000۷/66 متنی را كه بايد جايكزين شود تايب مى كنيم . 60۳۲ GOTO ٠ . ‏با این گزینه شما می توانید‌ستقیما و به سرعت به خط دلخواهى برويد‎ نی در قسمت ۳0 4۳00260 کنید و در قسمت

صفحه 7:
‎GOT TOGGLE 6‏ با این گزینه ما می فونید. قما می توانید د.جاهای تخآسبی از رنه مود فطل قماستا نان ری كنيد و به آنها توسط دستور دستور 0000000090806 0000100 ‎COI‏ دسترسى بيدا كنيد . ‎GOT GOTO GOOKDGRK *‏ با اين كزينه شما مى توانيد به نشائه هايى كه قبلا كذاشته ايد . ۰ ۵0۹۵۵۵۲۲ ‏با این گزینه شما می توانید متن انتخاب شده را به اندازه یک ۳6060/ به سمت راست منتقل کنید . ۶ ۵0۵۵۵ ۵0۲ ابا اين كزيئه شما مى توائيد متن انتخاب شده را به اندازه يك 410009 به سمت جب منتقل كنيد . ‎

صفحه 8:
PROGRAM ‏منوی‎ * 009000106 وموممهم ابا اين كزينه (يا كليد 02)) شما قادر به ترجمه برنامه به زبان ‎sald (COMPU) onthe‏ بود .برنامه شما با انتخاب اين گزینه بيش از 0000000/1,09© ذخيره خواهد شد و فايلهاى زير به انتخاب شما در 908101010000 0000010008 ‎slat OPMOD‏ خواهند 2 - 010 فايل باينرى كه مى تواند در ميكروكنترلر (00800808000) شود . - 000908.<)ا فايل 0009090000 که برای نرم افزار شبیه ساز (00(900(6) مورد نیاز است . - 2,00 فایل 000060۳ که برای نرم افزار 800000010 000008 مورد نياز است . 0 فایلگزارشی 206۷/۵ فايلهكرادسيما/إينتلكه برلئيعضئز لنولع +0)0008090900000:0) هط مورد ‎Sel‏ ‏-0088). فايلخطا كاء فقط در هنكام بسروز خطا لیجاد می‌شود. -080000.)ا دادم هاوكه بايد در (00000000 برنامه ريزوشود در ليزفايلنكهدارىميكودند .

صفحه 9:
منوی ۳8۵68۸۵۱ ... اگر خطایی در برنامه موجود باقد شما پیغام خطا را در یک کادر محاوره ای دریافت خواهید کرد و 6()06/1,6۶() متوقف ميشود. با کلیک بر روی هر کدام از انها به خطی که خطا در آن رخ داده پرش خواهید کرد . ‎PROGROD GYOTOX OLEOK *‏ بوسیله این گزینه برنمه شما برای نداشتن خطای املایی چک می شود .اگر خطایی وجود داشته باشد هیچ فایلی ایجاد نخواهد شد . ۶ هه همه ومههمهم از اين كزينه برای دیدن نتیجه 6(6(607//,60() ميتوان استفاده كرد . كزينه “0001:0004 0000008108 (000104100) را براى تعيين اينكه كدام فايلها بايد ايجاد شوند . فایلهایی که محتوای آنها قابل مشاهده اند ‎EL pe RBPORT BRROR‏ .

صفحه 10:
منوی ۳8۵68۸۵۱ ... ‎PROGROO GIWOLOTOR *‏ با فشردن کلید ۳6 یا این گزینه از منو ۳0۲6(69036060) شبیه ساز داخلی فعال خواهد شد .شما در برنامه با نوشتن كلمه كليدى 090008 قادر به شبيه سازی سری‌تر برنامه ميباشيد .در صورت تمایل شما می توانید از شبیه سازی های دیگر مانند 9۳000010 ‎)96(0٩‏ نیز استفاده كنيد . براى شبيه سازى فايلهاى ل008) و 0080 بايد ايجاد شده باشند . فايل .068 در برنامه شبيه سازى 0810000910 +0000 و فايل ل009) برای شبیه ساز داخلی مورد استفاده قرار مى كيرد . ‏۶ و0 ۵۵000 توسط اين گزینه یا کلید ۳6۴) پنجره محیط برنامه ریزی ظاهر خواهد شد .شما می توانید توسط این گزینه میکرو مورد نظر خود را (۳0۱6()003690) کنید .

صفحه 11:
۶ ۵00/۵۲۵6 2۵60100 توسط این گزینه یا کلیدهای / + 0/65 با بالا آوردن ,20600/100 ‎EOOLOTOR‏ مى توانيد از اين محيط براى نمايش داده ارسالى و دريافتى در ارتباط سریال ‎RG-COS‏ بین میکرو و کامپیوتر استفاده نمایید . ۶ 0661۵0066 ۱۵۵ توسط این گزینه می توانید کاراکترهای دلخواه خود را طراحی نمایید و بر روی ‎LOO‏ ‏نمایش دهید.

صفحه 12:
. TOOLS ‏منوی‎ ‎GRGPLIC COOCERTOR *‏ با کلیک بر روی ‎sl BROPWAC COMOERPOR brs spay se Ge!‏ تبدیل تصویر با پسوند *.0600) به تصویری با پسوند *.0090۳) که قابل نمایش بر روی 0 00۲090۳/۷/۱۵) است ظاهر می شود . فایل دلخواه خود را با پسوند *.96060) توسط دکمه 06060)را وارد کرده و سپس با دکمه 068 آنرا در کنار برنامه خود با پسوند .00/۷/۵ ۵6000 ) ۵080 ‎PALE)‏ ذخیره کنید .فایل تبدیل شده بصورت سیاه و سفید دوباره نمایش داده می شود و با كليك بر روى دكمه 006 مى توان از محيط خارج شد . فایل ذخیره شده با فراخوانی در برنامه قابل نمایش بر روی 260),ا گرافیکی است . انتخاب نوع 60),ا توسط قسمت 1,000 نجام می گیرد . فونت نوشتاری نیز می تواند ©*© يا ©*© ييكسل باشد . ‎

صفحه 13:
OPTION ‏منوى‎ ‎OPMOO COOPLER *‏ با اين منو شما مى توانيد كزينه های مختلف کامپایلر را طبق زیر اصلاح نمایید : ‎OPTMOD COOPER OVP"‏ انتخاب میکرو برای برنامه ریزی توسط اين گزینه انجام می شود . در صورتی که از دستور 0/8 در برنامه استفاده کرده اید به انتخاب میکرو توسط این گزینه نیازی نیست . ۰ 00۵6۵۴ ۵۵۵۵۵6 20۵0و با اين گزینه می توان فایل هایی که مایل به ایجاد آنها پس از کامپایل هستیم را انتخاب کرد . با انتخاب 4458 ‎ej GILE OPROWE‏ که حجم 6(6063() از مقدار حافظه ‎ROO‏ ۱/969 تجاوز کرد کامپایلر تولید 90300/10068)() می کند . ۰ 160,8۵۵ 00606۷۵6۵ 0621006 توسط این گزینه می توان پایه های مربوط به ارتباطات ‎GOO GPM‏ وا) 0/10368) را تعبین کرد . ‎

صفحه 14:
منوی 0۴۲۱۵۱۱ . 0۵۳۵0۵ 000۷۵6 00000010000۵ * ‏مانب نی‎ a pe ‏من‎ ee Sd (ODD FOTO) Ue ‏نرخ‎ جديد نين ۳0۲6300۷) انتخاب فرکانس کریستال استفاده شده است که می تواند فرگانس اختیاری نیز باشد . 0۵۵0۵ 0006۵۵ ۰ اين كزينه داراى قابليت هاى زير مى باشد : در قسمت 2100/0009 ‎LOO £8 LOO‏ را مشخص مى كنيم .كزينه 0000000 00009) مشخص مى كند (00)| بصورت © بيتى يا *6 بیتی کار مي کند ,توسط گزینه 606000( (000/6) تعیین می کنیم ‎JSP Sy Har LOO‏ کند یا 00(60) و گزینه 060000800000) (6(),| مشخص کننده درس ‎LOO‏ مد 006 است . صورت پیکره بندی هر یک از امکانات فوق در برنامه نيازى به تنظيم كردن آنها در اين منو 00۳/10۵ PROGREOOCR . ‏“در اين منو شما مى توانيد 000908000(070008) مورد نظر خود را انتخاب نمایید‎

صفحه 15:
معرفی محیط شبیه سازی (5۱۱۱۱/۲۵۲0) WOR Ga LAS 5 Se

صفحه 16:
با فشردن اين دكمه شبیه سازی آغاز می شود . ۶ 66066 باعث توقف موقت شبیه سازی می شود و با قشردن دکمه ‎ed DOD‏ سازی ادامه پیدا می کند . ‎OTOP ©‏ باعث توقف کامل شبیه سازی برنامه جاری می شود . ‏۰ 9۵۵0۵۵۵۵ با استفاده از این دکمه می توان برنامه را خط به خط اجرا نمود و هنگام فراخوانی توابع به داخل آنها رفته و مراحل اجراى آنها را بررسى اين كار را با فشردن كليد ©) نيز مى توانيد انجام دهيد .بعد از هر بار اجراى اين دستور شبيه سازى به حالت ‎et PBOGE‏ 333 ‎ ‎

صفحه 17:
نوار ابزار در این محیط ... * 0و هوجو اين دكمه شبیه دکمه قبلی است با اين تفاوت که در هنگام فراخوانی توابع به داخل ‎GOD‏ ‏8 نخواهید رفت . اين كار را مى توانيد با تشردن کلید 6 91/1۲ نیز انجام دهید . ۰ 80۰0 دکمه ‎PO‏ (110(00) شبیه سازی را تا خط انتخاب شده انجام میدهد و سپس به حالت 00۶ ميرود ( خط جاری باید شامل کدهای قابل اجرا باشد ) .

صفحه 18:
شبیه سازی سخت افزاری 6100۷/۳۵۵ 11۵6۵۵۵86 2 با کلیک بر روی این گزینه جنجره ای ظاهر می شود . که قسمت بالایی یک 00| مجازی می باشد که برای نشان دادن داده های فرستاده شده به ‎LOD‏ استفاده می شود . نوار 900را های قرمز رنگ پایین خروجی پورتها را نشان می دهد .با کلیک بر روی هر یک از 6000,| های سبز رنگ که بعنوان ورودی هستند وضعیت آن معکوس می شود و روشن شدن 60 بمنزله یک کردن پایهپورت است ریک صفحه کلید نیز تعبیه شده است که با دستور 60607۳666060[ ) در برنامهقابل خواندن می باشد . در ضمن مقدار آنالوگ نیز هم برای مقایسه کننده آنالوگ و هم برای کانال های مختلف (96(6) قابل اعمال است. همه این دکمه پنجره تبتها را با قادیر قبلی نمایش می دهد . مقدارهای نشان داده شده در اي پنجره هگزادسیمال می باشد که برای تغییر هر کدام از آنها روی خانه مربوطه کلیک کرده و مقدار جديد را وارد كنيد . ٩0 ۵ برای نمایش ثباتهای ‎NO‏ استفاده می شود . که مانند ) قابل مقدار دهی است .

صفحه 19:
نوار ابزار در این محیط ... ‎O®RWOLEG ۶‏ شما قادر به انتخاب متغیر با دو بار کلیک كردن در ستون 90۲/6969[,)969)() میباشید . با قشار دکمه 060600) در هنگام اجرای برنامه قادر به مشاهده مقدار جدید متغیر در برنامه خواهید بود . همجنين ميتوانيد مقدار هر متغير را توسط 0)81,0009) تغيير دهيد ‏ براى تماشاى يك متغير آرايه اى مى توانيد نام متغير همراه با انديس آنرا تايب كنيد و براى حذف هر سطر می توانید دکمه را6۶()+,ا۳08/) را فشار دهید . ‏۶ ۵۵0 این گزینه برای وارد كردن وضعيتى كه قرار است در خلال شبیه سازی ارزیابی شود مورد استفاده قرار می گیرد و هنگامی که وضعیت مورد نظر صحیح شد شبیه سازی در حالت ۶ قرار خواهد گرفت . حالت مورد نظر را در مکان مورد نظر تایپ نموده و دکمه 6000 را فشار دهید . هنگامیکه دکمه 00071۳۷-۵0۳0 فشار داده شود , وضعیت مورد نظر را مورد بازنگری قرار میدهد و میتوان ارزش آنرا تغییر داد . براى حذف هر وضعيت شما بايد آنرا انتخاب کرده و دکمه ‎٩06000000‏ را فشار دهید . ‎ ‎ ‎ ‎

صفحه 20:
۶ ۵00 متغیرهای محلی موجود در 90009) یا ‎POOCMOD‏ را نشان میدهد . البته ن متغيرى را به آن اضافه نموا ‎٠‏ 6م وضعيت ثبات وضعيت (8080) 9/1000400(09) ) را نشان میدهد . 960),/) ها را میتوان توسط کلیک بر روی 00 0/۷,/۱06) ها تغییر وضعیت داد . 10660165 ٠ ‏اين كزينه منابع وقفه را نشان ميدهد . هنكاميكه هيج 10908 برنامه نويسى نشده باشد , همه دكمه ها غير‎ ‏فعال خواهند بود و اكر 710908 نوشته شود , دكمه مربوط به آن فعال مى شود و با كليك بر روى هر‎ ‏کدام از دکمه ها , وقفه مربوطه اجرا مى شود . در ضمن ميتوان روى يك بايه خاص بالس نيز ايجاد‎ نمود .

صفحه 21:
معرفی محیط برنامه ریزی WOR ‏ميكروكنترلرهاي‎

صفحه 22:
ISP STK PROGRAMMER _پنجره ارسال برنامه به میکرو هنگامیکه ‎g2 HSS! ROD PROGROODER‏ شود ظاهر بگردد . * منوى ‎PLE‏ ‏۰ 02۳ : خروج از محیط برنامه ریزید 8940© : يككردزيايه هلوپورت لیگ زینه تنها زمانی‌می‌تولند لستفاده شود که از ‎Apt add GHOPLAR ELEOMROOIC PROCGROOECER‏ + ۶ منوی ۵۵600 0 006006 : پاککردن‌باقر . 2۸۵ 0800 0000| : بر كردزبافر با فايلو برنامه ريزىآندر حافظه ميكرو 6,۵ 0 8608© : ذخيره بافر در فایلدلخولد . بافر می‌تولند محتولی‌حافظه يك میکرو باشد . ۶ منوی 006 ۰ 1060۳۷ 00/6 : شناسایی‌میکرر متصلبد ۳00۵0۷0000000 .

صفحه 23:
مع الا الاك 27500 112 5 وا ... ۰ 016 ۲0 6066 06۲۲۳۵ : برنامه ریزی‌حتولب‌افر در حافظه 0 با ‎BEPROD‏ - ۰ 0666 0۷/۳0006100 60 : خولندن‌دادم حافظه کدی‌یکرر . ۰ 0۳۷/۵00 0/900 : خالویودن‌حافظه میکرو را مشخص‌می‌کند . + 00060 : پاک ردن‌محتولی‌حافظه برنامه و دادد 900000 . ۰ 000۲10۷ :لین‌گزینه محتولعب‌افر و آنچه که در میکرو برنامه ریزی‌شده لسترا مقایسه میک ند و در صورتتساویپیغام 00 003107۷) نمایش‌دادم می‌شود . ۰ 600600 60/0 : حافظه میکرو را پاککرده و برنامه مورد نظر را در ‎LOC Abd‏ برنامه ریزی‌می‌ک ند و سپس‌عمل 0001۲10۷() را باه صورت خودکار لنجام می‌دهد. : میکرو متصلبه (۳030)90300000090) را ریستمی‌کند .

صفحه 24:
معرفی محیط ‎TERMINAL EMULATOR‏ WOR ‏ميكروكنترلرهاي‎

صفحه 25:
TERMINAL EMULATOR *_ از اين محیط می توان برای نمایش داده ارسالی و دریفتی در ارتباط سریال 6۲69-000 بین ميكرو و كامييوتر استفاده نمود . © اطلاعاتى كه در اين محيط تايب مى شود به ميكرو ارسال و اطلاعاتى كه از بورت كامبيوتر دريافت مى شود دراين بنجره نمايش داده مى شود . هنگامیکه در برنامه از 10 ,909010 و یا 000 ,000110) استفاده می شود , يس از (008000902090) كردن برنامه درون ميكرو و اتصال آن به پورت سریال (۳6) , می توان داده های ارسالی توسط 6903۳() میکرو به بيرون را دریافت کرده و نمایش داد و از صحت و سقم آنها اطلاع یافت . همچنین اگر از دستوری مانند 1010060807 در برنامه استفاده شود , ميتوان داده خود را از طريق بنجره ر۳09001006» 6000 به میگرو ارسال نمود .توجه داشته باشید که از 0۹9/0۶ 000000 مشابه در میکرو و کامپیوتر استفاده تماید .

صفحه 26:
منوهای محیط ‎TERMINAL EMULATOR‏ . ‏میکند‎ DPLODO 1) WEXEH 4 pase HL PLE OPLOGO wee -S DPLOCO ‏صرفنظر کردن‌از‎ : ۳:۶ 08 ۳,۶ : خروج از برنامه 9000/9/۳0 . 0 00۲0100 : پنجرد ترمینالرا پاکمی‌کند . 08 : تنظیماتپورت(0)0) و دیگر0۳۳1000) ه توسط لین‌منو صورتمی ‎aes‏ ‎LOBLLE : MEROWOL OPBOLO® *‏ را از یبا بسته می‌کند .هنگمیکه فایل ‎LOG.‏ وجود نداشته باشد درخواستنامیب راءف یلگ زارش‌می‌ک ند .تمام لطلاعاتیکه در پنجره ,۳)9030106/ پرینتمی‌شود دلخلفایل00)را ثبتمی‌شود .

صفحه 27:
دستورات و توابع محیط برنامه نویسی ‎BASCOM‏

صفحه 28:
بدنه یک برنامه درمحیط ‎BASCOM‏ BOR ‏میکروکنترلرهاي‎

صفحه 29:
بدنه یک برنامه درمحیط 2۸۵۸50 ... معرفی میکرو 08 > محصههه برای شروع یک برنامه در محیط 60000000000 بت بايد ميكرو مورد نظر تعريف كردد . 0000) نام جيب مورد استفاده است كه مى تواتد Sh ‏یکی از موارد‎ ‘OPA OOOS ‘OPiS 008 ‘OPmLE 0۵8 ‏موی‎ ۵۶ ۱ 008 وحوهههج: ‎'PPODSCOES 0۵8‏ 0015 اك 00 ۵9ج ‎‘OPOOM ESE DOOS‏ OE eP ska” USP ska” WOOP she WOO she COP OM che” PRUE EP ska” PRISM Ah” ‏مج‎ cha” ۸۸ 2

صفحه 30:
بدنه یک برنامه درمحیط 2۸۵۸50 ... معرفی میکرو ... ۵090:۵909 0009 ‘OT9O20999 OOO$ ‘MEGH ‏وه‎ MOOS 10660 960 MOOS ‘OEGH 9 0008 ‏0۵۵6؛‎ ۵5 09 10۵60 ۵ 09 10۵60 69 09 ۱ ‏0۵۵0؛‎ 99 08 ‘OBGG 9E9 OOS ‘OECH 809 OCOS ‘EGG OF OCOS 0۵60 89 09 066۵ (CO 10 OEGH 109 HOWE OOOS مد حاط 0606 2۲ بارس 0 *دد. 06666 * - بارس ‎det *‏ 06606 * - ماسر ‎DO dP kt"‏ = ماخر ‎DID Oce dt‏ “= ماخر * د خط 006 * = ‎reefs‏ مج 096 2۰ بارس "سل 0900 2۲ ماس 0 “د حاط 00066 * - ارس ‎reef - * 00660006 es *‏

صفحه 31:
بدنه یک برنامه درمحیط 8۸۵۸50 ... کریستال برای مشخص کردن فرکانس کریستال استفاده شده برحسب هرتز از دستور زیر استفاده می نماییم . 06۷۵۵۷ 28 اکاس‌ک ریستا لاستفاده شده بر حسبهوتز است اين دستور را حتى براى زمانى كه با اسيلاتور داخلى ميكرو كار ميكنيد بنويسيد . 006۷۵۲۵ 2 ۵۵۵۵۵۵ ‏ون مت راب110‎ 006۲۷۵۲۵۷ 2 ۵000 COWL exterca vsv$ ORYVEPVOL = (OOOOO OWL ‏تلصوت ام‎

صفحه 32:
بدنه یک برنامه درمحیط 8۸۵۸50 ... اسمبلی و بیسیک ( اختیاری) زٍ برای نوشتن برنامه اسمبلی در بین برنامه بیسیک از دستور زیر استفاده می نماييم 09 ‎PGCCOBLY PROCGROOOE‏ ‎POOGOOS‏ ‏با دستور 9090(8) مى توان در برنامه شروح به نوشتن برنامه موردنظر اسمیلی کرده و پس از اتمام برنامه اسمبلى با دستور 0900070909005 برنامه اسمبلى را به بايان رساند و به نوشتن ادامه برنامه پرداخت . «مثال ‎ro ve Oye‏ ‎of wean © ee rece‏ مولعم ‎Leo ee‏ ‎Omer |‏ ۱ 0 ۳ مه ‎oP exert renee‏ لس ‎ol Bowe‏ ‎‘oral w ser pet‏ دلا

صفحه 33:
بدنه یک برنامه درمحیط 8۸۵۸50 ... یادداشت ( اختیاری) گاهی نیاز است یادداثثهایی برای اطلاعات بیشتر در برنامه اضافه شود . ‎RED 4 *‏ ياددلشتها و نوشته هاى بعد از اين دستور غير فعال بوده و در برنامه برای یادداشت به كار مى رود و کامپایل نخواهد شد و همجنين به رنگ سبز در مى أيند . همجنين مى توان از دو علامت براى شروع '( و از ') براى اتمام متن يادداشتى استفاده نماييد . dhe ROO hy sever wilt be cane Or ‏اسان رسمه تب‎ * due tart block vane)! ‘Phe wll ot be ove ‎Linck einai )‏ لجس

صفحه 34:
بدنه یک برنامه درمحیط 5۸500 ... آدرس شروع برنامه ریزی حافظه ‎۴۱۵5۱۲٩‏ ( اختیاری) گاهی نیاز است که برنامه خود را از آدرسی دلخواه در حافظه (۱,)969/۷,۸۲6(60() قرار دهید . ‎ROOEGTORT = BDORECES$‏ 5 مكانىاز حافظه لستكه برنامه )71,09 از لينأدرسدر حافظه ميكرو كنترلر , شروع به نوشته شدن‌می‌شود . در صورتی‌که ازلین‌دستور لستفلده نشود کامپایلر بسه طور خودکار آدرس2006008)راا" را در نظر می‌گیرد . dh ROODGTORT = &LEOOOS

صفحه 35:
بدنه یک برنامه درمحیط ‎BASCOM‏ ... تعيين كلاك ( اختیاری) با این دستور در بعضی از میکروهای سری 606۲ 00000 از جمله 0660005 با 0666665 به صورت نرم افزاری می توان کلاک سیستم را تغيبر داد .تقسيم كلاك بطور مثال برای کاهش مصرف تغذی استفاده می شود . مر 09۵001۵۵۵0 -() مقادیر معتبر بینلعداد 6 تا 460 می‌تولند بساشد , أكر از اين دستور استفاده تماييد , دستوراتى كه با کلاگ سیستم کار می کنند ممكن ت درست كار نكنقد . مثال

صفحه 36:
بدنه یک برنامه درمحیط 6010/1 885 ... پایان برنامه COO اين دستور در انتهاى برنامه قرار مى كيرد و اجراى برنامه را متوقف مى كند . با اين دستور تمام وقفه ها غير فعال شده و يك حلقه بى نهايت توليد و برنامه خاتمه مى يابد . dh © fed“ Wels” Sted thie COO “eed progr exerulicr cod disable ‏امه اه‎

صفحه 37:
اعداد و مثغیر ها و جداول ‎LOOKUP‏ BOR ‏میکروکنترلرهاي‎

صفحه 38:
اعداد و متغیر ها و جداول 1001۱ ديمانسيون متغيرها اين دستور بعد يك متغير را نشان ميدهد . با اين دستور مى توانيد متغيرهايى كه در برنامه به كار برده مى شوند تعريف كنيد . OAD ve BG [XROD/SROV/CROO ] das pre [BT beaten] [OOCRLOY] ‏نام متغیری که در بسرنامه بسکار بسرده ميشود . در صورتلستفاده از حافظه جانبی‌آنرا با‎ 208 ‏مشخصكنيد و 09080900 را زمانىإختيار كنيد كه مىخواهيد متغيرها را در حافظههم‎ 0 )0 . ‏قرار دهید و 0086000) متفیر مورد نظر را در 8)6016060) دلخلی‌جای‌میدهد‎ 0 ‏سور نوع دادم لستکه می‌تسولند طبقجدولزير‎ ‎BL OWHLE LOTRMOG OOK LOOG ۵۳۵۵۵۸ 0۷۵ 011“‏ - ادر صورت استفاده از متغير 9000/0009 , بیشترین طول آن نیز باید نوشته شود .گزینه اختیاری 000000017 متغير تعريف شده را بصورت +00010010080 در نظر میگیرد و فضایی را برای متغير در نظر نمى كيرد . ‏00 9010 به شما لجازه ميدهد كه متغيرتانرا در آدرسوكه ميخولهيد در حافظه ذخیره كنيد زمانوكه محلآدرسدهىإشغ ال اشد , اولينجاوخالودر حافظه لستفادم ميشود . ‎

صفحه 39:
اعداد و متغير ها و جداول5 01610 10... ديمانسيون متغيرها ... CMDR ROBB > OR AO ۳09990 TO GORE? BOPO?- 10 66666 0 DO 60656666 ‏6م900‎ ‎00 9.60 ‏وودم‎ FG-NID* LS ۵0۵ 685 © ‏حككه‎ ‎OVCIGOED 6 ۵ GIBOED 19 GING OOCIGOED 13 BING GIGMED SC ۵ GIGWED SC BING CYTES 0-CFS OOTO TYPE

صفحه 40:
اعداد و متغير ها و جداول5 01610 10... ديمانسيون متغيرها ... » مثل OW © OG OVP ‘OP canbe ۵ 1 OW © OC OYE ‘VDE reece Pow ١ - 066 OW K CG IODTEEGER OT CEO ‘Yours speviy the address oP he ‘vernble . Dke cent dkevecsizced variable will be pared Pier عدد 1/8" را پا علامت 1,8 و عدد ‎Ly OIMORY‏ علامت ,08) نشان دهيد 0 1۸ ۵ 2 00۵ 1۵ 84600000000000 حم 010 60 06 ۵ ۵ 890 00۵6۷

صفحه 41:
اعداد و متغیر ها و جداول۴ 10016... ستور 00۱157۲ برای تعریف یک ثابت از اين دستور استفاده می شود : ۵۵ ۷0۵0۸۲ 000610 ۷0۵0۲ 00061 ‎LOWS GYOBOL= EXPREGE1OO‏ ‎DODCOMGT 43 oi GYM@OL‏ مقدار عددىإنتسابيافته به , را9۷000) 0 رشته نتسابیفته به 6۳00 ر 96066600 میتولند عبارتی اشد که نتیجه آن‌بسه را(9۱/60606) لنتسابیابد . «مثل ‎"COWEN G = "*PEGT‏ © 000600 ۸ 0008 ©+(50*6) د ع ‎LOM‏

صفحه 42:
اعداد و متغير ها و جداول5 01610 1-0... دستور 1185م از اين دستور براى تغير نام متغير استفاده مى شود . ۰ منل ‎OIRECMOD BLABG PORTE.A‏ حال شما می توانید بجای ۳9.0 /۳)(6۹) از متغیر (0/10368)(/160) استفاده نمایید . ‎‘pe equ wih GET PORTO.‏ ۵ 9)۳)

صفحه 43:
اعداد و متغیر ها و جداول۴ 10016... دستور 1118© از اين دستور براى تبديل متغير عددى يا يك ثابت به كاراكتر استفاده مى شود . زمانى كه قصد دارید یک کاراکتر بر روی 260),| نمایش دهید از اين دستور می توانید استفاده نماتید . در صورتيكه از اين دستور به این صورت استفاده نمایید ( 0000 ) 0/۷/4۲ سا کاراکتر اسکی 6068() به پورت سربال فرستاده خواهد شد . ‎٠‏ مثل لاجو ليا ‎OW oO Ove‏ ‏جهن ییا ۵-0 ‎‘ed che (OS )‏ یت ‎bd WOX(«) ‘ed hex che (PC) ‎ed Cr (a1) ‘ted BGK ‏سوه‎ 06 )6(

صفحه 44:
اعداد و متغير ها و جداول 01610 10... دستور ‎INSTR‏ این دستورمحل و موقعیت یک زير رشته را در رشته دیگر مشخص می کند . ( ست , مجرت , حمو) ماك و0 ( سل )اوه ‎Our‏ عددی‌استکه مشخصک ننده محل(96(6009710) بر رشته لصلی (9/016۷100) مریساشد و زمانیکه زیر رشته مشخص‌شده در لصلی‌نباشد صفر بسرگردانده. می‌سود 9/0690۷0۰) نیز عددیداخولد استکه مکن‌تسروع جستجو زیر رشته در رشته لصلی‌را مشخص‌می‌کسند . در صورتیکه 070600۷7) قید نشود تماب رشته از بدا ‎ope‏ رشته لصلوتتها بايد از دوع رشقه باشد ولوزير رشته (5000051:08) ) متوائد رشقه و عدد as One OW 6 OG Gray * 1S, L Br Grieg" S D1 Op Br Oper * ‏ج)‎ = "Phe ott “Ge Op = “tow (G ,L ) sed Bp ‘phon ked © Op = too (PG L) ed Op ‘phoukl 9 xd

صفحه 45:
اعداد و متغير ها و جداول1001(۴... دستور ‎INCR‏ اين دستور یک واحد به متغیر عددى 00908) مى افزايد . AOR OOR ‏مثال‎ 0 * orart bop ۸ 0 مس 0 © لجا" © لجا Lowy Ded D>dD “repeat weil Dt greater ther CD

صفحه 46:
اعداد و متغير ها 5 ‎LOOKUPU slam‏ دستور 0 اين دستور متغیر ‎ODR‏ را یک واحد کم می کند . 00000۸ مثال سره 0 0۳0 929 ‏یی‎ uke to Over ® “ceorennat by ‏سدس‎ 02 0-0 kd “bd @ =P end

صفحه 47:
اعداد و متغیر ها و جداول۴ 10016... دستور ‎CHECKSUM‏ اين دستور مجموع کد دسیمال اسکي رشته 00۱)() را برمی گرداند که البته اگر مجموع کد اسکی رشته از عدد 2606 بیشتر شود مقدار 00 از مجموع کم می شود he ‏فا "دجوت د( © برد‎ * xv Oornde © = "rst" * ewok Ocrtble kel Okeke (0) “ted che (10 ) © = ‘rot ent“ emia vartobee bed Orchornn(8) ' ‏سل لجا‎ 468 )06/ 2۵65 - 666 (

صفحه 48:
اعداد و متغیر ها و جداول۴ 10016... ستور ]۱10۸۵5 این . دستور تمام حروف رشته مورد نظر را تبدیل به حروف کوچک می کند . (سسس سا سم تمام حروف رشته یمه کوچک شده و در رشته سور جای داده مى شود . uke Orv © Ov Grea * dB, L Ov Orrtery * (2 “© = “ele Dorkd Y= Lowe (6 ) “= belly workd kL end

صفحه 49:
اعداد و متغیر ها و جداول۴ 10016... دستور ‎UCASE‏ اين دستور تمام حروف رشته مورد نظر را تبیل به حروف بزرگ می کند . ‎Oowe (ove)‏ ۱[ تمام حروف رشته وحم بزرك شده وادر رشته همسجم جای داده می شود . *مثل ‎Ore © Ov Oren "IE, L Ov Oren * 12‏ ‎“ede Dorkd‏ = ©“ ‎Wexwe (») “b= WOLLO MORLO‏ = سا end

صفحه 50:
اعداد و متغير ها و جداول 01610 10... دستور 510111 با اين دستورقسمتى از يك رشته را جدا مى كنيم . ‎Ow = ROU (xl, a)‏ از سمث راست رشته 1و به تعداد كاراكتر » , رشته ای جدا شده و در رشته موس قرار مى كيرد . dhe Okv © Ov Ortey "IS ,L Ov Orrtery * US * 6 2 0 ‏د 1 (©, د )»ل د بك‎ 003 ‏نك لجا‎ end

صفحه 51:
اعداد و متغير ها و جداول5 01610 10... دستور ‎LEFT‏ با این نستور کاراکترهای سفت چپ یک رشته را به تعدادتعین شده جدا می کند . ‎Ow =LOPP (vad, a)‏ از سمت جب رشته چم به تعدادکارکتر « , رشه ای جداشده و در رشته ‎va‏ قرار مى كيرد . he Ore © Ov Gran" 06 , ‏بك‎ 05 * US "0 = "daxky ‎Leh», 8) “= dae‏ = رل ‏نك لطا ‏ودر (0, د )ماك بك ‎kD ‎end

صفحه 52:
اعداد و متغير ها 5 ‎LOOKUPU slam‏ دستور ‎LEN‏ ( ساسا 6 طول رشته ‎wire‏ در متغیر عددی 600903 قرار می گیرد . رشته ‎ge hed wrt‏ تواند 2676 بایت طول داشته باشد . توجه داشته بشید که فضای خالی (/00) 900600040)) خود یک کاراکتر به حساب می آید . ‎he‏ ‎Oro © @x Grey * ۵‏ ‎Oxo ® Oe Oe‏ ‎“OE "et‏ ‎Leal )‏ =

صفحه 53:
اعداد و متغير ها و جداول1001(۴.. دستور 17۲1 این دستور فضای خالی یکرشته را حذف می کند . ‎Ow =LPRIO( ory)‏ فضاى خالى رشته ببس برداشته می شود و رشته بدون فضای خالی در متغیر رشته ای ‎ADA vr‏ as ‏*مثل‎ ‎Oxo © Bs Grrr ۵ “G=" 0 bd LPRUD( =) 08۰ ۰۵-۰ 9 ‏الط‎ 0۲0)( 6 9 Cod

صفحه 54:
اعداد و متغیر ها و جداول۴ 10016... دستور ‎SWAP‏ GOCE vl , varQ ‏()جم و محتوای متغیر ()جم در متغیر‎ 38 98 var ‏ابا اجراى اين دستور محتوای متغیر‎ . ‏قرار می گیرد‎ ved My . ‏دو متغیر وس و 0و بایستی از یک نوع باشند‎ Sak gue Oro © 2 ‏وس 02 0 , ما‎ © =4:00=9 ‏ما وه‎ fetes 6006 0, ٩ ‘owop hew و طحا" © يا kd Od. “bx 0 Gud

صفحه 55:
اعداد و متغير ها و جداول5 01610 10... دستور (1/111 ابا اين دستور مى توان قسمتى از يك رشته را برداشت و يا قسمتى از يك رشته را با قسمتی از یک ارشته ديكر عوض کرد . ‎Ow = On(va GL] 41‏ ‎Onivar , Gill] = Oa ©‏ )- قسمتى از رشته وس با شروع از كاراكتر دام و طول ,ا برداشته شده و در متغير مه قرار می گیرد. ©- رشته هم در رشته سوم با شروع از کاراکتر ,9) ام و طول را قرار می گیرد . در صورت قید نکردن گزینه اختیاری را ,بیشترین طول در نظر گرفته می شود . مثل Oxo © Be XROO Gries IS , 1: 022۵۵ ‏مه‎ ‏ج)‎ 2 ۵ 1 = On(6,2,9) 000 لجا Cod

صفحه 56:
اعداد و متغير ها و جداول1001(۴.. دستور ]۴۵۲۸۵۲ دستور زیر تمام بیتها را به چپ یا راست منتقل می کند ولی تمام بیتها محفوظ هستند و هیچ بیتی بیرون فرستاده نمی شود . ‎ROPONE var LEEMRIGWD [ohFe]‏ ‎BULOOG, DOR AOPEGOR , OVINE E55 5st a2 yee Our‏ ‎as ISI AS og ee a BS ate LEP TIA IOUT‏ اشد تعداد جرخثربيتها را . در صورتفید نشدزمقدار یکدر نظر گرفته می‌شود . gue One ® Be Ope 6-20 ۱ ‎ee‏ © يا

صفحه 57:
اعداد و متغیر ها و جداول۴ 10016... دستور ‎SPACE‏ برای ایجاد فضای خالی ازاین دستور استفاده می شود . (») 6006 < و ‎X‏ تعداد ف ضای‌خا لیستکه بعنوان‌رشته در متغیر رشته یوم جایمی‌گیرد . «مثل Ore ۵ ‏سس وه‎ CS

صفحه 58:
اعداد و متغیر ها و جداول100168... ‎FORMAT gt‏ این دستور یک رشته عددی را شکل دهی می کند . ( او , مس ‎Porunt‏ = جور مور رشته لواستکه شکل‌دهی‌شود و نتایج در بوم قرار ممكسيرد .امن نوع شکل‌دهی‌لستر dhe Oke © Ov Grieg UD, 1 Ov ‏وس‎ ۰6-۰ 60 سم 5 5 ما ‎Porm‏ = 6 مسر با سوه سب "469 “دوا ‎bo‏ ‏موه ۵" 0006.50 و 0ب و

صفحه 59:
اعداد و متغير ها و جداول6 (10016... تابع ۴۱15۱۱16 . ‏روند کردن زشقه های عددی استفاده نی شود‎ oly AON ‏ع‎ Pores (are, Sek") ‏.حاص نو ا‎ agen ae ‏یه رشته موردنظر برلی‌شکلدهی و نتایج در‎ ‏دهراست علاسی حتما باید با طمت شره ع مود و حدلقی اد یکی را‎ ‏بعداز 2 دلشته بساشد. با لستفلام از # عدد روند موود و در صدوز تاستفاده از زوئدی‎ صورت دا «مثل 0 مت 0۶ اس 6 مه 69.60 6 ‎bd Post , #7 #( ۲ 0‏ 99 (# #6 , )سح لحا Gud

صفحه 60:
اعداد و متغیر ها و جداول 1001۱ جدول ۱۵0۵1۱ توسط این جدول می توان مقدار دلخواهی را از جدولی برگرداند. var = LOOK (vake , kibet ) var =D. Sea Nb yx pe ‏دلخولم لست دادم سركشتنىاز جدولدر‎ all ya stein bel ‏و مكار دادم بسركشتويه ترتيبفهايتا مىوائد 666و‎ Iya alae 5, sl Soa ‏وید و جدولرا‎ دادم دو ایتی داخل جدول بایستی با علامت 9 پایان یبد مثل مسد" 035 21 عرق 039 000 ‎xy‏ ‏(«0 , )ساسا 002 ‎kod bd (wry bed )‏ ( 0 ,۵ )سیسات مه نید esa MDOO% , HOOO%

صفحه 61:
اعداد و متغير ها و جداول5 01610 10... جدرل 100121125711 توسط اين جدول مى توان رشته دلخواهی را از جدولی برگرداند. ‎rer = LOOKDPE DR (che, bet )‏ ‎her J tee bbe‏ لندیس‌رشته دلخوله لست رشته برگشتتی‌از جدول‌در متغیر رشته لی ‎pote.‏ ور میک ‎hacked‏ هت جدولرا ببرمی‌گرداند . تعداد لندیس‌ه نهایتا می تولند ‎ ‎ ‎dhe ‎Ore © Be Gira , Ihe Bs Byer ‎‘bbe = D : © = boohuwmtr( he , Oct) ‎HG ۲ ‎Cod ‏م6 ‎"Daa “This”, “ts”, “atest‏

صفحه 62:
توابع ریاضی و محاسباتی BOR ‏میکروکنترلرهاي‎

صفحه 63:
از عملگرهای ریاضی روبرو می توانید در ۰ | علامت کوچکتر از oll BOGOOD bse . ‏ریاضی خود را انجام دهید‎ Jue) ‏عملياك‎ ts علامت بزرگتر از علامت بتوان علامت کوچکتر یا مساوی علامت بزرگتر یا مساوی علامت مخالف

صفحه 64:
عملگر های منطقی (0600962620) به قرار زیر است : معرفی 00000۳۵۵ ۳0 0۵ 00 00 "00 ket نماد 00 OR xXOR oor © ‏لع‎ ©

صفحه 65:
این دستور به معنای ریاضی 00036 < 0000۲ (قدرمطلق) است . ‎٠‏ مثل ‎Br Teter‏ 0 , بت ‎Bs‏ 9 57( ‎6-0 ‎‘pele‏ (0) ۵806 ع مر ‎HO ‏عم‎ 00 ‎ud

صفحه 66:
Darpt = xp (sowre) ‏ه21 متغيرىاز نوع داده 09,ا9/0(08) لست‎ Sed spur Ui ‏اه برلبر ببا و‎ ‎٠‏ مثل 0 0 ‏(0.0 )2 دكا ‎۲ ۱ ‎۷ 4 ‎X= Cxn( X) ‎bd X ed O.0OHIBOILE ‎Cod

صفحه 67:
Daret = LooflD (sree) ‏امه و سسحت هر دو‎ . 8 4 108 tareet tle ‏لگاریتم پایه (40 متغير يا ثابت جومت در‎ داده ‎ke Es‏ هستند . «مثال مه و0 ۵6 لت 02 ۳۵0 d= 0.00 GO = Lox (4) kd GO ۳ ۵020۷ GOO ۵9 <۱۵)۵0( * 0

صفحه 68:
توابع ریاضی و محاسبائی... تابع 106 اين دستور لكاريتم طبيعى يك داده از نوع +0,ا8/0(8) را برمى كرداند . = Loy (saree) ‏لگاریتم متغیر یا ثابت سیم از نوع داده لمح كرفته مى شود .ودر متغير بم قرار مى كيرد‎ ‎٠‏ مثل ‎۳90900۵

صفحه 69:
توابع رییاضی و محاسبانی... تابع 8۱۱0 این دستور یک عدد تصادفی برمی گرداند . R= ROO (bo) ‏بدست آمده و در متغیر مج قرار می گیرد . با هربار استفاده از اين دستور عدد مثبت تصادفی دیگرا‎ beet 9D ‏عد تصلافی ین‎ . ‏پدست خواهد مد‎ ‏هی بید یک عد مثبت پاش‎ ‎٠‏ مثل ماع )ا ‏جحاسة صم ‎pt‏ (00000) ادج ‎0

صفحه 70:
توابع ریاضی و محاسباتی. ‎SIN a‏ اين دستور سینوس ثابت یا متغیر میرح را در متغیر عم از نوع 910068 قرار می دهد . دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‎٠‏ مثل ‎X Be Credo‏ ‎Osta Os Grape ‎۳ 0069 ‎wie ‎= Gin (0) ‘Orta ‏(/م)مه ع‎ ‎Oo ‏و0۵۵‎

صفحه 71:
توابع ریاضی و محاسباتی. ‎COS a‏ این دستور کسینوس ثابت یا متغیر یمیت را در متغیر ‎vor‏ )3 نوع ,90000) قرار می دهد تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی اين دستور بایستی رادیان باشد . dhe X Bs ‏لب‎ ‎Ovvs Os Gterde )۳۶ 20 we = Ove (X) ‘Ones = ven (rI) Ove 0 0000099

صفحه 72:
توابع ریاضی و محاسبانی... تابع ‎TAN‏ ( )00 اين دستور تانژانت ثابت یا متغیر عصعحح را در متغیر عم از نوع ‎NE CUDDLE‏ می دهد . تمام دستورات مئلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . dhe X Os Grete Orca Bs terercfe ۳ ۵06666 wre = ras (0) ‘Ora = ‏(0*ماس‎ ‎rac 0.00009

صفحه 73:
= G11 smeve) ‏اين دستور سينوس هايبربوليك ثابت يا متغير سمحت را در متغیر چم از نوع 61060 قرا‎ . ‏می دهد . تمام دستورات مثلثاتى با راديان كار مى كنند و ورودى اين دستور بايستى راديان باشد‎ ‎٠‏ مثل ‎X Bs Gree‏ ‏له ع) ۷ ‎00.608

صفحه 74:
= COCO save) GADOLE £555) ver ‏اين دستور كسينوس هايبربوليك ثابت يا متغير سمح را در متغير‎ . ‏می دهد . تمام دستورات مثلثاتى با راديان كار مى كنند و ورودى اين دستور بايستى راديان باشد‎ * مثل ص6 <© ‎X‏ Y ‏اجه‎ ose 00 و < ۲

صفحه 75:
‎DOW seve) ۱‏ = ‎sia ly cud Sly‏ 0 8 اليك ثابت يا متغير موحت را در متغير عو از نوع 601000 اتى با راديان كار مى كنند و ورودى اين دستور بايستى راديان باشد . 0 ‎ ‎Y= Danks (00)

صفحه 76:
توابع رییاضی و محاسبائی... ‎ASIN af‏ = @PG( sree) این دستور آرکسینوس ‎vor se 1) wore sate Wal‏ از نوع /900069) قرار می د: ورودی تابع عددی بین -) و +0 می باشد . ‎dh ۶‏ ۲ < 0۰00

صفحه 77:
(مسمحد )00008 - اين دستور أرككسينوس ثابت يا متغير ممح را در متغير و از نوع 09/000309 قرار مى دهد . تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . « مثل = GOOG (x)

صفحه 78:
توابع ریاضی و محاسباتی. تابع ‎ATN‏ = @PO( srave et IA GIDBLE ‏این دستور آرک تانژانت ثابت یا متفیر یی را در متغیر -جم از نوع‎ . ‏دهد . تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد‎ « مثل

صفحه 79:
(طسه)060600-< برای تبدیل درجه به رادیان از اين دستوراستفاده می شود . ‎ste 2515)‏ به رادیان تبدیل می شود و در متغیر (2690) از نوع داده 9/10060/,68) قرار می گیرد ‎٠‏ مثل ‎<<) 02 Grete ‎V @e ‏ات‎ ‎deo ‎= Drw@red (X) ‎39 99

صفحه 80:
توابع ریاضی و محاسباتی... ‎RAD2DEG aks‏ =RODEOEO( kno) برای تبدیل رادیان به درجه از این دستوراستفاده می شود . راديان جه به درجه تبديل مى شود و در متغیر ؟090() از نوع داده 901068/,6۵) قرار می گیرد؛ ‎٠‏ مثل X (2 ‏اج‎ ات ۵ ۲ 5 ۵8 = 00 00 ©666. 6 ب

صفحه 81:
ROUND at =ROOOO( x) ‏متغیر یا داده از نوع 900068/۶) روند شده و در متغیر ؟90)() از نوع داده 9000)8/,6۶) قرا‎ . ‏می گیرد‎ ‏مثل‎ « (2.9) =O; Raen(-2.9) ‏(رمم‌سمه: معرهم)‎

صفحه 82:
تبدیل کدها و متغیرها به یکدیگر BOR ‏میکروکنترلرهاي‎

صفحه 83:
(مسمم) 060 ع وه این دستور اولین کاراکتر یک متغیر از نوع داده 90۳0۲10060) را به مقدار اسکی آن تبدیل می کند . * مد موه ۵ , سره ‎Ore ® Bx‏ "G= “OC 6 < 660 ‎‘waked OS‏ © يا ‎Cod

صفحه 84:
تبدیل کدها و متغیرها به یکدیگر ... دستور ‎HEX‏ Ow = ex (x) ‏را به مقدار هگزادسیمال‎ )0۱7۳۵ MOPEGER , DORD , LOWG ‏این دستور یک داده از نوع‎ . ‏تبدیل می کند‎ . ‏متغیر یا ثابت 6 در متغیر 6068() جای می گیرد‎ EX la » مثل ‎Oro 0۵ Os Ove , © 02 0‏ 0-09 ‎Lex(P)‏ ده ‎9 “20 walled ‎kd Wex(®) “20 wil kel wo ‎1

صفحه 85:
تبدیل کدها و متغیرها به یکدیگر ... دستور ۸۵۸۱ ۲۱:2۷ (م) دسا عون اين دستور یک داده هگزدسیمال را به مقدار عددی تبدیل می کند . مقدار عددی داده هگزدسیمال ) که می تواند , ‎LODGE , DORD , TWPEGER‏ ۳۵ ) باشد در متغیر 0090) جاى مى كيرد . he Dre © Ps ‏بت‎ , © Bx sirens’ "G= OO © = Wem (5) ‎UO ud be ted‏ © يا ‏مج ‎

صفحه 86:
تبدیل کدها و متغیرها به یکدیگر ... دستور ۱۷۸۵۸۲6۶50۲ Ow = DOKEGOO (CaO) ‏اين دستور متغير یا ثبت 2 عم را تبديل به مقدار (000) اش مى كند و در متغیر »مر جای‎ . ‏می دهد‎ «مثال Ore ® Os Ove ‏هو و‎ ۵ - ‏اسسه0‎ )0( bod © Gud ‘00 wil show

صفحه 87:
تبديل كدها و متغیرها به یکدیگر . دستور ‎MAKEDEC‏ (صو) 066060 < ممه برای تبدیل یک داده 00000) نوع 9۳۳۵ , 00000 , 100/8080965 به مقدار 00 4 از اين دستوراستفاده مى شوذ .مقدار دسیمال متغیر یا ثابت هس در متذیر 1 جای می ‎one‏ ‎One ® Ox Ove‏ 9 <ه © لجنا هرا ‎bed Br (B)‏ ‎Ockerer (0) ۱ 2 0‏ = © bed“ ‏م‎ ‎Cod

صفحه 88:
تبدیل کدها و متغیرها به یکدیگر ... دستور ‎MAKEINT‏ Oars = DOKEIMT (LEG , O60) ‏را به هم متصل مى كند و يك داده نوع (0000) يا 100900000 می‎ ‏بايت كم ارزش و 70909) بايت ير ارزش متغير دو بايتى-() را تشكيل مى‎ مرج( 899*0606806) ع مود dhe ‏تا ۵2 هو‎ ۱ eter =e 1= Ockers (© , () ١): ‏ممه- مبرومت‎ Gud

صفحه 89:
تبدیل کدها و متغیرها به یکدیگر ... دستور ‎STR‏ Our = GPR (X) . ‏ابا اين دستور مى توان يك متغير عددی ( 06) را به رشته (0000)) تبدیل کرد‎ dhe Ore ® Bx Be, G Ps GriniO 6-9 1 G= Gr (®) ‘oow te a orient HG ud

صفحه 90:
تبدیل کدها و متغیرها به یکدیگر ... دستور ‎VAL‏ ‎Ow = O@L (6 )‏ با اين دستور می توان یک رشته ()) را به متغیر عددی (0608)) تبدیل کرد . ‏«مثال ‎One © Os Ope , ۵ Os 0‏ ‎=e" ‘any O tea sirkny‏ ‎Oa) ‘prover sink to oR‏ = © ۲۷9 وميه جد لص ممت ‎Seay pnt‏ 0*6 - © ‎‘OPO fede‏ © عا ‎Gud

صفحه 91:
تبدیل کدها و متغیرها به یکدیگر ... ستور ‎STRING‏ Our = GPRWE (wa) ‏را با تعداد تکرار ب. تبدیل به رشته کرد‎ a ‏این دستور کد اسکی‎ ‏در صورت قرار دادن 260 مب یک رشته بطول 000 کارا‎ . (0) < قابل قبول نیست . در متغیر مر قرار می دهد تولید می شود و قرار دادن و he Ore 6 Be ‏“بست‎ ‎= Gren (GOS ) HG 00 cd

صفحه 92:
تبدیل کدها و متغیرها به یکدیگر ... ستور ‎BIN2GREY‏ ( موج) 61060606067 = ‎Owl‏ ‏متغیر مر که می تواند داده ای از نوع 06069 , ‎TOTEGER , OY VE‏ , 0000 باشد به کد گری تبدیل شده و در متغیر 6060() قرار می گیرد . #مثل ‎Ox ® Or Ce‏ © 0 2 6 06 06 © 5 6 6 15 0 (5) بصوضرو لد ... ‎Went‏ ‎God‏

صفحه 93:
تبدیل کدها و متغیرها به یکدیگر ... ستور 6۳۴۷28۱0۱ ‎Owl = wevObia (Ore )‏ كد كرى ‎ve‏ به مقدار باینری تبدیل شده و در متغیر وس كه مى تواند داده ای از نوع ۵ ۷ , 10/۳0090908 , 200300() باشد قرار می گیرد . ‏#مثل ‎Ox ® Or Ce‏ ‎2 0 © ‎. ‏(0)ماعموت‎ 0 5 6 FOF Sasa ‎Went ‎God

صفحه 94:
رجیسترها و آدرس های حافظه BOR ‏میکروکنترلرهاي‎

صفحه 95:
رجیستر‌ها و آدرس های حافظه... تمام میکروهای 9608) دارای 20 رجیستر 0 بیتی (0۲60- 0300 ) همه منظوره در 00000 خود هستند . ‎ROOLGE) , REGGE) & ROMOGO) ss jase y‏ با 6600 ر ‎YD Heb SSL MO ye M4 IKE ROO(LOO) b ROP (DCO)‏ رامی‌دهلدار

صفحه 96:
وه سود ‎Get‏ توسط این دستور می توان یک بیت را یک کرد . میتواند يكبيتو يا يكج:00) مانند ‎2A: PORTO.‏ عی() متغیریاز نوع دادم ۵ ۵ , 10/۳0 , 0۳/۳۵ باشد . ۷( برلی0۳/۳6) می‌تولند 0 تا 0 تا 6) برلی 006080 و برلی006()رامی‌تولند 4۵ تا 00 باشد . «مثال ‎Oxo Bd Bs Ot, BO Bs Ope ,O Os Oord , b Os Lown‏ ‎‘set bi (oP port B‏ شوه وه ‏عم با 0 ‎Get‏ ‎Ge CO. ‘eet ba oP var © ‎۵6 ‘set highest bit oF word ‏۵ و 0۵ ود 4اه

صفحه 97:
رجیسترها و آدرس های حافظه... دستور ‎TOGGLE‏ این دستور مقدار منطقی یک پایه یا یک بیت را معکوس می کند . ‎POBEBLE probit‏ ‎PID‏ می‌تولند یک90۳0۲) مانند ‎MLS 5 PORTO.‏ 2 ube One OBR Bs Byte Cocbig Picb.O = ruiput ‘port. ‏نجه نحص من جز‎ 000 porb.D ‘ponte ere اجه ) ‎(DOD ‘wait Por‏ ده ممه اه ارم <) عببو

صفحه 98:
توسط این دستور می توان یک بیت را صفر کرد . 8۵6 pialba ۵۵۵6 ‏ون‎ ‏می‌تولند یکبیتو یا یکط۴0) مانند ,3600369 باشدو مم() متغیریاز نوع دادم‎ 0 ‏ب‌اشد . ۷( برلی0۷۳/۳) می‌تولند 0 تا‎ )0۷۳۵۶ , 100/۵060 , 0۵ ۵ . ‏تا 08 بسرلی 0000800 و بسرلی0068()را می‌تولند 0) تا 00 بساشد‎ 0 , ۶ «مثال ‎Orv O0 2 6۰ , )09 62 6 , ٩ 02 eteyer‏ ‎revet Port. ‘reset bi O oF port ®‏ ‎revet (BA ‘ba vorbleres‏ هط ‎reset 00.0 ‘reset ba O oP var‏ ‎bit oF 1‏ ها سس سس

صفحه 99:
رجیسترها و آدرس های حافظه... ‎BITWAIT 5354‏ 9۲۳۹۵۸۵/۲۲ ۱, 0:1١ 4۲6۵0 ‏توسط اين دستور اجراى برنامه تا زمانى كه بيت ا, () - )509/15 با ( 0 ع)‎ ‏شود در خط جاری متوقف مى ماند .در صورت 10080009 شدن شرايط , اجراى برنامه از خط‎ ‏می‎ VP ASML PORNO ‏بعد ادامه مى يابد . ا مى تواند يك بيت رجيستر داخلى مانند‎ . ‏اتوائد بين اعداد صفر تا 78 تغيير كند‎ dhe Ore © Bs Bt Barc @ , Get “writ wail Bit B is Get ] , reset ‘ urat uci Bit P oF Port ® is D

صفحه 100:
رجیسترها و آدرس های حافظه... دستور ۳۴۴۷ Ow = OP EEK (kere) ‏از این دستور برای برگرداندن بایتی که در ادرسی از حافظه کدی ذخیره شده است استفاده می‎ ‏کنیم .با اين دستور می توانید به رجیسترهای داخلی نیز دسترسى بيدا كنيد . البته با این دستور نمی‎ توان در حافظه داخلی چیزی نوشت . dhe Ore 1 Be “tatecer , BI Be Byte or 1= 0 Te Od 000 م صصص ©6 بلس ' )1( ‎Peek‏ = 0 kel Lex (Hal) * cpt byte Pro tered ww (XD-r811) rat

صفحه 101:
رجیسترها و آدرس های حافظه... دستور ۳۴۴۱۲۲ Our = CPCECWH (actress) ) ۱,9۵۷, )00900( ‏با اين دستور می توان بایت ذخیره شده در صفحه بالای حافظه کدی‎ . ‏میکرو 0690009006) یا دیگر میکروها که دارای 06 4 حافظه است را خواند‎ . ‏آدرس‌حافظه و محتولی‌آدرس‌در متغیر یکبسایت!)0() قرار می‌گیرد‎ 22000000905 (0 )سیم() محتولعاولینب ایتحافظه ب 000 6۲ را برمی‌گرداند.

صفحه 102:
رجیسترها و آدرس های حافظه... دستور ]۱۵0۸۵۸۵۲0 مر سس ۵۵۵0۵ با این دستور می توانید آدرس یک متغیر را در یک جفت رجیستر ذخیره کنید . () متغیری است که آدرس آ در متغيرهاى دوبايتى ‎),٠/,1,‏ ذخيره مى شود و ‎RBG‏ رجیسترهای ,1 ,6,۷( هستند , این دستور جز دستورات اسمبلی است و برای کمک به برنامه نویسان اضافه شده است . dhe Ore © Ov Grey B Ov Ope ‏م‎ ‏عاديا‎ 3 ‘bad addres tate REO und ROP ۲۱ ‏سر‎ , X ‏مها اه سای لجسا‎ )3/6۵۲ rate 066: ) ‏سس‎ سس امس ‎Get‏

صفحه 103:
رجیسترها و آدرس های حافظه... دستور ‎OUT‏ 00 ‏لبم‎ , cher ‏توسط این دستور می توان یک بایت به یک پورت سخت افزاری یا آدرس حافظه داخلی /خارجی‎ . ‏ارسال کرد‎ ‎dress) 4G Ockee‏ که می‌تولند بین ,|" ۳)۳6۳6۲) - را (1) باشد فرستادم می‌شود . دستور /2)0) می‌تولند در تمام مکانهای‌حافظه ‎WOR‏ بسنویسد . توجهه كنيد كه برلى سل ی 0(05()() تعریفمی‌شود . ‏۰ مئل ‎One © Os Oye‏ ‎Ou &LOOOO , 4 ‘secd (to the datcbus ((D — dP) ot okbess OOOO‏ ‎Gud‏

صفحه 104:
رجیسترها و آدرس های حافظه... دستور ‎INP‏ (مسللم) 10 توسط این دستور می توان یک بایت از پورت سخت افزاری یا آدرس حافظه داخلی بخارجی خواند . محتوای آدرس حمسی که می تواند بین را" ‎PEPE‏ — را01) باشد خوانده شده و در متغیر جر قرار مى كيرد .دستور 10002 می تواند از تمام مکانهای حافظه ‎)96(0٩‏ بخواند . » مثل ‎Ove‏ عه ۵ م۳ ‏0 ‏0000 مسب ‎0 ‎Cot

صفحه 105:
رجیسترها و آدرس های حافظه... دستور ۳۴۴۶۱ (سسلم) ۳ - و این دستور محتوای یک رجیستر را برمی گرداند . و4( آدرس رجیسترهایم 0۷ - ‎)٩0(‏ لستکه بین () - 20 می‌ب‌اشد ,محتولورجیستر ‎ver ke‏ جایمی‌گیرد . دستور ۳09690 ( ) فقط می‌تولند محتولعرجیسترها را بخولند ولی۳10060 ) می‌تولند از تمام مکانهای‌حافظه بخولند . dhe 0 ۵ Be Ove ®=PCCK (D) — ‘retwra tee Prot byte oP the tetera wrewory (RO) Berd

صفحه 106:
رجیسترها و آدرس های حافظه... دستور ۴۵۷۴ POKE address , vchue با اين دستور می توانیم یک بایت داده را در یکی از رجیسترها بنویسیم . مقدار متغير يا ثابت يك بايتى معث در أدرس 4/4 كه بين 0 - 0© براى رجیسترهای - (30) است نوشته می شود . ‎٠‏ مثل Poke 1, S ‘write S to RO Gud

صفحه 107:
رجیسترها و آدرس های حافظه... دستور ]۱۷۸۵۲۳۲ ( سم ۵-0606 این دستور آدزس یک متغبر را در مکان حافظه بر می گرداند. آدرس متغیر وم در مکان حافظه بدست آمده و در متغیر عجرر قرار مى كيرد . dhe Ore ۵ ‏ملاع‎ Gye Bt &VIOO , 1 Be Ietecer , D Be Dord © = Op (b) tA Wex(() ‘td & OOOO مج

صفحه 108:
دستورالعملهای حلقه و BOR ‏میکروکنترلرهاي‎ ع 9

صفحه 109:
دستورالعملهای حلقه و پرش ... دستورالعمل 0۳[ و 607۲0 اسلا 0160) اس 1006 با اين دستورات مى توان به برجسب إاا يرش كرد .برجسب إسادا بايد با علامت : ‎(olen)‏ ‏بايان يابد و مى توائد نا 060 كاركتر طول داشته باشد . به خاطر داشته باشید زمانیکه از دول هم نام استفاده شود كامبايلر به شما برب مى دهد . دستور جمعجیم برای برگشت از برچسب وجود ندارد . ‎٠‏ مثل ما ه جات لت اس لس ‎٩6‏ :6 © مسا 0+ © - © 0۵ 1۳ ‎ow stort ‘Or sop stort‏ ‎Cod F ‘Ober PF‏ Crud

صفحه 110:
دستورالعملهای حلقه و پرش ... دستورالعمل 120-1001 فرم کلی دستورات ۱/606۲ ... (06) بصورت زیر می باشد . 0 سود [ سوت 00۲ ] ۱۱۵۵۵ دستورالعمل مرسمه تا زمانی که بمهیمسیمورس دارای ارزش ۷0060 یا غیر صفر باشد تکرار خواهد شد .بنابراين اين توح جلف هل ابا ‎OS‏ ای ود ‎SE Aiba ules OO LOOP,‏ با 000 090610 مى توان از درون حلقه خارج شد و اجرای برنامه در از حلقه ا: ‎٠»‏ مثل ‎Oxo O Ov Over‏ ‎Ov ‘rant the boy‏ 0 میا 0+ 2-0 © ‎kd ® ‘ed‏ ‎Lowy Deal © = 0 ‘repeat weil 0 < 0‏ ۷

صفحه 111:
دستورالعملهای حلقه و پرش دستورالعمل ۳۲۵۲-۱۱۲2۲ فرم کلی دستورات 00020 .. ۳006) بصورت زير می باشد . POR va > ‏سس‎ PO ‏نمی‎ ]9 ۵ ۵0۲0۵ [ سوت OEXT var SOLAS tye ‏مقدار سایانی‌استو هو دو‎ eum SL A ibe ott AS Seale SS Ss Oar ‎pla Lg‏ عندو بت . سلا( تار ‎Late ape AS a ag | jp 6a‏ مقفیساشد , وجود سام جب بعد ‎Sel LI OEXT 5‏ ‏مثال ‎ra © Os Wyre , OM Ow ‏سجحف! 0 0 تمر‎ ‎Por D = 0PM Ory @ ‎bd "her ‏نس‎ "© ‎Orn d ‎Por O= A Po-6 Op 1 ‎bd he ‏موه‎ "0 ‎Wen ‎Cor O1= AP AD ‎bod her a bd" Dd ‎Ort

صفحه 112:
دستورالعملهای حلقه و پرش ... دستور العمل ۴۱۱۲ ۱۷۷۳۲۱۱۲-۱۷۷ ۱ ون ‎oCoo‏ ‏دستور ‎LEE he Derd Jal‏ یک حلقه تکرار می دهد که تکرار این حلقه تا زمانی ادامه می یبد که عبارت بکاربرده شده ‎POLOE | tps‏ کند و یا مقدار صفر ‎ers‏ | دستورالعمل جنر بصورت ورود به حلقهبه شرط مى باشد , بنابراين كفا( ممكن است در خاقهایی اصلًاجرانشود , بخش اهمد تا رقتی که حاصل بجر صفر يا ‎POLO‏ نشده است تکرار خواهد شد . مثل Oxv © Ov ‏سره‎ ‎0-0 ‎Ober ® <0 ۲۷9 ها Orval

صفحه 113:
در كليه حالتهاى زير عبارت »همح مى تواند یک دستورالعمل ساده یا چند دستورالعمل مرکب باشد . OD ‏حالت‎ ها و ۱ دستورالعمل یبد زمانی اجرا می شود که ‎PROC 253) 62 expression Ske‏ باشد . dale AP @xpressica Vheo ‏مجم‎ ‎Cle ‏تا‎ ‎Cod IF ‏درصورتى كه عبارت بندد بوب داراى ارزش 1080009 باشد دستو العمل اسم اجرا‎ . ‏خواهد شد , در غير اين صورت دستورالعمل سره اجرا می شود‎

صفحه 114:
1۳ ‏اسسسو‎ Pkea ‏اسر‎ ‏سسسب] سا‎ ۱۳[ ae) be ‏سس‎ ‎Cond ‏درصورتى كه عبارت [»>دد وب دارای ارزش۳4۹0()9/ باشد دستور العمل سب اجرا‎ ‏عبارت اختیاری‎ ly POLOE G5) GU! expression She 4S hy pe 3, ‏خواهد شد‎ ‏ارزش <00۹000/ باشد دستورالعمل مرسمه اجرا می شود و در غير اين‎ SL) expression . ‏اجرا خواهد شد‎ state ell sit ‏صورت‎ ‎. ‏همچنین با دستور *10 می توان صفر یا یک بودن یک بیت از یک متغیر را امتحان کرد‎ ۱

صفحه 115:
دستورالعملهای حلقه و پرش ‎nw‏ ‏دستورالعمل 1۴ ... Ore Ow Os Oye , Ide Os Bye “Icke = (1 1۳ Own. dx = Vike Get porb.O .... ها عه ۵ مه © 2 © دا 40 < ©) حك اجه ها موم عالطا له "bd “ thio wal cever be exerted Cod &

صفحه 116:
دستورالعملهای حلقه و پرش ... دستورالعمل ]6۸۵5 اگر متفیر ۱090) با مقدار )بیع برابر باشد )سس اجرا می شود و سپس اجرای برنامه بعد از بحاصو لمح ادامه می یابد . در غیر اینصورت اگر متغیر -وم با مقدار ‎tee‏ برابر نباشد ولی با مقدار ی برابر باشد سیب اجرا می شود و سپس اجرای برنامه بعد از بسطعه لس ادامه می یاید. و نهایتا اگر متغیر عومر با هیچکدام از مقادیر 0ب و (6ه برابر نباشد ,سوب اجرا می شود و سپس اجرای برنامه بعد از بسح ‎ward‏ ادامه می یابد . شما می توانید به صورتهای زیر نیز متغیر را امتحان کنید : اگر متغیر موردنظر بزرگتر از 63 باشد . ۵< سوه و یا مى توان محدوده ای را برای امتحان کردن در نظر كرفت : اگر متغیر موردنظر بين © تا © باشد . و 0

صفحه 117:
دستورالعملهای حلقه و پرش ‎nw‏ ‏دستورالعمل ‎CASE....‏

صفحه 118:
دستورالعملهای حلقه و پرش ... دستور ۴21۲ ابا اين دستور مى توانيد فقط از يك ساختار يا حلقه خارج شويد و ادامه برنامه را بعد از ساختار يا حلقه ادامه دهيد . ‎EXIT COR‏ XI? OO EXIT OULE EXIT GOB EXIT POOOMOD Ov 0 - © +0 AE © = (OO Phew Gxt Ov Cod FE boo ud

صفحه 119:
دستورالعملهای حلقه و يرش دستور العمل ۶ ۷۸۵۱۱ 0۱ هب ها معتلقیپزش کرد OO sxx [CONC] [BOGOO] kek! [bt] SLOBELM 522s PORTO ss 90۳05 ‏متغیر مورد نظر برلیمتحان‌شدن‌که می‌تولند‎ )(«- . ‏و ..برچبب‌هیی‌هتند که بسا توجه به مقدار 600068 بسه نها پرش‌می‌شود‎ ]/)000/0 با این دستور با توجه به مقدار متغیر می توان به توابع ue Oxo X Dw Dyer xed OW X @emds LUE, aoe web BO x= OW X Bem VAAL, LORE ‏سنا م مجعو‎ LAL ار oor X bx we Oat bd

صفحه 120:
ایجاد تاخیر در برنامه BOR ‏میکروکنترلرهاي‎

صفحه 121:
ایجاد تاخیر در برنامه ... دستور ۲۱۱۴۱۸۵۷ این دستور برای مدت کوتاهی به مقدار 0000000 میکرو ثانیه در اجرای برنامه تاخیر ایجاد می کند . ۰ مثل ‎MELOY “Dot Por hardware ty be reody‏

صفحه 122:
ایجاد تاخیر در برنامه . دستور ۱۷۸۵۱۲۸5 برای ایجاد تاخیر در برنامه از اين دستور می شود . سس ‎OO‏ ‏اجرای برنامه به مدت !»حدس جم ميكرو ثانيه متوقف مى شود .يس از سپری شدن زمان اندم أجراى برنامة از.خط بعد لاله مى د أب ‎Ge ore IS Din‏ )= باشد دستورات تاخیری زمان دقیق را به شما نمی دهد . برای بدست آوردن زمان دقیق از تايمرها استفاده كنيد dhe © Octrs ID "ed “BOECOO Cod

صفحه 123:
ایجاد تاخیر در برنامه ... دستور ۱۷۷۸۵۱۲۲۳5 برای ایجاد تاخیر در برنامه از اين دستور می شود . ل«مصمصاب 0۵ اجراى برنامه به مدت لح ميلى ثانيه متوقف مى شود .يس از سيرى شدن زمان مشخص شده اجرای برنامه از خط بعد ادامه می یابد. لمسسعا() می تواند عددی بین ()- 0 6) باشد . dhe Dats 1D 000 Gud

صفحه 124:
ایجاد تاخیر در برنامه ... ‎WAITus 5544‏ برای ایجاد تاخیر در برنامه از اين دستور می شود . اه ۵0۵۲ اجرای برنامه به مدت لح ثانيه متوقف مى شود .بس از سپری شدن زمان مشخص شده اجرای برنامه از خط بعد ادامه می یابد. 9 ‏با‎ 000 Gud

صفحه 125:
زیر برنامه و تابع ميكروكنترلرهاي +0900

صفحه 126:
زير برنامه و تأیع ... معرفی تابع ۴۱۱۱6۲۱۵۱ ۴61۵۴۶ از اين دستور برای معرفی تابع در ابتدای برنامه استفاده می شود . زمانی که بخواهیم تابعی را معرفی یم بارستی یم معرفی شد: بشد . در صوزت انففده از کم می باستی یک نله بوگرفانه شود . 0۵ ۳۵۵۵/۱۷۵۵ ۵۵/۲) 0۷۱۵/۵۷۵0 ‏سره‎ Ov wre 2 ‏نام تابع موردنظر لست لنتقالاده بصورتر/(0۱۳)(6) بساعثمی‌شود که یککپیاز متغیر بسه‎ 10009“ ‏فسرستادم شود و در محتولیآن‌هیچ تسغیریلیجاد نشود ,ولی‌در حاللتا1(۱:/)1100)0) آدرس‌متغیر ارسانلو تغیرلتدر‎ ‏لثر می‌گذارد برگشتیبر صورتلنجام علیاتبر روینبا مقدار اولیه خود برلبر نخولهد بود . در‎ 7610 ‏صور حدم لستفادم از گزینه [,07010201/00176(00)] بمصورتپیشف رض‌داده ببصورت‎ ‏فسرستاده می‌شود. ۱(" نوع داد ارسانلشده و 2و نوع دادم بركشتىلست كه هر دو می‌تسولنند دادم‎ . ‏شرع ۵00۲00 ۲۵۵۵, ۵۵۵۵ ,۵/۵۵۵0 0۷/۱۵ ب‌شند‎

صفحه 127:
زير برنامه و تأیع ... معرفی تابع ۴۱۱۱۲۱۵۱۱ ‎...DECLARE‏ » مثل می شود و هیچ وا شود 5 شود تج ری ‎Scores AL OVEDHOMOD of clade‏ 0۸ و 6070۲۲00 است و مقدار برگشتی از نوع 710۱68606068 است که در متغیر قرار می گیرد . شما می توانید در محدوده تابع یک متغیر محلی تعریف کنید .

صفحه 128:
زير برنامه و تأیع ... ‎DECLARE FUNCTION@H (4‏ ... ها بط ‎De Grreny‏ © وس 0 ‎٩‏ )م0 معط سبحت و0 ,00و ‎Le‏ تسا ۳

صفحه 129:
زير برنامه و تأیع ... معرفی 535 :)44 ‎DECLARE SUB‏ از این دنتور براق معرفی زیر بزنامه انتفاده می شود . زير بزنامه اف که قصد فر‌اخوانی آن زا دار بایستی در ابتدای برنامه یا حداقل قبل از فراخوانی آن معرفی شده باشد . رس ‎POLHRE GOO POON ( [PVYROCIOYOOL] vr we‏ زیر برنامه برخلاف تابع مقداری برنمی گرداند ردر زمان ارسال داده بصورت ‎Gas) DWRBP‏ داده به زیر بر فرستاده می شود و در محتوای آن تغیر ایجاد می شود .ولی در حالت ,ل0۷/)(60) یک کپی از داده فرستاده مى شود به هیچ وجه در محتوای آن تغیری ایجاد ‎DBO. 254 od‏ نام زیربرنامه و (6()() نام متغیر ارسالی به زیر برنامه و 0۷۳۵ نوع آن است که می تواندداده نوع ‎OYE, WHOGGR, OCORO OTRO‏ برای نوشتن زیر برنامه ابتدا نام آنرا توسط دستور زیر تعریف کرده و سپس شروع به نوشتن زیربرنامه می کنیم . [( ام ) ] سس ‎DD‏ 000 نام زیربرنمه که بساید توسط دستور سجارب0) معرفی‌شده بساشد و بسا دستور رف این

صفحه 130:
زير برنامه و تابع ‎oor‏ ‏معرفى زيربرنامه 8لا5 ‎..DECLARE‏ 7D Ds Oye, OU Do Dye , O Do Oye che Oud Pers (D Dv Oye ) ‏0د‎ : 00-6 :0 8 © ; WAC Pent (BA) ©; @4,0 21 (0 De Over ) ©; 04;0 (20 waked 1b

صفحه 131:
زير برنامه و تأیع ... فراخوانی 0۸۵۱1 توسط این دستور زیر برنامه یا تابعی را فراخوانی می کنیم . (... , 08086 , 0۱006۲0 )۳6۵۵/۳ بابلا 26 , 6680( متغیر هایی‌که بسه زیر بسرنامه لنتقانل‌مییابند , هستند . می‌تسوان‌زیر بسرنامه را بصوره زیر نیز فترلخوتی‌کرد , 6۱00 /9) 21 است که ناه نامه قبل از فراخوانی آن .2 ‎il 5818 Devkare‏ د. ا 1 برجا سخ م لزي يراد بل ی رن مت مد و( فرخونیشرد. گر بخواهم

صفحه 132:
زير برنامه و تأیع ... فراخوانی ۸۵11 ... 8 62 ‏و6‎ , 0 02 0 Gb Peet (Od 62 0 , Ord BC Br Ove ) “ud kel ® = dD

صفحه 133:
زير برنامه و تأیع ... بکارگیری متغیر محلی یا ‎LOCAL‏ () نام متغیر و سمورو نوع داد لستکه می‌تولنند , 1/۵0۵0 000:00 , ‎GPRWG‏ ‏۵ 00۵/۵ , 0۷۳۳۵۵ ب‌اشند نوع دادم ‎ROD , GROO , XRODSE‏ و أرليه هائمى تولنند محلیتعریفشوند 1 محلى يك متغير موقت ست كه فقط در هكم قراخ انى زير برنامه مربوطه براى أن فضا در نظر كر با برگشت از زیر برنامه عمر متغیر (۳6068 ۱/6۳60 ) به اتمام مى رسد . متخیرهای بیتی نمی توانند بصورت محلی تعریف شوند .

صفحه 134:
زير برنامه و تأیع ... بکارگیری متغیر محلی یا ‎LOCAL‏

صفحه 135:
زير برنامه و تأیع ... بکارگیری متغیر محلی یا ‎LOCAL‏ این دستور به زیربرنامه پرش می کند و اجرای برنامه را از آدرس برچسب ادامه می دهد . اسه! 00200 با0000),| نام برجسبوزير بسرنامه لستکسه بسه آنپرش‌می‌شود ,توسط دستور 06(70/10) می‌تسوان‌از 60 برگشتکرد و لجراعيسرنامه بسعد از دستور 006090000 ادلمه ملد due ‘dup to rotons ‏انا سم‎ Prow novice bed “Tee

صفحه 136:
پیکره بندی و کار با امکانات ]۸۸۷ در ‎BASCOM‏

صفحه 137:
پیکره بندى يورت ها ميكروكنترلرهاي 060005

صفحه 138:
پیکره بندی پورت ها ... برای تعیین جهت پایه پورتها از اين پیکره بندی استفاده می نماییم .جهت یک پایه می تواند ورودی یا خروجی باشد . ‎Ports = Grate‏ لو ‎Onebigy Proxy = Grate‏ ‎٠7‏ , لا بسته به ميكرو مىتولنند به ترتيبيايه ‎hg PO Gb‏ 4, ©4, ©, ©, 8, 8) باشند. و9 مىتواند يكواز كزينه هاوزير باشد : ‎OL WOT‏ : در لينحالتوجيستر جهتدادم بايه يا بورتانتخابشدم صفر مىشود و بايهيا بورتبعنولنورودوإستفادم موشود . ۲ يا ): در لينحا لتوجيستر ‎Ly AL alates‏ يوردانتخابشدم يكمشود و بايه يا يورتبعنولنخروجىإستفادم موشود . زمانيكه بخواهيد از يورتى بخوانيد بايستى از رجيستر (60/) يورت مربوطه استفاده كنيد و در هنكام نوشتن در بورت بايستى در رجيستر “0000080 بنويسيد .

صفحه 139:
پیکره بندی پورت ها ... * مثل ‎Oxo ® Os Bye , Cot Bs Byte‏ ‎CocPig Portd = tout ‘poP cure PORT Por taput wode‏ ‎Prt “Read data a Portd‏ = @ ‎Oud Pod 5 - 8 ۵‏ < 4 ‎bd B‏ بنط ط قط ألمت يذ ‎acct Pid? , reset‏ له < اسر لسن ‎‘set port to 0‏ 0 2 ۲) ‎orb = Por ad‏ ‎Get Por. ‘set bt D oP por to‏ “eer Port

صفحه 140:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * پورت 9 پورت 69 یک 1/0 دو طرفه 0 بیتی است . سه آدرس از مکان حافظه 1/60 اختصاص به پورت 9) دارد .يك آدرس برای رجیستر داده ‎۵600٩06۵‏ , دومی رجیستر جهت داده ‎A DORE‏ بايه ورودى يورت 020100093 , 9) است .آدرس پایه های ورودی پورت 9) فقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندئی و هم نوشتنی هستند . تمام پایه های پورت دارای مقاومت می .6 مجزا هستند . 8 یک جیستر نیست, لین‌آدرس‌دسترسویه مقدار فیزیکییر روی‌هو یکاز پایه هوپورت 8 را ممکن‌می‌سازد .زمانیکه ۳)(0/6۵) خولنده می‌شود , دادم لچ پورت) خولنده می‌شود و زمانیکه از ۳/0(68) خولنده می‌شود مقدار منطقی‌که بر رووپایه ها موجود لستخوانده می شود

صفحه 141:
پیکره بندى يورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * رجیسترهای پورت 0 D- PORTH [PORT ۵ 00۲/۳۵ ۱۵0۵/۳/00 [ ‏رجیستر داده پورت‎ * PORTO am © PORTO aun © PORTO o aia PORPOT RO PORTOT a PORTO ele 1 Rk PORTO I a] coms RK = DOR [PORT B OGPO OWREOMOY REGISTER J S54 2312 Ses Savas + 1 PORTO ‏ار دا‎ * بایت آدرس پایه های ورودی پورت [ 0000000 ۳۵۵ 1۵۵۵ ۵ ‎D PWO- [PORT‏ PORTO WO? fo PORTO 8 am PORTO pl. 9 001 0 001

صفحه 142:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * استفاده از يورت ©) به عنوان یک ‎VO‏ عمومی دیجیتال تمام 2 پایه موجود زمانیکه بعنوان يايه هاى 1/0 ديجيتال استفاده می شوند دارای عملکرد مساوی هستند .۳ , پا ‎VO‏ عمومى : بيت 000090) در رجیستر (000686) مشخص کننده جهت پایه است . اگرم(0606) یک باشد , 8:09 بعنوان یک پایه خروجی مورد استفاده قرار مى كيرد و اكر 06060)/صفر باشد , (۳0) بعنوان یک پایه ورودی در نظر گرفته می شود .اگر ۳0(01/160(0) یک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت ‎Path‏ ‏می شود . برای خاموش کردن مقاومت باید »۳6(607060) صفر شود يا اينكه بايه بعنوان خروجى تعریف 2 های پورت زمانیکه ریست اتفاق می افتد به حالت ‎cet Drab‏ روند . ۵۵۰ 0 Puy Comment میب 0 ما 03 3 ‏مه‎ 7 0 ‏سان‎ 0 PhP Dery cups 0 ‏رق‎ Wo, PhP ow nape

صفحه 143:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * پورت 0 پورت 0) یک 1 دو طرفه 0 بیتی است . سه آدرس از مکان حافظه ‎VO‏ اختصاص به يورت © دارد ,یک آدرس برای رجیستر داده 86()8/060) , دومی رجیستر جهت داده ‎DOR‏ 3 سومى بايه ورودى يورت 0200009 , 9) است .آدرس پایه های ورودی پورت 9) فقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند . تمام پایه های پورت دارای مقاومت مب آ۳) مجزا هستند . 08 یکوجیستر نیست لین‌آدرس‌دسترسیبه مقدار فسیزیکویر رویو یکاز پایه هوپورت 6 را ممکن‌می‌سازد .زمانیکه ۳)()9/9) خولنده می‌شود , دادم لچ پورت9) خولنده می‌شود و زمانیکه از ۳0060 خولنده می‌شود مقدار منطقی‌که بر رووپایه ها موجود لستخولندم مى شود .

صفحه 144:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * رجيسترهاى بورت © * رجیستر داده پورت [ ۵۵/۵/۵ ۵۵/۵ ۵ ‎PORTH [PORT‏ - ۵ PORTO 00 © PORTOT RID PORTO we ‎Ri‏ ل ‎PORTO] PORTO /0 ‎PORTO ‎ ‎PORTO ‎۵ 8 ‏هه‎ 5 ‎PORTO ‎a ‎ ‎۵ - 00 [PORT ۵ ۵0۵/۳۵ OLROOMOD ROCIO POR ] S54 238 ‏رجیستر جهت‎ * ‎PORTO ‎am © ‎ ‎PORTOT ‎evan ‎ ‎PORTO ‎bh avi ‎ ‎ae PORTO Sohn 1 ‎a ‎PORTO ‎8 ‎ ‎Rid) ‎PORTO ‎8 ‎ ‎aa ‎PORTO ‎° ‏* بایت آدرس پایه های ورودی بورت ] ‎PAWO- [PORT © WPOT POG GOOOREOS‏ ® ‎PORTO ‎o ‎ ‎530 ‎ ‎0 ‎play ‎PORTO ‎ ‎ak ‎ ‎ ‎Gain Rad ‎PORTO] PORTO ‎35 ‎ ‏بها ‎PORTO ‎Rig 2 ‎PORTS ‎ ‎ ‎aa 8 ‎PORTO ‎° ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 145:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * استفاده از پورت 0) به عنوان یک ‎VO‏ عمومی دیجیتال تمام 2 پایه موجود زمانیکه بعنوان پایه های ‎VO‏ ديجيتال استفاده می شوند دارای عملکرد مساوی هستند .»,ا» , پا ‎VO‏ عمرمی : بیت »00000) در رجیستر 000860) مشخص کننده جهت پایه است . اگرم0)060) یک باشد , 1860 بعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر »00060)صفر باشد , »60) بعنوان يك پایه ورودی در نظر گرفته می شود .اگر »0600۲60 یک باشد هنگامیکه پایهبعنوان ورودی تعریف می شود ,مقاوت ما۳ می شود . برای خاموش کردن مقاومت ‎pies POR MDa BY‏ شود يا اينكه بايه بعنوان خروجى تعريف شود .يايه هاى يورت زمانيكه ریست اتفاق می افتد به حالت هب0۳ می روند . ۵۵۰ 0 Puy Comment 03 ‏میب 0 ما‎ 3 ‏ما‎ Yeo ‏مه لس و66۵‎ cured Pra. pulp bw 0 ‏نحت‎ Wo PehPU Lev ont 0 ‏رق‎ Wo, PhP ow nape

صفحه 146:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * پورت 0 پورت () یک 1/6 دو طرفه 0 بیتی است . سه آدرس از مکان حافظه (1/6 اختصاص به يورت © دارد .يك آدرس براى رجيستر داده 00008000 , دومی رجیستر جهت داده 000008) و سومى بايه ورودى بورت 400000 , () است .آدرس پایه های ورودی پورت () فقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندئی و هم نوشتنی هستند . تمام پایه های پورت دارای مقاومت می .6 مجزا هستند . ‎9S PADO‏ جیستر نیست, لین‌آدرس‌دسترسویه مقدار فیزیکییر روی‌هو یکاز پایه هوپورت ()را ممکن‌می‌سازد .زمانیکه (۳6()/06) خولنده می‌شود , دادم لچ پسورت() خوالنده می‌شود و زمانیکه از (۳100) خولنده می‌شود مقدار منطقی‌که بسر رووپایه ‏ موجود لستخوانده می ‏شود .

صفحه 147:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * رجیسترهای پورت © * رجیستر داده پورت [ ۵0/۵/00 ۵0/۵ 0 ‎C= PORNO [PORT‏ PORTO aw © 0 - OORO [PORP O OOTH OARCOMOY ROGWPOR [ ‏رجیستر جهت داده پورت‎ * PORTO ay? * بايت آدرس يايه هاى ورودى بورت ] ‎PWO- [PORT CAWPOT HOG OOORCOEE‏ © PORTS © aly PORTCA RO PORTA aa PORTOM am RO RPO PORTO 2 0010 2

صفحه 148:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * استفاده از پورت 0 به عنوان یک 1/0 عمومى ديجيتال تمام 9 پایه موجود زمانیکه بعنوان پایه های ‎VO‏ دیجیتال استفاده می شوند دارای عملکرد مساوی هستند ,6۳0 پایه 1/0 عمومى : بيت 0000000 در رجيستر (000080) مشخص کننده جیت پایه است . اگرم(006) یک باشد , )0 بعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر 0600صفر باشد , »(۳6) بعنوان یک پایه ور در نظر گرفته می شود ‎Sy PORPOn SI,‏ باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت ,ین فعال مى شود . برای خاموش کردن مقاومت باید ‎)*006٩06(‏ صفر شود يا اينكه يايه بعنوان خروجى تعریف شود .پایه های پورت زمانیکه ريست اتفاق مى افتد به حالت معومریب0۳/ می روند . PORPCa 0 Puy Comment میب 0 ما 03 3 ‏ما‎ Yeo (Co ud sow curt P vat. pulp bw 0 ‏سان‎ 0 PhP Dery cups 0 ‏رق‎ Wo, PhP ow nape

صفحه 149:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * پورت 0 پورت () یک (1/6 دو طرفه 0 بیتی است . سه آدرس از مکان حافظه 1/6 اختصاص به پورت 0 دارد یک آدرس برای رجیستر داده ‎۵600٩/۳00‏ , دومی رجیستر جهت داده 000008) و سومى پایه ورودی پورت 6۳10060 , () است .آدرس پایه های ورودی پورت 0 فقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندئی و هم نوشتنی هستند . تمام پایه های يورت داراى مقاومت مب ) مجزا هستند . 0 یک جیستر نیست, لین‌آدرس‌دسترسویه مقدار فیزیکییر روی‌هو یکاز پایه هوپورت را ممکن‌می‌سازد .زمانیکه ۳6()/060) خولنده می‌شود , دادم لچ پسورت) خوالنده می‌شود و زمانیکه از ۳/1060) خولنده می‌شود مقدار منطقوكه بر روويايه ها موجود لستخوانده می شود .

صفحه 150:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * رجیسترهای پورت 0 «پورت [ ۵۵۵/۵۸ ۵۵/۵ ۵ 10۵0۷ 0-۵00۵ * رجیستر ۵ ]۳00۲۳۵0 © مه | ۵ب * رجيستر جهت داده پورت [ ۵/۲۵/۳۸ ۳۸۵۵۱۵۵۵ ۵۵/۵ ۵ 1۳00۲ 006 - ۵ PORTO am © * بایت آدرس پایه های ورودی پورت [ 000۵0۵0 ۵۵ 0۰1۵۵ PORTO © au PORTO a PORTOT 530 PORTO PORTO طقس Bad 0 ۷ | PORTO ۲ PORTO RIM 6 ۵ PORTO ۵/0 = 0۵ ۳۵۵۰ PORTO aw ° CORPO ° 00۲۵ 4

صفحه 151:
پیکره بندی پورت ها ... برررسی پورتهای میکرو ۸۲۱/۶۸۵32 * استفاده از پورت 0) به عنوان یک 1/0 عمومی دیجیتال آتمام © يايه موجود زمانيكه بعنوان پایه هاى 10 ديجيتال استفاده می شوند دارای عملکرد مساری هستند 6۳0 , پایه ‎VO‏ عمومی : بیت 6000000 در رجیستر 06(680) مشخص کننده جهت پایه است . اگرم0/0) یک باشد , -(6) بعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر »6060()صفر باشد , 1*60) بعنوان یک پایه ور؛ در نظر گرفته می شود .اگر 00 6(60۲*) یک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت بپان1۳ فعال می شود . برای خاموش کردن مقاومت بايد «00)18/00) صفر شود يا اينكه يايه بعنوان خروجى تعريف شود .بايه هاى بورت زمانيكه ريست اتفاق مى ‎Deter Silay Sh‏ می روند . PORTO 0 Puy Comment 03 ‏میب 0 ما‎ 3 ‏مه‎ 7 0 ‏نحت‎ Wo PhP Dery cups 0 ‏رق‎ Wo, PhP ow nape

محیط برنامه نویسی ‏BASCOM نیما جعفری ‏jafari@iaut.ac.ir 1 معرفي منوهاي محيط ‏BASCOM ميكروكنترلرهايِ AVR 2 منوي FILE ‏ ‏ ‏ ‏ ‏ ایجاد فایل جدید ()FILE NEW با انتخاب این گزینه یک پنجره جدید که شما قادر به نوشتن برنامه در آن هستید ایجاد می شود . باز کردن فایل () OPEN FILE با انتخاب این گزینه شما قادر به فراخوانی فایلی که در حافظه موجود است می باشید . BASCOMفایلها را بصورت استاندارد ASCIIذخیره می کند .بنابراین شمکا می توانید از ویرایشگری مثل NOTEPADبرای نوشتن برنامه استفاده کنید و سپس آنرا به محیط انتقال دهید. بستن فایل ) ) CLOSE FILE این گزینه پنجره برنامه فعال را می بندد .اگر در فایل تغییری ایجاد کرده اید ابتدا باید قبل از بستن آن را ذخیره نمایید . ذخیره فایل () FILE SAVE با این گزینه شما قادر به ذخیره فایل بصورت ASCIIدر کامپیوتر خواهید بود . ذخیره کردن بعنوان () FILE SAVE AS با این گزینه قادر خواهید بود فایل موجود را با نام دیگر ذخیره کنید. 3 ادامه منوی ... FILE ‏ ‏ ‏ نمایش پرینت فایل () FILE lcd PREVIEW این گزینه نشان می دهد که فایل متنی موجود برنامه در هنگام پرینت به چه صورت خواهد بود . پرینت فا یل () FILE lcd با این گزینه شما می توانید فایل موجود در برنامه را پرینت نمایید . بستن فایل ) ) CLOSE FILE با این گزینه شما قادر خواهید بود از محیط BASCOMخارج شوید ولی در صورتی که شما در برنامه تان تغییری داده اید و آن را ذخیره نکرده اید ,پیش از خروج هشدار میدهد. 4 منوی EDIT ‏ ‏EDIT UNDO با این گزینه شما می توانید دستکاری اخیرتان در برنامه را از بین ببرید . ‏ ‏EDIT REDO با این گزینه شما می توانید دستکاری اخیرتان را که از بین برده بودید دوباره برگردانید . ‏ ‏EDIT CUT با این گزینه شما می توانید متن انتخاب شده را بریده و به محل جدیدی انتقال دهید . ‏ ‏EDIT COPY با این گزینه شما می توانیدمتن انتخاب شده را کپی کرده و به محل جدیدی انتقال دهید . ‏ ‏EDIT PAST با این گزینه شما می توانید متنی را که قبال COPYیا CUTکرده بودید در محل مورد نظر بچسبانید . 5 منوی ... EDIT ‏ ‏EDIT FIND با این گزینه شما می توانید متنی را در برنامه تان جستجو کنید . ‏ ‏EDIT FIND NEXT با این گزینه شما می توانید متن مورد جستجو را دوباره جستجو نمایید . ‏ ‏EDIT REPLACE با این گزینه شما می توانید متنی را جایگزین متن موجود در برنامه نمایید یعنی در قسمت TEXT TO FINDمتن مورد جستجو که باید توسط متن دیگری جایگزین شود را تایپ کنید و در قسمت REPLACE WITHمتنی را که باید جایگزین شود تایپ می کنیم . ‏ ‏EDIT GOTO با این گزینه شما می توانیدمستقیما و به سرعت به خط دلخواهی بروید . 6 منوی ... EDIT ‏ ‏EDIT TOGGLE BOOKMARK با این گزینه شما می توانید شما می توانید در جاهای خاصی از برنامه که مورد نظر شماست نشانه گذاری کنید و به آنها توسط دستور دستور EDIT GOTO BOOKMARKدسترسی پیدا کنید . ‏ ‏EDIT GOTO BOOKMARK با این گزینه شما می توانید به نشانه هایی که قبال گذاشته اید . ‏ ‏EDIT IDENT BLOCK با این گزینه شما می توانید متن انتخاب شده را به اندازه یک TABبه سمت راست منتقل کنید . ‏ ‏EDIT UNIDENT BLOCK با این گزینه شما می توانید متن انتخاب شده را به اندازه یک TABبه سمت چپ منتقل کنید . 7 منوی PROGRAM ‏ ‏PROGRAM COMPILE با این گزینه (یا کلید )F7شما قادر به ترجمه برنامه به زبان ماشین ( ) COMPILEخواهید بود .برنامه شما با انتخاب این گزینه پیش از COMPILEذخیره خواهد شد و فایلهای زیر به انتخاب شما در OPTION COPILER SETTINGایجاد خواهند شد : – XX.BINفایل باینری که می تواند در میکروکنترلر PROGRAMشود . – XX.DBGفایل DEBUGکه برای نرم افزار شبیه ساز BASCOMمورد نیاز است . – XX.OBJفایل OBJECTکه برای نرم افزار AVR STUDIOمورد نیاز است . – XX.RPTفmmmایلگmmmزارشی هگزادسیماmmلmینتلکmmmه mبmmmراmیبmmmعضیاز اmنواmع PROGRAMMERها مورد ا – XX.HEXفmmmایل نmmیاز اmست. – XX.ERRفmmmایلخطا کmmmه mفmmmقط در هنگام mبmmmروز خطا اmیجاد میشmmود. – XX.EPPداده mهایکmmmه mبmmmاید در EPROMبmmmرنامه mریزیشmmود در اmینفmmmایلنmmگهmداریمیگردند . 8 منوی ... PROGRAM ‏ اگر خطایی در برنامه موجود باشد شما پیغام خطا را در یک کادر محاوره ای دریافت خواهید کرد و COMPILEمتوقف میشود .با کلیک بر روی هر کدام از انها به خطی که خطا در آن رخ داده پرش خواهید کرد . ‏PROGRAM SYNTAX CHECK بوسیله این گزینه برنامه شما برای نداشتن خطای امالیی چک می شود .اگر خطایی وجود داشته باشد هیچ فایلی ایجاد نخواهد شد . ‏ ‏PROGRAM SHOW RESULT از این گزینه برای دیدن نتیجه COMPILEمیتوان استفاده کرد . گزینه OPTION COMPILE OUTPUTرا برای تعیین اینکه کدام فایلها باید ایجاد شوند را ببینید .فایلهایی که محتوای آنها قابل مشاهده اند REPORT ERRORمی باشند . 9 منوی ... PROGRAM ‏ ‏ ‏PROGRAM SIMULATOR با فشردن کلید F2یا این گزینه از منو PROGRAMشبیه ساز داخلی فعال خواهد شد .شما در برنامه با نوشتن کلمه کلیدی SIM$قادر به شبیه سازی سریعتر برنامه میباشید .در صورت تمایل شما می توانید از شبیه سازی های دیگر مانند AVR STUDIOنیز استفاده کنید .برای شبیه سازی فایلهای DBJو OBJباید ایجاد شده باشند .فایل OBJ در برنامه شبیه سازی AVR STUDIOو فایل DBJبرای شبیه ساز داخلی مورد استفاده قرار می گیرد . ‏SEND TO CHIP توسط این گزینه یا کلید F4پنجره محیط برنامه ریزی ظاهر خواهد شد .شما می توانید توسط این گزینه میکرو مورد نظر خود را PROGRAMکنید . 1 منوی TOOLS ‏ ‏ ‏TERMINAL EMULATOR توسط این گزینه یا کلیدهای CTR + Tبا باال آوردن TERMINAL EMULATORمی توانید از این محیط برای نمایش داده ارسالی و دریافتی در ارتباط سلایر RS-232بین میکرو و کامپیوتر استفاده نمایید . ‏LCD DESIGNER توسط این گزینه می توانید کاراکترهای دلخواه خود را طراحی نمایید و بر روی LCD نمایش دهید. 11 منوی ... TOOLS ‏ ‏GRAPHIC CONVERTOR با کلیک بر روی این منو پنجره محیط GRAPHIC CONVERTORبرای تبدیل تصویر با پسوند * BMP.به تصویری با پسوند * BGF.که قابل نمایش بر روی GRAPHIC LCDاست ظاهر می شود . فایل دلخواه خود را با پسوند * BMP.توسط دکمه LOADوارد کرده و سپس با دکمه SAVEآنرا در کنار برنامه خود با پسوند *BGF ( BASCOM GRAPHIC. ) FILEذخیره کنید .فایل تبدیل شده بصورت سیاه و سفید دوباره نمایش داده می شود و با کلیک بر روی دکمه OKمی توان از محیط خارج شد .فایل ذخیره شده با فراخوانی در برنامه قابل نمایش بر روی LCDگرافیکی است .انتخاب نوع LCDتوسط قسمت LCD ‏TYPEانجام می گیرد .فونت نوشتاری نیز می تواند 8*6یا 8*8پیکسل باشد . 1 منوی OPTION ‏ ‏OPTION COMPILER با این منو شما می توانید گزینه های مختلف کامپایلر را طبق زیر اصالح نمایید : •OPTION COMPILER CHIP انتخاب میکرو برای برنامه ریزی توسط این گزینه انجام می شود .در صورتی که از دستور REGFILE$در برنامه استفاده کرده اید به انتخاب میکرو توسط این گزینه نیازی نیست . • OPTION COMPILER OUTPUT با این گزینه می توان فایل هایی که مایل به ایجاد آنها پس از کامپایل هستیم را انتخاب کرد .با انتخاب گزینه SIZE WARNINGزمانی که حجم CODEاز مقدار حافظه FLASH ROMتجاوز کرد کامپایلر تولید WARNINGمی کند . • OPTION COMPILER 12C,SPI,1WIRE توسط این گزینه می توان پایه های مربوط به ارتباطات 12C SPIو WIRE 1را تعیین کرد . 1 منوی ... OPTION • OPTION COMPILER COMMUNICATION نرخ انتقال ( )BOUD RATEارتباط سزیال توسط این گزینه تعیین می شود که می توان یک نرخ جدید نیز تایپ کرد .گزینه FREQUENCYانتخاب فرکانس کریستال استفاده شده است که می تواند فرکانس اختیاری نیز باشد . • OPTION COMPILER LCD این گزینه دارای قابلیت های زیر می باشد : در قسمت LCD TYPEنوع LCDرا مشخص می کنیم .گزینه BUS MODEمشخص می کند LCDبصورت 8بیتی یا 4بیتی کار می کند .توسط گزینه DATA MODEتعیین می کنیم LCDبصورت PINکار کند یا BUSو گزینه LCD ADDRESSمشخص کننده آدرس LCDدر مد BUSاست . در صورت پیکره بندی هر یک از امکانات فوق در برنامه نیازی به تنظیم کردن آنها در این منو نیست . • ‏OPTION PROGRAMMER •در این منو شما می توانید PROGRAMMERمورد نظر خود را انتخاب نمایید . 1 معرفی محیط شبیه سازی ()SIMULATOR ميكروكنترلرهايِ AVR 1 نوار ابزار در اين محيط ‏ ‏ ‏ ‏ ‏RUN با فشردن این دکمه شبیه سازی آغاز می شود . ‏PAUSE باعث توقف موقت شبیه سازی می شود و با فشردن دکمه RUNشبیه سازی ادامه پیدا می کند. m ‏STOP باعث توقف کامل شبیه سازی برنامه جاری می شود . ‏STEP INTO CODE با استفاده از این دکمه می توان برنامه را خط به خط اجرا نمود و هنگام فراخوانی توابع به داخل آنها رفته و مراحل اجرای آنها را بررسی کرد .این کار را با فشردن کلید F8نیز می توانید انجام دهید .بعد از هر بار اجرای این دستور شبیه سازی به حالت PAUSEمی رود . 1 نوار ابزار در اين محيط ... ‏ ‏ ‏STEP OVER این دکمه شبیه دکمه قبلی است با این تفاوت که در هنگام فراخوانی توابع به داخل SUB ROUTINEنخواهید رفت .این کار را می توانید با فشردن کلید SHIFT F8 نیز انجام دهید . ‏RUN TO دکمه RUN TOشبیه سازی را تا خط انتخاب شده انجام میدهد و سپس به حالت PAUSEمیرود ( خط جاری باید شامل کدهای قابل اجرا باشد ) . 1 نوار ابزار در اين محيط ... ‏ شبیه سازی سخت افزاری THE HARDWARE SIMULATOR با کلیک بر روی این گزینه ÷نجره ای ظاهر می شود .که قسمت باالیی یک LCDمجازی می باشد که برای نشان دادن داده های فرستاده شده به LCDاستفاده می شود .نوار LEDهای قرمز رنگ پایین خروجی پورتها را نشان می دهد .با کلیک بر روی هر یک از LEDهای سبز رنگ که بعنوان ورودی هستند وضعیت آن معکوس می شود و روشن شدن LEDبمنزله یک کردن پایه پورت است .یک صفحه کلید نیز تعبیه شده است که با دستور ) (GETKBDدر برنامه قmابل خواندن می باشد .در ضمن مقدار آنالوگ نیز هم برای مقایسه کننده آنالوگ و هم برای کانال های مختلف ADCقابل اعمال است. ‏ ‏REGISTERS این دکمه پنجره ثباتها را با مقادیر قبلی نمایش می دهد .مقدارهای نشان داده شده در این پنجره هگزادسیمال می باشد که برای تغییر هر کدام از آنها روی خانه مربوطه کلیک کرده و مقدار جدید را وارد کنید . ‏ ‏ ‏I/O REGISTERS برای نمایش ثباتهای I\Oاستفاده می شود .که مانند Rقابل مقدار دهی است . 1 نوار ابزار در اين محيط ... ‏ ‏ ‏VARIABLES شما قادر به انتخاب متغیر با دو بار کلیک کردن در ستون VARIABLESمیباشید .با فشار دکمه ENTERدر هنگام اجرای برنامه قادر به مشاهده مقدار جدید mمتغیر در برنامه خواهید بود .همچنین میتوانید مقدار هر متغیر را توسط VALUEتغییر دهید . برای تماشای یک متغیر آرایه ای می توانید نام متغیر همراه با اندیس آنرا تایپ کنید و برای حذف هر سطر می توانید mدکمه CTRL+DELرا فشار دهید . ‏WATCH این گزینه برای وارد کردن وضعیتی که قرار است در خالل شبیه سازی ارزیابی شود مورد استفاده قرار می گیرد و هنگامی که وضعیت مورد نظر صحیح شد شبیه سازی در حالت PAUSEقرار خواهد گرفت .حالت مورد نظر را در مکان مورد نظر تایپ نمودmه و دکمه ADD-BUTTONرا فشار دهید .هنگامیکه دکمه MODIFY-BUTTON فشار داده شود ,وضعیت مورد نظر را مورد بازنگری قرار میدهد و میتوان ارزش آنرا تغییر داد .برای حذف هر وضعیت شما باید آنرا انتخاب کرده و دکمه REMOVEرا فشار دهید. m 1 نوار ابزار در اين محيط ... ‏ ‏ ‏LOCAL متغیرهای محلی موجود در SUBیا FUNCTIONرا نشان میدهد .البته نمیتوان متغیری را به آن اضافه نمود . ‏UP وضعیت ثبات وضعیت ( ) STATUS REGرا نشان میدهد FLAG .ها را میتوان توسط کلیک بر روی CHECK BOXها تغییر وضعیت داد . ‏ ‏INTERRUPTS این گزینه منابع وقفه را نشان میدهد .هنگامیکه هیچ ISRبرنامه نویسی نشده باشد ,همه دکمه ها غیر فعال خواهند بود و اگر ISRنوشته شود ,دکمه مربوط به آن فعال می شود و با کلیک بر روی هر کدام از دکمه ها ,وقفه مربوطه اجرا می شود .در ضمن میتوان روی یک پایه خاص پالس نیز ایجاد نمود . 2 معرفی محیط برنامه ریزی ميكروكنترلرهايِ AVR 2 ISP STK PROGRAMMER ‏ ‏ ‏ ‏ پنجره ارسال برنامه به میکرو هنگامیکه RUN PROGRAMMERانتخاب می شود ظاهر میگردد . منوی FILE • : EXITخmروج از محیط بmmmرنامه mریزی. • : TESTیککmmmردنپmmmایه mهایپmmmورت .اmینگmmmزینه mتmmmنهmا زمانیمیتmmmواmند اmستفmاده mشmmود کmmmه mاز SAMPLR ELECTRONIC PROGRAMEEERاmستفاده mشmmود . منوی BUFFER • : BUFFER CLEARپmmmاککmmmردنبmmmافر. • : LOAD FROM FILEپmmmر کmmmردنبmmmافر بmmmا فmmmایلو بmmmرنامه mریزیآmندر حmافظه mمیکرو • : SAVE TO FILEذخیره mبmmmافر در فmmmایلدلخواmه . mبmmmافر میتmmmواmند محتواmیحmافظه mیک میکرو بmmmاشد . منوی CHIP • : CHIP IDENTIFYشmmناساییمیکرو متصلبmmmه. PROGRAMMER m 2 …ISP STK PROGRAMMER • • • • • • • : WRITE BUFFER TO CHIPبmmmرنامه mریزیمحتواmیبmmmافر در حmافظهm ROMیا . EEPROM : READ CLIPCODE INTO BUFFERخmواmندنداده mحmافظه mکmmmدیمیکرو . : BLACK CHECKخmاmmلیبmmmودنحmافظه mمیکرو را مشخصمیکmmmند . : ERASEپmmmاککmmmردنمحتواmیحmافظه mبmmmرنامه mو داده. EEPROM m : VERIFYاmینگmmmزینه mمحتواmیبmmmافر و آmنچه mکmmmه mدر میکرو بmmmرنامه mریزیشmmده mاmسترا مقایسه mمیکmmmند و در صmmورتتmmmساویپmmmیغmام VERIFY OK mنmmمایشداده mمیشmmود . : AUTO PROGRAMحmافظه mمیکرو را پmmmاککmmmرده mو بmmmرنامه mمورد نmmظر را در حmافظه FLASH mبmmmرنامه mریزیمیکmmmند و سmmپسعمل VERIFYرا بmmmه mصmmورت خmودکار اmنجام mمیدهد. : RESETمیکرو متصلبmmmه PROGRAMMER mرا ریستمیکmmmند . 2 معرفی محیط ‏TERMINAL EMULATOR ميكروكنترلرهايِ AVR 2 TERMINAL EMULATOR ‏ از این محیط می توان برای نمایش داده ارسالی و دریافتی در ارتباط سلایر RS-232بین میکرو و کامپیوتر استفاده نمود . ‏ اطالعاتی که در این محیط تایپ می شود به میکرو ارسال و اطالعاتی که از پورت کامپیوتر دریافت می شود دراین پنجره نمایش داده می شود .هنگامیکه در برنامه از SERIAL INو یا SERIAL OUTاستفاده می شود ,پس از PROGRAMکردن برنامه درون میکرو و اتصال آن به پورت سلایر , PCمی توان داده های ارسالی توسط UARTمیکرو به بیرون را دریافت کرده و نمایش داد و از صحت و سقم آنها اطالع یافت .همچنین اگر از دستوری مانند INKEYدر برنامه استفاده شود ,میتوان داده خود را از طریق پنجره TERMINAL EMULATORبه میکرو ارسال نمود .توجه داشته باشید که از BOUD RATEمشابه در میکرو و کامپیوتر استفاده نمایید . 2 منوهای محيط TERMINAL EMULATOR . میکندUPLOAD راHEXرمتmmmاریدر فm جmرنامهmmmب: FILE UPLOAD .ایلmmmردنفmmm کUPLOAD ردنازmmmرفنظر کmm ص: FILE ESCAPE . EMULATOR mرنامهmmmروج از بm خ: FILE EXIT . ندmmmاکمیکmmmلرا پmmرمیناmmm تmنجرهmmm پ: TERMINAL CLEAR ورتمیmmینمنو صmوسط اmmm ها تOPTION و دیگرCOMورتmmmنظیماتپmmm ت: SETTING . یردmmmگ ایلmmm فmهنگامیکه. ندmmm میکmستهmmmاز یا بmmm را بLOGایلmmm ف: TERMINAL OPEN LOG درmهmmmطالعاتیکm اmمامmmmت. ندmmmزارشمیکmmmایلگmmmیفmراmmmامیبmmستنmاشد درخواmmm بmشتهmداmm وجود نLOG . ودmmبتمیشmmm ثLOGایلmmmخلفmود داmmرینتمیشmmm پTERMINAL mنجرهmmmپ 2       دستورات و توابع محیط برنامه نویسی ‏BASCOM 5 2 بدنه یک برنامه درمحيط ‏BASCOM ميكروكنترلرهايِ AVR 2 ... BASCOM بدنه یک برنامه درمحيط معرفی میکرو REGFILE = VAR$ نام چیپ مورد استفاده است که می تواندVAR . ابتدا باید میکرو مورد نظر تعریف گرددBASCOM برای شروع یک برنامه در محیط . یکی از موارد زیر باشد regfile = “ At12def.dat “ ‘ATtiny12 MCU$ regfile = “ At15def.dat “ ‘ATtiny15 MCU$ regfile = “ At22def.dat “ ‘ATtiny22 MCU$ regfile = “ At26def.dat “ ‘ATtiny26 MCU$ regfile = “ 2323def.dat “ regfile = “ 2333def.dat “ regfile = “ 2343def.dat “ regfile = “ 4414def.dat “ regfile = “ 4433def.dat “ regfile = “ 4434def.dat “ 2 ‘AT90s2323 MCU$ ‘AT90s2333 MCU$ ‘AT90s2343 MCU$ ‘AT90s4414 MCU$ ‘AT90s4433 MCU$ ‘AT90s4434 MCU$ ... BASCOM بدنه یک برنامه درمحيط ... معرفی میکرو regfile = “ 8515def.dat “ regfile = “ 8535def.dat “ regfile = “ M8535.dat “ regfile = “ M8515.dat “ regfile = “ M8def.dat “ regfile = “ M103def.dat “ regfile = “ M16def.dat “ regfile = “ M163def.dat “ regfile = “ M161def.dat “ regfile = “ M32def.dat “ regfile = “ M323def.dat “ regfile = “ M603def.dat “ regfile = “ M64def.dat “ regfile = “ M128def.dat “ regfile = “ M128103.dat “ 3 ‘AT90s8515 MCU $ ‘AT90s8535 MCU $ ‘MEGA 8535 MCU $ ‘MEGA 8515 MCU $ ‘MEGA 8 MCU $ ‘MEGA 103 MCU $ ‘MEGA 16 MCU $ ‘MEGA 163 MCU $ ‘MEGA 161 MCU $ ‘MEGA 32 MCU $ ‘MEGA 323 MCU $ ‘MEGA 603 MCU $ ‘MEGA 64 MCU $ ‘MEGA 128 MCU $ ‘MEGA 128 IN MEGA 103 MODE MCU $ بدنه یک برنامه درمحيط ... BASCOM کریستال برای مشخص کردن فرکانس کریستال استفاده شده برحسب هرتز از دستور زیر استفاده می نماییم . ‏CRYSTAL = X$ کmmmریستاmmلmستفاده mشmmده mبmmmر حسبهرتز اmست. ا Xفmmmرکانس نکته این دستور را حتی برای زمانی که با اسیالتور داخلی میکرو کار میکنید بنویسید . ‏ مثال ’14MHZ external osc$ ’8MHZ external osc$ ’1MHZ internal osc$ ‏CRYSTAL = 14000000 ‏CRYSTAL = 8000000 ‏CRYSTAL = 1000000 3 بدنه یک برنامه درمحيط ... BASCOM اسمبلی و بیسیک ( اختیاری) در صورت نیاز mبرای نوشتن برنامه اسمبلی در بین برنامه بیسیک از دmستور زیر استفاده می نماییم ‏ASM$ ‏ASSEMBLY PROGRAMME ‏ENDASM$ با دستور ASM$می توان در برنامه شروع به نوشتن برنامه موردنظر اسمبلی کرده و پس از اتمام برنامه اسمبلی با دستور ENDASM$برنامه اسمبلی را به mپایان رساند و به نوشتن ادامه برنامه پرداخت . ‏مثال ‏Dim c As Byte ‘load address of variable c into register x ‘start assembly program $ ‘load register R24 with the constant 1 ‘store 1 into var c ‘end of assembly program $ ‘send c to serial port ‏Loadadr c,x ‏Asm ‏Ldi r24,1 ‏St x,R24 ‏End Asm ‏lcd c ‏End 3 بدنه یک برنامه درمحيط ... BASCOM یادداشت ( اختیاری) گاهی نیاز است یادداشتهایی برای اطالعات بیشتر در برنامه اضافه شود . ‘ یا REM یاددلشتها و نوشته های بعد از این دستور غیر فعال بوده و در برنامه برای یادداشت به کار می رود و کامپایل نخواهد شد و همچنین به رنگ سبز در می آیند . همچنین می توان از دو عالمت برای شروع ‘( و از ‘) برای اتمام متن یادداشتی استفاده نمایید . مثال ‏REM this sentence will not be compiled ‏Or ‘ this sentence will not be compiled مثال ‘( start block comment ‏This will not be compiled ‘) end block comment 3 بدنه یک برنامه درمحيط ... BASCOM آدرس شروع برنامه ریزی حافظه ( FLASHاختیاری) گاهی نیاز است که برنامه خود را از آدرسی دلخواه در حافظه FLASHROMقرار دهید . ‏ROMSTART = ADDRESS$ ADDRESSمکانیاز حmافظه mاmستکmmmه mبmmmرنامه HEX mاز اmینآدرسدر حmافظه mمیکرو کmmmنترلر , شmmروع بmmmه mنmmوشته mشmmدنمیشmmود .در صmmورتیکmmmه mازاmیندستور اmستفاده mنmmشود کmmmامپایلر بmmmهm طور خmودکار آدرس& H0000را در نmmظر میگmmmیرد . ‏ مثال ‏ROMSTART = &H4000$ 3 بدنه یک برنامه درمحيط ... BASCOM تعیین کالک ( اختیاری) با این دستور در بعضی از میکروهای سری MEGA AVRاز جمله MEGA103یا MEGA603 به صورت نرم افزاری می توان کالک سیستم را تغییر داد .تقسیم کالک بطور مثال برای کاهش مصرف تغذیه استفاده می شود . ‏CLOCKDIVISION = var Varمقادیر معتبر بmmmیناmعداد 2تmmmا 128میتmmmواmند بmmmاشد . اگر از این دستور استفاده نمایید ,دستوراتی که مستقیما با کالک سیستم کار می کنند است درست کار نکنند . ممکن نکته مثال ‏boud = 2400$ ‏Clockdivision = 2 ”lcd “Hello ‏End 3 بدنه یک برنامه درمحيط ... BASCOM پایان برنامه ‏END این دستور در انتهای برنامه قرار می گیرد و اجرای برنامه را متوقف می کند .با این دستور تمام وقفه ها غیر فعال شده و یک حلقه بی نهایت تولید و برنامه خاتمه می یابد . ‏ مثال ‘lcd this ‘ end program execution and disable all interrupt ”lcd “ Hello ‏END 3 اعداد و متغیر ها و جداول ‏LOOKUP ميكروكنترلرهايِ AVR 3 اعداد و متغیر ها و جداول...LOOKUP دیمانسیون متغیرها این دستور بعد یک متغیر را نشان میدهد .با این دستور می توانید متغیرهایی که در برنامه به کار برده می شوند تعریف کنید . ]DIM var AS [ XRAM/SRAM/ERAM ] data type [AT location ] [OVERLAY VARنmmام mمتغیری کmmmه mدر بmmmرنامه mبmmmکار بmmmرده mمیشود .در صmmورتاmستفmاده mاز حmافظه mجmانبیآmنرا بmmmا XRAMمشخصکmmmنید و SRAMرا زمانیاmختیار کmmmنید کmmmه mمیخmواmهید متغیرها را در حmافظهm SRAMقmmرار دهید و ERAMمتغیر مورد نmmظر را در EEROMداmخلیجmایمیدهد Data . typeنmmوع داده mاmستکmmmه mمیتmmmواmند طبقجmدولزیر ‏STRING ,WORD ,LONG ,INTEGER ,BYTE, BITیا SINGLEبmmmاشد . در صورت استفاده از متغیر , STRINGبیشترین طول آن نیز باید نوشته شود .گزینه اختیاری OVERLYمتغیر تعریف شده را بصورت POINTERدر نظر میگیرد و فضایی را برای متغیر در نظر نمی گیرد . AT LOCATIONبmmmه mشmmما اmجازه mمیدهد کmmmه mمتغیرتانرا در آدرسیکmmmه mمیخواmهید در حmافظهm ذخیره mکmmmنید زمانیکmmmه mمحلآدرسدهیاmشغmاmmلبmmmاشد ,اولینجmایخmاmmلیدر حmافظه mاmستفmاده mمیشmmود . 3 ...LOOKUPاعداد و متغیر ها و جداول ... دیمانسیون متغیرها DATA TYPE 3 : نوع داده جدول انتخاب VALUE RANGE STORE AS BIT A BIT OR 1 0 BYTE UNSIGNED 8 BITS TO 255 0 INTEGER SIGNED 16 BITS TO 32767 32767- WORD UNSIGNED 16 BITS TO 65535 0 LONG SIGNED 32 BITS TO 214783648214783647 SINGLE SIGNED 32 BITS TO 3.4*10^38 45-^10* 1.5 STRING BYTES 0-245 - ...LOOKUPاعداد و متغیر ها و جداول ... دیمانسیون متغیرها مثال  DIM B AS BIT ‘BIT can be 0 or 1 DIM A AS BYTE ‘BYTE range from 0 - 255 نکته DIM K AS INTEGER AT 120 ‘you can specify the address of the ‘variable . The next dimensioned variable will be placed after A نشان دهیدB& را با عالمتBINARY و عددH& را با عالمتHEX عدد مثال  مثال  A= &H01DE ‘HEX NUM B= &B01011011 ‘BIN NUM DIM B1 AS BYTE AT $60 OVERLY 4 ...LOOKUPاعداد و متغیر ها و جداول CONST دستور : برای تعریف یک ثابت از این دستور استفاده می شود CONST SYMBOL= NUMCONST CONST SYMBOL= STRINGCONST CONST SYMBOL= EXPRESSION SYMBOL , mهmmm بmنتسابیافتهmددیاmدار عm مقNUMCONST ابتوmmm ثmامmm نSYMBOL EXPRESSION وSYMBOL mهmmm بmنتسابیافتهm اm رشتهSTRINGCONST . نتسابیابدm اSYMBOL mهmmmنبm آmتیجهmm نmهmmmاشد کmmmند عبارتیبmمیتوا مثال ”CONST S = “TEST CONST A = 5 CONST B1 =&B1001 CONST X = (B1 * 3 ) + 2 4 اعداد و متغیر ها و جداول...LOOKUP دستور ALIAS از این دستور برای تغیر نام متغیر استفاده می شود . ‏ مثال ‏DIRECTION ALIAS PORTB.1 حال شما می توانید بجای PORTB.1از متغیر DIRECTIONاستفاده نمایید . ‏SET DIRECTION ‘is equal with ‏SET PORTB.1 4 اعداد و متغیر ها و جداول...LOOKUP دستور CHR از این دستور برای تبدیل متغیر عددی یا یک ثابت به کاراکتر استفاده می شود .زمانی که قصد دارید یک کاراکتر بر روی LCDنمایش دهید از این دستور می توانید استفاده نماتید . در صورتیکه از این دستور به این صورت استفاده نمایید ) lcd CHR ( VARکاراکتر اسکی VARبه پورت سلایر فرستاده خواهد شد . ‏ مثال ‘dim variable ‘assign variable ) ‘lcd value ( 65 )‘lcd hex value (41 ) ‘lcd ASKII character 65 (A ‏DIM a AS Byte ‏A = 65 ‏lcd a ) lcd HEX( a ) lcd Chr ( a 4 اعداد و متغیر ها و جداول...LOOKUP دستور INSTR این دستورمحل و موقعیت یک زیر رشته را در رشته دیگر مشخص می کند . ) Var =Instr (start , String ,Subset ) Var =Instr (String ,Subset Varعmددیاmستکmmmه mمشخصکmmmننده mمحل SUBSTRدر رشته mاmصلی STRINGمیبmmmاشد و زمانیکه mزیر رشتهm مشخصشmmده mدر رشته mاmصلینmmباشد صmmفر بmmmرگرداmنده mمیشmmود START.نmmیز عmددیدلخواmه mاmستکmmmه mمکانشmmروع جستجو زیر رشته mدر رشته mاmصلیرا مشخصمیکmmmند .در صmmورتیکه START mقmmید نmmشود تmmmمام mرشته mاز اmبتدا جستجو میشmmود .رشته mاmصلیتmmmنهmا بmmmاید از نmmوع رشته mبmmmاشد ولیزیر رشته ) SUBSTR( mمیتmmmواmند رشته mو عmدد ثmmmابتهم mبmmmاشد . مثال ‏DIM S AS String * 15, Z As String * 5 ‏DIM Bp As Byte “ S = “This is a test ”Z= “is ‏Bp = Instr (S , Z ) : lcd Bp ‘should lcd 3 ‏Bp = Instr (4 , S ,Z ) : lcd Bp ‘should lcd 6 ‏End 4 ...LOOKUPاعداد و متغیر ها و جداول INCR دستور . می افزایدVAR این دستور یک واحد به متغیر عددی INCR VAR مثال DO Incr A lcd A Loop Until A>10 4 ‘ start loop ‘ increment A by 1 A=A+1 ‘ lcd A ‘ repeat until A is greater than 10 ...LOOKUPاعداد و متغیر ها و جداول DECR دستور . را یک واحد کم می کندVAR این دستور متغیر DECR VAR مثال Dim A As Byte A=5 Decr A lcd A End 4 ‘ assign value to a ‘ decrement by one A= A-1 ‘ lcd A =4 اعداد و متغیر ها و جداول...LOOKUP دستور CHECKSUM این دستور مجموع کد دسیمال اسکی رشته VARرا برمی گرداند که البته اگر مجموع کد اسکی رشته از عدد 255بیشتر شود مقدار 256از مجموع کم می شود . ‏ مثال ‘ Dim Variable ‘ assign Variable ) ‘ lcd value (192 ‘ assign variable ) ‘ lcd value 127 (127=383 – 256 ‏Dim S As String*10 ”S = “test )lcd Checksum (S “ S = ‘test next )lcd Cecksum(S 4 اعداد و متغیر ها و جداول...LOOKUP دستور LCASE این دستور تمام حروف رشته مورد نظر را تبدیل به حروف کوچک می کند . )Target = Lcase (source تمام حروف رشته sourceکوچک شده و در رشته targetجای داده می شود . مثال ‏Dim S As String * 12 , Z As String * 12 “ S = “Hello World ) Z = Lcase (S ‘Z = hello world ‏lcd Z ‏End 4 اعداد و متغیر ها و جداول...LOOKUP دستور UCASE این دستور تمام حروف رشته مورد نظر را تبدیل به حروف بزرگ می کند . )Target = Ucase (source تمام حروف رشته sourceبزرگ شده و در رشته targetجای داده می شود . مثال ‏Dim S As String * 12 , Z As String * 12 “ S = “Hello World ) Z = Ucase ( s ‘Z = HELLO WORLD ‏lcd Z ‏End 4 اعداد و متغیر ها و جداول...LOOKUP دستور RIGHT با این دستورقسمتی از یک رشته را جدا می کنیم . ) Var = RIGHT (var1 , n از سمت راست رشته var1به تعداد کاراکتر , nرشته ای جدا شده و در رشته varقرار می گیرد . مثال ‏Dim S As String * 15 , Z As String * 15 “ S = “ABCDEFG )Z = Right( s , 2 ‘Z = FG ‏lcd Z ‏End 5 اعداد و متغیر ها و جداول...LOOKUP دستور LEFT با این دستور کاراکترهای سمت چپ یک رشته را به تعداد تعیین شده جدا می کند . ) Var = LEFT(var1 , n از سمت چپ رشته var1به تعداد کاراکتر , nرشته ای جدا شده و در رشته varقرار می گیرد . مثال ‏Dim S As String * 15 , Z As String * 15 “ S = “abcdefg )Z = Left( s , 5 ‘Z = abcde ‏lcd Z )Z = Left( s , 1 ‘Z = a ‏lcd Z ‏End 5 اعداد و متغیر ها و جداول...LOOKUP دستور LEN این دستور طول یا بعبارتی تعداد کاراکترهای یک رشته را برمیگرداند . ) Var = Len(string طول رشته stringدر متغیر عددی VARقرار می گیرد .رشته stringنهایتا می تواند 255بایت طول داشته باشد .توجه داشته باشید که فضای خالی ( )SPACE BARخود یک کاراکتر به حساب می آید . مثال ‘lcd 4 ‘lcd 4 ‘lcd 5 ‏Dim S As String * 12 ‏Dim A As Byte “ S = “test ) A= Len(S ‏lcd A ) lcd Len (S “ S=“test ) A = Len ( A ‏lcd A 5 اعداد و متغیر ها و جداول...LOOKUP دستور LTRIM این دستور فضای خالی یکرشته را حذف می کند . ) Var = LTRIM( org فضای خالی رشته orgبرداشته می شود و رشته بدون فضای خالی در متغیر رشته ای varقرار می گیرد . مثال ‘AB ‘A B ‏Dim S As String * 10 “=“S ‏AB ) lcd LTRIM( s “=“S ‏A B ) lcd LTRIM( s ‏End 5 اعداد و متغیر ها و جداول...LOOKUP دستور SWAP ‏SWAP var1 , var2 با اجرای این دستور محتوای متغیر var1در متغیر var2و محتوای متغیر var2در متغیر var1قرار می گیرد . نکته دو متغیر var1و var2بایستی از یک نوع باشند . مثال ‏Dim A As Integer , B1 As Integer ‏A = 1 :B1 = 2 ‘assign two integer ‏SWAP A , B1 ‘swap them ‏lcd A ‘ lcds 2 ‏lcd B1 ‘ lcds 1 ‏End 5 اعداد و متغیر ها و جداول...LOOKUP دستور MID با این دستور می توان قسمتی از یک رشته را برداشت و یا قسمتی از یک رشته را با قسمتی از یک رشته دیگر عوض کرد . ‏Var = Mid(var1,St[,L] -1 ‏Mid(var , St[,L] = Var -2 -1قسمتی از رشته var1با شروع از کاراکتر stام و طول Lبرداشته شده و در متغیر varقرار می گیرد. -2رشته var1در رشته varبا شروع از کاراکتر Stام و طول Lقرار می گیرد . در صورت قید نکردن گزینه اختیاری , Lبیشترین طول در نظر گرفته می شود . مثال ‏Dim A As XRAM String *15 , Z As XRAM String *15 ”S = ‘ABCDEFG )Z = Mid(S,2,3 ‏lcd Z ‘BCD ‏End 5 اعداد و متغیر ها و جداول...LOOKUP دستور ROTATE دستور زیر تمام بیتها را به چپ یا راست منتقل می کند ولی تمام بیتها محفوظ هستند و هیچ بیتی بیرون فرستاده نمی شود . ]ROTATE var ,LEFT/RIGHT [,shifts Varمیتmmmواmند داده mاmیاز نmmوع LONG,WORD ,INTEGER , BYTEبmmmاشد . LEFT/RIGHTجهتچmرخشبmmmیتهmا و shiftکmmmه mاmختیاریمیبmmmاشد تmmmعmداد چmرخشبmmmیتهmا را مشخصمیکmmmند .در صmmورتقmmید نmmشدنمقmدار یکدر نmmظر گmmmرفته mمیشmmود . مثال ‏Dim A As Byte ‘a=2 ‏A = 128 ‏Rotate A, Left ,2 ‏lcd A 5 اعداد و متغیر ها و جداول...LOOKUP دستور SPACE برای ایجاد فضای خالی ازاین دستور استفاده می شود . ) Var = SPACE (x Xتmmmعmداد فmmmضایخmاmmلیستکmmmه mبmmmعنواmنرشته mدر متغیر رشته mاmی varجmایمیگmmmیرد . مثال } 5space } 6 space {‘ {‘ ‏Dim S As String *15 )S = Space (5 ”}”; lcd “{“ ;S ”}“ ; )lcd “{“ ; Space(6 ‏End 5 ...LOOKUPاعداد و متغیر ها و جداول FORMAT تابع . این دستور یک رشته عددی را شکل دهی می کند target = Format (source , “mask”) .ستmکلدهیاmmوع شmm نmask. یردmmmرار میگmm قtarget تایج درmmود و نmmکلدهیشmm شmهmmmستکmیاm اm رشتهsource مثال Dim S As String *10, I As Integer “ S = “ 123 S= Format (s, “ “) ‘5 space lcd S ‘s=“ 123” two space first ,then 123 ”S =“12345 S = Format(s , “000.000”) lcd S ‘s =“012.345 S = Format(s , “ + ”) lcd S ‘s =“+12345 End 5 اعداد و متغیر ها و جداول...LOOKUP تابع FUSING از این دستور برای روند کردن رشته های عددی استفاده می شود . )”target = Fusing (source , “mask sourceرشته mموردنظر بmmmراmیشmmکلدهی و نmmتایج در targetقmmرار میگmmmیرد mask.نmmوع شmmکل دهیاmست .عمل maskحتما بmmmاید بmmmا عالمت #شmmروع شmmود و حmداmقلبmmmاید یکیاز عالمات #یا & را بmmmعmد از ممیز داmشته mبmmmاشد .بmmmا اmستفmاده mاز #عmدد روند میشmmود و در صmmورتاmستفاده mاز & روندی صmmورتنmmمیگmmmیرد . مثال ‏Dim S As Single,Z As String * 10 ‏S = 123.45678 )”lcd Fusing(S , .”#.# # ‘lcd 123.46 )”lcd Fusing(S , .”#.& # ‘lcd 123.45 ‏End 5 اعداد و متغیر ها و جداول...LOOKUP جدولLOOKUP توسط این جدول می توان مقدار دلخواهی را از جدولی برگرداند. ) var = LOOKUP(value , label Labelبmmmرچسبجmدولو valueاmندیسداده mدلخواmه mاmست .داده mبmmmرگmشتنیاز جmدولدر متغیر varقmmرار میگmmmیرد value =0. اولینداده mدر جmدولرا بmmmرمیگmmmرداmند .تmmmعmداد اmندیسها و مقدار داده mبmmmرگmشتیبmmmه mتmmmرتیبن mهmایتا میتmmmواmند 255و 65535بmmmاشد . داده دو بایتی داخل جدول بایستی با عالمت %پایان یابد . نکته مثال ‏Dim B1 As Byte, I As Integer )B1= lookup(2 , Dta ‏lcd B1 ) ‘lcd 2 (zero based ) I = lookupstr( 0, Dta2 ‏lcd I ‘lcd 1000 :Dta ‏Data 1 , 2 , 3, 4 , 5 :Dta2 ‏Data 1000% , 2000% 6 اعداد و متغیر ها و جداول...LOOKUP جدولLOOKUPSTR توسط این جدmول می توان رشته دلخواهی را از جدولی برگرداند. ) var = LOOKUPSTR(value , label Labelبmmmرچسبجmدولو valueاmندmیسرشته mدلخواmه mاmست .رشته mبmmmرگmشتنیاز جmدولدر متغیر رشته mاmی varقmmرار میگmmmیرد value =0. mاولینرشته mدر جmدولرا بmmmرمیگmmmرداmند .تmmmعmداد اmندیسها ن mهmایتا می تmmmواmند 255بmmmاشد . مثال ‏Dim S As String*4 , Idx As Byte ) Idx = 0 : S = lookupstr( idx , Sdata ‏lcd S ‘ This ‏End :Sdata ”Data “This” , “is” , “a test 6 توابع ریاضی و محاسباتی ميكروكنترلرهايِ AVR 6 عالمت توابع ریاضی و محاسباتی... عملگرmهای ریاضی از عملگرهای ریاضی روبرو می توانید در محیط BASCOMاستفاده نماییدو عملیات ریاضی خود را انجام دهید . نماد عالمت ضرب * عالمت جمع + عالمت تفریق - عالمت ممیز . عالمت تقسیم / عالمت کوچکتر از > عالمت تساوی = عالمت بزرگتر از < عالمت بتوان ^ عالمت کوچکتر یا مساوی => عالمت بزرگتر یا مساوی <= عالمت مخالف <> 6 ...یاضی و محاسباتیmتوابع ر های منطقیmعملگر : به قرار زیر استBASCOM عملگر های منطقی نماد AND CONJUNCTION OR DISJUNCTION XOR EXCLUSIVE OR NOT COMPLIMENT A = 63 and 19 lcd A 6 معرفی ‘’19 lcd مثال  توابع رmیاضی و محاسباتی... تابع ABS این دستور به معنای ریاضی ( |VAR = |VAR2قدرمطلق) است . ‏ مثال ‏Dim A As Integer , C As Integer ‏A = -1000 )|C = ABS (A ‘c=|a ‏lcd C ‘c= 1000 ‏End 6 ...یاضی و محاسباتیmتوابع ر EXP تابع Target = Exp (source) .ستm اSINGLE mوع دادهmm متغیریاز نTarget .ستm اsource نmتواmmm بe اmmmبر بmراmmm بTarget مثال Dim X As Single X= Exp( 1.1) lcd X X = 1.1 X= Exp( X) lcd X End 6 ‘lcd 3.004166124 ‘lcd 3.004166124  ...یاضی و محاسباتیmتوابع ر LOG10 تابع Target = Log10 (source) هر دوsource وTarget . قرار می گیردtarget در متغیرsource متغیر یا ثابت10 لگاریتم پایه . هستندsingle داده نوع مثال Dim S1 As Single, S2 As Single S1 = 0.01 S2 = Log10(S1) lcd S2 For S1=1 to 100 S2 = Log10(S1) lcd S1 ;” “ ;S2 NEXT End 6 توابع رmیاضی و محاسباتی... تابع LOG این دستور لگاریتم طبیعی یک داده از نوع SINGLEرا برمی گرداند . )Target = Log (source لگاریتم متغیر یا ثابت sourceاز نوع داده singleگرفته می شود .ودر متغیر targetقرار می گیرد . ‏ مثال ‘4.605170 ‏Dim X As Single )X = Log(100 ‏lcd X ‏End 6 توابع رmیاضی و محاسباتی... تابع RND این دستور یک عدد تصادفی برمی گرداند . نکته )VAR= RND (limit عدد تصادفی بین 0و limitبدست آمده و mدر متغیر varقرار می گیرد .با هربار استفاده از این دستور عدد مثبت تصادفی دیگری بدست خواهد آمد . limitباید یک عدد مثبت باشد . ‏ مثال ‘get random number ‏Dim X As Integer ‏Do )I = Rnd (100 ‏lcd I ‏Wait 1 ‏Loop ‏End 6 توابع رmیاضی و محاسباتی... تابع SIN این دستور سینوس ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال )‘Vsin = sin(p/2 ‘0.9999332 ‏Dim X As Single ‏Dim Vsin As Single ‏Const Pi= 3.14159265 ‏X= Pi/2 )Vsin = Sin (X ‏lcd Vsin ‏End 7 توابع رmیاضی و محاسباتی... تابع COS این دستور کسینوس ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد . تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال )‘Vcos = cos(p/2 ‘0.0000066 ‏Dim X As Single ‏Dim Vcos As Single ‏Const Pi= 3.14159265 ‏X= Pi/2 )Vcos = Cos (X ‏lcd Vcos ‏End 7 توابع رmیاضی و محاسباتی... تابع TAN ) Var = TAN (source این دستور تانژانت ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال )‘Vtan = tan(p*2 ‘ -0.00000357 ‏Dim X As Single ‏Dim Vtan As tangle ‏Const Pi= 3.14159265 ‏X= Pi*2 )Vtan = tan (X ‏lcd Vtan ‏End 7 توابع رmیاضی و محاسباتی... تابع SINH )Var = SINH( source این دستور سینوس هایپربولیک ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 0.512 )Y = Sinh (X ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع COSH )Var = COSH( source این دستور کسینوس هایپربولیک ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 0.512 )Y = Cosh (X ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع TANH )Var = TANH( source این دستور تانژانت هایپربولیک ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 0.512 )Y = Tanh (X ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع ASIN )Var = ASIN( source این دستور آرکسینوس ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد . ورودی تابع عددی بین 1-و 1+می باشد . مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 0.5 )Y = Asin (X ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع ACOS )Var = ACOS( source این دستور آرککسینوس ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 0.5 )Y = ACOS (X ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع ATN )Var = ATN( source این دستور آرک تانژانت ثابت یا متغیر sourceرا در متغیر varاز نوع SINGLEقرار می دهد .تمام دستورات مثلثاتی با رادیان کار می کنند و ورودی این دستور بایستی رادیان باشد . ‏ مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 1 ‏Y = atn (X) * 4 ‏lcd X ; “ ; “ ;Y ‏End 7 توابع رmیاضی و محاسباتی... تابع DEG2RAD )Var =DEG2RAD( single برای تبدیل درجه به رادیان از این دستوراستفاده می شود . زاویه singleبه رادیان تبدیل می شود و در متغیر VARاز نوع داده SINGLEقرار می گیرد . مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 180 )Y = Deg2rad (X ‏lcd Y ‘3.141592 ‏End 7 توابع رmیاضی و محاسباتی... تابع RAD2DEG )Var =RAD2DEG( single برای تبدیل رادیان به درجه از این دستوراستفاده می شود . رادیان singleبه درجه تبدیل می شود و در متغیر VARاز نوع داده SINGLEقرار می گیرد . مثال ‏Dim X As Single ‏Dim Y As Single ‏X= 3.141592 )Y = Rad2Deg (X ‏lcd Y ‘179.9999 ‏End 8 توابع رmیاضی و محاسباتی... تابع ROUND )Var =ROUND( x متغیر یا داده Xاز نوع SINGLEروند شده و در متغیر VARاز نوع داده SINGLEقرار می گیرد . ‏ مثال ; Round(-2.3)= -2 ; Round(-2.8)= -3 ‏Round(2.3) =2 ‏Round(2.8)=3 8 تبدیل کدها و متغیرها به یکدیگر ميكروكنترلرهايِ AVR 8 تبدیل کدها و متغیرها به یکدیگر ... دستور ASC )Var = ASC (string این دستور اولین کاراکتر یک متغیر از نوع داده STRINGرا به مقدار اسکی آن تبدیل می کند . ‏ مثال ‏Dim A As Byte , S As string ”S= “ABC )A = ASC(s ‏lcd A ‘will lcd 65 ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور HEX )Var = Hex (x این دستور یک داده از نوع BYTE,INTEGER , WORD , LONGرا به مقدار هگزادسیمال تبدیل می کند . مقدار HEXمتغیر یا ثابت Xدر متغیر VARجای می گیرد . ‏ مثال ‏Dim A As Byte , S As string*10 ‏A= 123 )S= Hex(A ‏lcd S ‘7B will lcd )lcd Hex(A ‘7B will lcd too ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور HEXVAL )Var = HexVal (x این دستور یک داده هگزدسیمال را به مقدار عددی تبدیل می کند . مقدار عددی داده هگزدسیمال Xکه می تواند LONG , WORD , INTEGER , BYTEباشد در متغیر VARجای می گیرد . ‏مثال ‏Dim A As Integer , S As string*15 ”S= “0A )A = Hexval (S ‏lcd A ‘10 will be lcd ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور MAKEBCD )Var1 = MAKEBCD (Var2 این دستور متغیر یا ثابت var2را تبدیل به مقدار BCDاش می کند و در متغیر var1جای می دهد . ‏مثال ‘101 will show ‏Dim A As Byte ‏A = 65 )A = Makebcd (A ‏Lcd A ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور MAKEDEC )Var1 = MAKEDEC (Var2 برای تبدیل یک داده BCDنوع INTEGER , WORD , BYTEبه مقدار DECIMALاز این دستوراستفاده می شود .مقدار دسیمال متغیر یا ثابت var2در متغیر var1 جای می گیرد . ‏مثال ‏Dim A As Byte ‏A = 65 ‏Lcd A ‘ A = 101 ‏Lowerline )Lcd Bcd (A )A = Makedec (A “ Lcd “;A ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور MAKEINT )Varn = MAKEINT (LSB , MSB این دستور دو بایت را به هم متصل می کند و یک داده نوع WORDیا INTEGERمی سازد که LSBبایت کم ارزش و MSBبایت پر ارزش متغیر دو بایتی Varnرا تشکیل می دهد . ‏Varn = (256*MSB )+LSB ‏مثال ‏Dim A As Integer, I As Integer ‏A=2 )I = Makeint (A , 1 ‘(1*256)+2 =258 ‏End 8 تبدیل کدها و متغیرها به یکدیگر ... دستور STR ) Var = STR (X با این دستور می توان یک متغیر عددی ( )Xرا به رشته ( )VARتبدیل کرد . ‏مثال ‘ A is a num ‘now A is a string ‏Dim A As Byte , S As String*10 ‏A = 123 ) S= Str (A ‏lcd S ‏End 8 ... تبدیل کدها و متغیرها به یکدیگر VAL دستور Var = VAL (S ) . ) تبدیل کردVAR( ) را به متغیر عددیS( با این دستور می توان یک رشته مثال Dim A As Byte , S As String*10 S= “123” ‘now S is a string A = Val(S) ‘convert string to num lcd A A = A*2 ‘now you can use it as a num lcd A ‘ 246 lcds End 9 تبدیل کدها و متغیرها به یکدیگر ... دستور STRING ) Var = STRING (m , n این دستور کد اسکی mرا با تعداد تکرار nتبدیل به رشته کرده و در متغیر varقرار می دهد .در صورت قرار دادن m =0یک رشته بطول 255کاراکتر تولید می شود و.قرار دادن n = 0قابل قبول نیست . ‏مثال ‘AAAAA ‏Dim S As String*15 ) S= String (5 , 65 ‏lcd S ‏End 9 تبدیل کدها و متغیرها به یکدیگر ... دستور BIN2GREY ) Var1 = BIN2GREY (Var2 متغیر var2که می تواند داده ای از نوع WORD , INTEGER , BYTE , LONG باشد به کد گری تبدیل شده و در متغیر VAR1قرار می گیرد . ‏مثال ‏Dim B As Byte ‘0 1 3 2 6 7 5 4 12 13 15 ‏For B = 0 To 15 ) … lcd Bin2grey (B ‏Next ‏End 9 تبدیل کدها و متغیرها به یکدیگر ... دستور GREY2BIN ) Var1 = grey2bin (Var2 کد گری var2به مقدار باینری تبدیل شده و در متغیر var1که می تواند داده ای از نوع WORD , INTEGER , BYTE , LONGباشد قرار می گیرد . ‏مثال ‏Dim B As Byte ‘0 1 3 2 7 6 4 5 15 14 ‏For B = 0 To 15 ) … lcd Grey2bin (B ‏Next ‏End 9 رجیسترها و آدرس های حافظه ميكروكنترلرهايِ AVR 9 رmجیسترmها و آدرmس های حافظه... تمام میکروهای AVRدارای 32رجیستر 8بیتی ( ) R0 –R31همه منظوره در CPU خود هستند . رجیسترهای ) R31(MSBبا ) R30(LSB) , R29(MSBبا R28(LSBو ) R27(MSBبا ) R26(LSBتشکیل سه رجیستر 16بیتی با ترتیب با نامهای X,Y,Z را می دهند . 9 ...رجیسترها و آدرس های حافظه SET دستور Set Bit/Pin Set Var.x . توسط این دستور می توان یک بیت را یک کرد mوع دادهmm متغیریاز نVar اشدوmmm بPORTB.1 مانندSFRیتو یا یکmmmند یکبmواmmm میتBit اmmm ت0 ندmواmmm میتBYTEیmراmmm بX . اشدmmm بBYTE , INTEGER , WORD , LONG . اشدmmm ب31 اmmm ت0 ندmواmmm میتLONGیmراmmm و بWORD یmراmmm ب15 اmmm ت0 , 7 مثال Dim B1 As Bit , B2 As Byte , C As Word , L As Long Set Portb.1 ‘set bit 1 of port B Set B1 ‘bit variable Set B2.1 ‘set bit 1 of var b2 Set C.15 ‘set highest bit of word Set L.31 ‘set MS bit of LONG 9 ...رجیسترها و آدرس های حافظه TOGGLE دستور . این دستور مقدار منطقی یک پایه یا یک بیت را معکوس می کند TOGGLE pin/bit . اشدmmmیتبmmm و یا یکبPORTB.1 مانندSFRند یکmواmmm میتPIN مثال Dim VAR As Byte Config Pinb.0 = output Toggle portb.0 Waitms 1000 Toggle Portb.0 9 ‘portb.0 is an output now ‘toggle state ‘wait for 1 second ‘toggle state again ...رجیسترها و آدرس های حافظه RESET دستور . توسط این دستور می توان یک بیت را صفر کرد RESET pin/bit RESET Var.x mوع دادهmm متغیریاز نVar اشدوmmm بPORTB.1 مانندSFRیتو یا یکmmmند یکبmواmmm میتBit اmmm ت0 ندmواmmm میتBYTEیmراmmm بX . اشدmmm بBYTE , INTEGER , WORD , LONG . اشدmmm ب31 اmmm ت0 ندmواmmm میتLONGیmراmmm و بWORD یmراmmm ب15 اmmm ت0 , 7 مثال Dim B1 As Bit , B2 As Byte , I As Integer reset Portb.3 ‘reset bit 3 of port B reset B1 ‘bit variableres reset B2.0 ‘reset bit 0 of var b2 reset I.15 ‘reset highest bit of I 9 رجیسترها و آدرس های حافظه... دستور BITWAIT ‏BITWAIT X, SET/RESET توسط این دستور اجرای برنامه تا زمانی که بیت SET( = 1) ,Xیا ) RESET (= 0 شود در خط جاری متوقف می ماند .در صورت TRUEشدن شرایط ,اجرای برنامه از خط بعد ادامه می یابد X .می تواند یک بیت رجیستر داخلی مانند PORTB.Yباشد که Yمی تواند بین اعداد صفر تا 7تغییر کند . ‏مثال ‏Dim A As Bit ‏Bitwait A , .Set ‘ wait until Bit A is Set ‏Bitwait PortB.7 , reset ‘ wait until Bit 7 of Port B is 0 9 رجیسترها و آدرس های حافظه... دستور CPEEK )Var = CPEEK(address از این دستور برای برگرداندن بایتی که در ادرسی از حافظه کدی ذخیره شده است استفاده می کنیم .با این دستور می توانید به رجیسترهای داخلی نیز دسترسی پیدا کنید .البته با این دستور نمی توان در حافظه داخلی چیزی نوشت . ‏ مثال ‏Dim I As Integer , B1 As Byte ‏For I = 0 To 31 ) B1 = Peek (I ‘ only 32 registers in AVR )lcd Hex (b1 )‘ get byte from internal memory (r0-r31 ‏Next 1 رجیسترها و آدرس های حافظه... دستور CPEEKH )Var = CPEEKH(address با این دستور می توان بایت ذخیره شده در صفحه باالی حافظه کدی () FLASH MEM میکرو MEGA103یا دیگر میکروها که دارای K 128حافظه است را خواند . ADDRESSآدرسحmافظه mو محتواmیآدرسدر متغیر یکبmmmایت VARقmmرار میگmmmیرد . ) Cpeek( 0محتواmیاولینبmmmایتحmافظه mبmmmاmmالی K 64را بmmmرمیگmmmرداmند. 1 رجیسترها و آدرس های حافظه... دستور LOADADR ‏LOADADR var ,reg با این دستور می توانید آدرس یک متغیر را در یک جفت رجیستر ذخیره کنید Var .متغیری است که آدرس آن در متغیرهای دوبایتی X,Y,Zذخیره می شود و REGرجیسترهای X,Y, Zهستند . این دستور جز دستورات اسمبلی است و برای کمک به برنامه نویسان اضافه شده است . ‏ مثال ‏Dim S As String ,A As Byte ‏asm$ ‏Loadadr S , X ‘load address into R26 and R27 ‏ld _temp1 , X ‘load value of location R26/R27 into ‘)R24 ( _temp1 ‏end asm$ ‏End 1 رجیسترها و آدرس های حافظه... دستور OUT ‏OUT address , value توسط این دستور می توان یک بایت به یک پورت سخت افزاری یا آدرس حافظه داخلی /خارجی ارسال کرد . Valueبmmmه mآدرس addressکmmmه mمیتmmmواmند بmmmین 0H – FFFF Hبmmmاشد فmmmرستاده mمیشmmود .دستور OUTمیتmmmواmند در تmmmمام mمکانهmایحmافظه AVR mبmmmنویسد .تmmmوجه mکmmmنید کmmmه mبmmmراmی addressیک WORDتmmmعmریفمیشmmود . ‏ مثال ‘send 1 to the databus (d0 – d7) at address 8000 ‏Dim A As Byte ‏Out &H8000 , 1 ‏End 1 رجیسترها و آدرس های حافظه... دستور INP )Var = INP (address توسط این دستور می توان یک بایت از پورت سخت افزاری یا آدرس حافظه داخلی /خارجی خواند . محتوای آدرس addressکه می تواند بین 0H – FFFF Hباشد خوانده شده و در متغیر var قرار می گیرد .دستور INPمی تواند از تمام مکانهای حافظه AVRبخواند . ‏ مثال ‏Dim A As Byte ) A = INP (&H8000 ‘read value is placed on databus(d0 – d7) at َ‘address 8000 ‏lcd A ‏End 1 رجیسترها و آدرس های حافظه... دستور PEEK )Var = PEEK (address این دستور محتوای یک رجیستر را برمی گرداند . Addressآدرسرجیسترهای R0 – R7اmستکmmmه mبmmmین 31 - 0میبmmmاشد .محتواmیرجیستر در متغیر varجmایمیگmmmیرد .دستور ) ( PEEKفmmmقط میتmmmواmند محتواmیرجیسترها را بmmmخواmند ولی ) (INPمیتmmmواmند از تmmmمام mمکانهmایحmافظه mبmmmخواmند . ‏ مثال ‘return the first byte of the internal memory (R0) End ‏Dim A As Byte ) A = PEEK (0 1 رجیسترها و آدرس های حافظه... دستور POKE ‏POKE address , value با این دستور می توانیم یک بایت داده را در یکی از رجیسترها بنویسیم . مقدار متغیر یا ثابت یک بایتی معث در آدرس addressکه بین 31 - 0برای رجیسترهای R0 – R7است نوشته می شود . ‏ مثال ‘write 5 to R1 ‏Poke 1 , 5 ‏End 1 رجیسترها و آدرس های حافظه... دستور VARPTR ) Var = VARPTR (var2 این دستور آدرس یک متغیر را در مکان حافظه بر می گرداند . آدرس متغیر var2در مکان حافظه بدست آمده و در متغیر varقرار می گیرد . ‏ مثال ‏Dim B As Xram Byte At &H300 , I As Integer , W As Word )W = Varptr (b )lcd Hex(W ‘lcd &H0300 ‏End 1 دستورالعملهای حلقه و پرش ميكروكنترلرهايِ AVR 1 دستورالعملهای حلقه و پرش ... دستورالعمل JMPو GOTO ‏GOTO label ‏JMP label با این دستورات می توان به برچسب labelپرش کرد .برچسب labelباید با عالمت )colon( : پایان یابد و می تواند تا 32کارکتر طول داشته باشد .به خاطر داشته باشید زمانیکه از دو label هم نام استفاده شود کامپایلر به شما warningمی دهد .دستور returnبرای برگشت از برچسب وجود ندارد . ‏ مثال ‘A label must end with a colon ‘Increment A ‘Or Jmp start ‘Close If ‏Start : ‏A = A +1 ‏If A <10 ‏Goto start ‏End If ‏End 1 دستورالعملهای حلقه و پرش ... دستورالعمل DO-LOOP فرم کلی دستورات DO … LOOPبصورت زیر می باشد . ‏DO ‏statements ] LOOP [ UNTIL expression دستورالعمل statementتا زمانی که expressionدارای ارزش TRUEیا غیر صفر باشد تکرار خواهد شد .بنابراین این نوع حلقه حداقل یکبار تکرار می شود DO –LOOP.بتنهایی یک حلقه بینهایت است که با EXIT DOمی توان از درون حلقه خارج شد و اجرای برنامه در خط بعد از حلقه ادامه یابد . ‏ مثال ‘start the loop ‘Increment A ‘lcd It ‘repeat until A = 10 ‏Dim A As Byte ‏Do ‏A=A+1 ‏lcd A ‏Loop Until A = 10 ‏lcd A 11 ... دستورالعملهای حلقه و پرش FOR-NEXT دستورالعمل . بصورت زیر می باشدFOR .. NEXT فرم کلی دستورات FOR var = start TO end [STEP VALUE ] statements NEXT var ددیmابتعmmmنند یکثmواmmmستو هر دو میتmایانیاmmm مقدار پend نوm آm مقداراولیهstart mهmmmند کmmmانتر عملمیکmmنیککmعنواmmm بVar دmعmmm بvar mامmm وجود ن. اشدmmmند مثبتیا منفیبmواmmm میتmهmmmشانمیدهد کmm را نstepددیm مقدار عValue . اشندmmmددیبmیا متغیر ع .یستmmمینmلزاmm اNEXT از مثال Dim A As Byte , B1 As Byte , C As Integer For A = 1 To 10 Step 2 lcd “this is a A “ ; A Next A For C = 10 To -5 Step -1 lcd “this is a C “ ; C Next For B1 = 1 To 10 lcd “this is a B1 “ ; B1 Next 11 دستورالعملهای حلقه و پرش ... دستورالعمل WHILE-WEND ‏WHILE condition ‏statements ‏WEND دستورالعمل While-Wendتشکیل یک حلقه تکرار می دهد که تکرار این حلقه تا زمانی ادامه می یابد که عبارت بکاربرده شده نتیجه را FALSEکند و یا مقدار صفر بگیرد .دستورالعمل while بصورت ورود به حلقه به شرط می باشد ,بنابراین Whileممکن است در حالتهایی اصال اجرا نشود . بخش statementتا وقتی که حاصل conditionصفر یا FALSEنشده است تکرار خواهد شد . مثال ‏Dim A As Byte ‏A=1 ‏While A <10 ‏lcd A ‏Incr A ‏Wend 11 دستورالعملهای حلقه و پرش ... دستورالعمل IF در کلیه حالتهای زیر عبارت statementمی تواند یک دستورالعمل ساده یا چند دستورالعمل مرکب باشد . حالت :0 ‏If Expression THEN statement دستورالعمل statementزمانی اجرا می شود که عبارت expressionدارای ارزش TRUE باشد . حالت :1 ‏If Expression Then ‏statement1 ‏Else ‏statement2 ‏End If درصورتی که عبارت expressionدارای ارزش TRUEباشد دستورالعمل statement1اجرا خواهد شد ,در غیر این صورت دستورالعمل statement2اجرا می شود . 11 دستورالعملهای حلقه و پرش ... دستورالعمل ... IF حالت :2 ‏If Expression1 Then ‏statement1 ]Elseif [Expression2 Then ‏statement2 ‏Else ‏statement3 ‏End If درصورتی که عبارت expression1دارای ارزش TRUEباشد دستورالعمل statement1اجرا خواهد شد ,در صورتی که عبارت expression1دارای ارزش FALSEولی عبارت اختیاری expressionدارای ارزش TRUEباشد دستورالعمل statement2اجرا می شود و در غیر این صورت دستورالعمل statement3اجرا خواهد شد . همچنین با دستور IFمی توان صفر یا یک بودن یک بیت از یک متغیر را امتحان کرد . ‏IF bit =1 THEN OR IF bit =0 THEN 11 11 ... دستورالعملهای حلقه و پرش ... IF دستورالعمل مثال Dim Var As Byte , Idx As Byte Idx = 1 If Var.Idx = 1 then Set portb.0 .... Else Dim A As Integer A = 10 If A = 10 then “ lcd “this part is executed Else ”lcd “ this will never be executed End if  دستورالعملهای حلقه و پرش ... دستورالعمل CASE اگر متغیر VARبا مقدار test1برابر باشد statement1اجرا می شود و سپس اجرای برنامه بعد از end selectادامه می یابد . در غیر اینصورت اگر متغیر varبا مقدار test1برابر نباشد ولی با مقدار test2برابر باشد statement2اجرا می شود و سپس اجرای برنامه بعد از end selectادامه می یابد. و نهایتا اگر متغیر varبا هیچکدام از مقادیر test1و test2برابر نباشد statement3,اجرا می شود و سپس اجرای برنامه بعد از end selectادامه می یابد . شما می توانید به صورتهای زیر نیز متغیر را امتحان کنید : ‏Case is >2 اگر متغیر موردنظر بزرگتر از 2باشد . و یا می توان محدوده ای را برای امتحان کردن در نظر گرفت : ‏Case 2 to 5 اگر متغیر موردنظر بین 2تا 5باشد . 11 11 ... دستورالعملهای حلقه و پرش CASE.… دستورالعمل مثال Dim X As Byte Do Input “ X?” , X Select Case X ”Case 1 To 3 ”Case 4 ”Case Is >10 “ Case Else End Select Loop End ‘test X :lcd “ 1 or 2 or 3 :lcd “4 :lcd “> 10 :lcd “no  دستورالعملهای حلقه و پرش ... دستور EXIT با این دستور می توانید فقط از یک ساختار یا حلقه خارج شوید و ادامه برنامه را بعد از ساختار یا حلقه ادامه دهید . ‏EXIT FOR ‏EXIT DO ‏EXIT WHILE ‏EXIT SUB ‏EXIT FUNCTION ‏ مثال ‏Do ‏A = A +1 ‏If A = 100 Then ‏Exit Do ‏End If ‏Loop ‏End 11 11 ... دستورالعملهای حلقه و پرش ON VALUE دستورالعمل . با این دستور با توجه به مقدار متغیر می توان به توابع یا برچسب های مختلفی پرش کرد ON var [GOTO] [GOSUB] label1 [,label2] وLABEL1 اشد وmmm بPORTD مانندSFRند یکmواmmm میتmهmmmدنکmmمتحانشmیاmراmmmظر بmm متغیر مورد نVar . ودmmرشمیشmmmا پmنهm آmهmmm بVAR مقدارmهmmm بmوجهmmmا تmmm بmهmmmرچسبهاییهستند کmmm ب.. وLABEL2 مثال Dim X As Byte X=1 ON X Gosub Lbl2,Lbl3 X=0 ON X Goto Lbl1, Lbl4 :Lbl1 Incr X lcd X :Lbl2 End lcd X return ‘jump to sub lbl3 ‘jump to label lbl1  ایجاد تاخیر در برنامه ميكروكنترلرهايِ AVR 1 ایجاد تاخیر در برنامه … دستور DELAY این دستور برای مدت کوتاهی به مقدار 1000میکرو ثانیه در اجرای برنامه تاخیر ایجاد می کند . ‏ مثال ‘Wait for hardware to be ready ‏DELAY 1 ایجاد تاخیر در برنامه … دستور WAITus برای ایجاد تاخیر در برنامه از این دستور می شود . ‏WAITus microsecond اجرای برنامه به مدmت microsecondمیکرو ثانیه متوقف می شود. mپس از سپری شدن زمان مشخص شده اجرای برنامه از خط بعد ادامه می یابد Microsecond .می تواند عددی بین (– 1 ) 255باشد . نکته دستورات تاخیری زمان دقیق را به شما نمی دهد .برای بدست آوردن زمان دقیق از تایمرها استفاده کنید . ‏ مثال ‏Waitus 10 ”lcd “BASCOM ‏End 1 ایجاد تاخیر در برنامه … دستور WAITms برای ایجاد تاخیر در برنامه از این دستور می شود . ‏WAITms milisecond اجرای برنامه به مدت milisecondمیلی ثانیه متوقف می شود .پس از سپری شدن زمان مشخص شده اجرای برنامه از خط بعد ادامه می یابد Milisecond .می تواند عددی بین (– 1 ) 65535باشد . ‏مثال ‏Waitms 10 ”lcd “BASCOM ‏End 1 ایجاد تاخیر در برنامه … دستور WAITus برای ایجاد تاخیر در برنامه از این دستور می شود . ‏WAIT second اجرای برنامه به مدت secondثانیه متوقف می شود .پس از سپری شدن زمان مشخص شده اجرای برنامه از خط بعد ادامه می یابد. ‏ مثال ‏Wait 3 ”lcd “BASCOM ‏End 1 زیر برنامه و تابع ميكروكنترلرهايِ AVR 1 زیر برنامه و تابع … معرفی تابع DECLARE FUNCTION از این دستور برای معرفی تابع در ابتدای برنامه استفاده می شود .زمانی که بخواهیم تابعی را معرفی کنیم بایستی تابع معرفی شده باشد .در صورت استفاده از تابع می بایستی یک داده برگردانده شود . ‏DECLARE FUNCTION TEST[( [BYREF/BYVAL]var as type1)] As type2 TESTنmmام mتmmmابع mموردنظر اmست .اmنتقاmmلداده mبmmmصورت BYVALبmmmاعثمیشmmود کmmmه mیککmmmپیاز متغیر بmmmه mتmmmابعm فmmmرستاده mشmmود و در محتواmیآmنهیچ تmmmغیریاmیجاد نmmشود .ولیدر حmاmmلت BYREFآدرسمتغیر ارساmmلو تmmmغیراmتدر آmن اmثر میگmmmذارد و داده mبmmmرگmشتیدر صmmورتاmنجام mعملیاتبmmmر رویآmنبmmmا مقدار اولیه mخmود بmmmراmبر نmmخواmهد بmmmود .در صmmورتعmدم mاmستفاده mاز گmmmزینه ]BYREF/BYVAL[ mبmmmصورتپmmmیشفmmmرضداده mبmmmصورتBYREF فmmmرستاده mمیشmmود Type1 .نmmوع داده mارساmmلشmmده mو type2نmmوع داده mبmmmرگmشتیاmست .کmmmه mهر دو میتmmmواmنند دادهm نmmوع BYTE , INTEGER, WORD , LONG ,STRINGبmmmاشند . 1 زیر برنامه و تابع … معرفی تابع ...DECLARE FUNCTION ‏ مثال در مثال زیر Iبصورت BYVALفرستاده شده است بنابراین یک کپی از مقدار Iبه زیر تابع فرستاده می شود و هیچ تغیری در محتوای آن ایجاد نمی شود S .بصورت BYREFفرستاده می شود و تغیر در آن صورت می گیرد .فراخوانی تابع MYFUNCTIONبا Kو Zاز نوع داده INTEGERو STRINGاست و مقدار برگشتی از نوع INTEGERاست که در متغیر Tقرار می گیرد .شما می توانید در محدوده تابع یک متغیر محلی تعریف کنید . 1 1 … زیر برنامه و تابع ... DECLARE FUNCTIONمعرفی تابع مثال Declare Function Myfunction (Byval I As Integer , S As String )As Integer Dim K As Integer , Z As String*10, T As Integer K =5 :Z = “123 “ : T = Myfunction(K , Z ) Lcd T ‘25 Lcd Z ‘Bascom Lcd K ‘5 End Function Myfunction (Byval I As Integer , S As String )As Integer local P As Integer Functions P=I*5 I=5 “ S = “Bascom T=P Myfunction = T End Function  زیر برنامه و تابع … معرفی زیر برنامه DECLARE SUB از این دستور برای معرفی زیر برنامه استفاده می شود .زیر برنامه ای که قصد فراخوانی آن را داریم بایستی در ابتدای برنامه یا حداقل قبل از فراخوانی آن معرفی شده باشد . ])DECLARE SUB TEST[( [BYREF/BYVAL] var as type زیر برنامه برخالف تابع مقداری برنمی گرداند .در زمان ارسال داده بصورت BYREFآدرس داده به زیر برنامه فرستاده می شود و در محتوای آن تغیر ایجاد می شود .ولی در حالت BYVALیک کپی از داده فرستاده می شود و به هیچ وجه در محتوای آن تغیری ایجاد نمی شود TEST.نام زیربرنامه و VARنام متغیر ارسالی به زیر برنامه و TYPEنوع آن است که می تواند داده نوع BYTE , INTEGER, WORD ,STRING باشند . برای نوشتن زیر برنامه ابتدا نام آنرا توسط دستور زیر تعریف کرده و سپس شروع به نوشتن زیربرنامه می کنیم . ] ) SUB Name [ ( var1 NAMEنmmام mزیربرنامه mکmmmه mبmmmاید تmmmوسط دستور Declareمعmرفیشmmده mبmmmاشد و بmmmا دستور End Subپmmmایانمی یابد . 1 1 … زیر برنامه و تابع ...DECLARE SUB معرفی زیربرنامه مثال Dim A As Byte , B1 As Byte , C As Byte Declare Sub Test ( A As Byte ) A =1 : B1 = 2 : C = 3 lcd A ; B1;C ,123 will lcd Call Test (B1) lcd A ; B1;C ‘ 223 will lcd End Sub test (A As Byte ) lcd A ; B1 ; C ‘123 will lcd End Sub  زیر برنامه و تابع … فراخوانی CALL توسط این دستور زیر برنامه یا تابعی را فراخوانی می کنیم . )… CALL TEST( VAR1 , VAR2 , VAR1 , VAR2متغیرهاییکmmmه mبmmmه mزیر بmmmرنامه mاmنتقاmmل مییابند ,هستند .میتmmmواmنزیر بmmmرنامه mرا بmmmصورت زیر نmmیز فmmmراmخواmنیکmmرد . ‏TEST VAR1 , VAR2 الزم بتذکر است که نام زیر برنامه قبل از فراخوانی آن ,باید توسط دستور Declareفراخوانی شود .اگر بخواهیم عدد ثابت را به زیر برنامه انتقال دهیم بایستی حتما با آرگومان BYVALآن را انتقال دهیم . 1 1 … زیر برنامه و تابع ... CALL فراخوانی مثال Dim A As Byte , B As Byte Declare Sub Test ( B1 As Byte , Byval B2 As Byte ) A =65 Call Test ( A , 5 ) Test A , 5 lcd A ‘ will lcd A = 10 End Sub Test ( B1 As Byte , Byval B2 As Byte ) Lcd B1 LowerLine Lcd BCD(B2) B1 = 10 B2 = 15 End Sub  زیر برنامه و تابع … بکارگیری متغیر محلی یا LOCAL از این دستور برای تعریف متغیر محلی در زیربرنامه استفاده می کنیم . ‏LOCAL VAR As Type VARنmmام mمتغیر و typeنmmوع داده mاmستکmmmه mمیتmmmواmنند STRING , WORD , INTEGER , BYTE , SINGLE , LONGبmmmاشند نmmوع داده mهای ERAM , SRAM , XRAMو آراmیه mها نmmمی تmmmواmنند محلیتmmmعmریفشmmوند. یک متغیر محلی یک متغیر موقت است که فقط در هنگام فراخوانی زیر برنامه مربوطه برای آن فضا در نظر گرفته می شود و با برگشت از زیر برنامه عمر متغیر ( ) LIFE TIMEبه اتمام می رسد . نکته متغیرهای بیتی نمی توانند بصورت محلی تعریف شوند . 1 1 … زیر برنامه و تابع ...LOCAL بکارگیری متغیر محلی یا مثال Declare Sub Test2 Do Call test2 Loop End Sub Test2 Local A As Byte Incr A Lcd A End Sub  زیر برنامه و تابع … بکارگیری متغیر محلی یا LOCAL این دستور به زیربرنامه پرش می کند و اجرای برنامه را از آدرس برچسب ادامه می دهد . ‏GOSUB label LABELنmmام mبmmmرچسبیزیر بmmmرنامه mاmستکmmmه mبmmmه mآmنپmmmرشمیشmmود .تmmmوسط دستور RETURNمیتmmmواmناز SUBبmmmرگmشتکmmmرد و اmجراmیبmmmرنامه mبmmmعmد از دستور GO SUBاداmمه mمییابد . ‏ مثال ‘Jump to routine ‘After come back from routine lcd “Hello ‏Dim X As Byte ‏Gosub Routine ””lcd “ Hello ‏End ‏Routine ‏X=X+2 ‏lcd X ‏Return 1 پیکره بندی و کار با امکانات AVRدر ‏BASCOM 6 1 پیکره بندی پورت ها ميكروكنترلرهايِ AVR 1 پیکره بندی پورت ها ... برای تعیین جهت پایه پورتها از این پیکره بندی استفاده می نماییم .جهت یک پایه می تواند ورودی یا خروجی باشد . ‏Config Portx = State ‏Config Pinx.y = State X , Yبmmmسته mبmmmه mمیکرو میتmmmواmنند بmmmه mتmmmرتیبپmmmایه mهای 7- 0پmmmورتهای A ,B ,C ,D ,E ,Fبmmmاشند State .میتmmmواmند یکیاز گmmmزینه mهایزیر بmmmاشد : INPUTیا : 0در اmینحmاmmلترجیستر جهتداده mپmmmایه mیا پmmmورتاmنتخابشmmده mصmmفر میشmmود و پmmmایه mیا پmmmورتبmmmعنواmنورودیاmستفاده mمیشmmود . OUTPUTیا :1در اmینحmاmmلترجیستر جهتداده mپmmmایه mیا پmmmورتاmنتخابشmmده mیکمشود و پmmmایه mیا پmmmورتبmmmعنواmنخmروجیاmستفاده mمیشmmود . زمانیکه بخواهید از پورتی بخوانید بایستی از رجیستر PINپورت مربوطه استفاده کنید و در هنگام نوشتن در پورت بایستی در رجیستر PORTبنویسید . 1 1 ... پیکره بندی پورت ها مثال Dim A As Byte , Count As Byte Config Portd = input ‘configure PORT D for input mode A = Pind ‘Read data on Portd A = A And Portd ‘A = A & PORTD lcd A Bitwait Pind.7 , reset ‘wait until bit is low Config portb = output Portb = 10 ‘set portb to 10 Portb = Portb And 2 Set Portb.0 ‘set bit 0 of portb to 1 Incr Portb  پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 ‏ پورت A پورت Aیک I/Oدو طرفه 8بیتی است .سه آدرس از مکان حافظه I/Oاختصاص به پورت A دارد .یک آدرس برای رجیستر داده , PORTAدومی رجیستر جهت داده DDRAو سومی پایه ورودی پورت A , PINAاست .آدرس پایه های ورودی پورت Aفقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند .تمام پایه های پورت دارای مقاومت Pull upمجزا هستند . PINAیکرجیستر نmmیست .اmینآدرسدسترسیبmmmه mمقدار فmmmیزیکیبmmmر رویهر یکاز پmmmایه mهایپmmmورت Aرا ممکنمیسmmازد .زمانیکه PORTA mخmواmنده mمیشmmود ,داده mلmmچ پmmmورت Aخmواmنده mمیشmmود و زمانیکه mاز PINAخmواmنده mمیشmmود مقدار منطقیکmmmه mبmmmر رویپmmmایه mها موجود اmستخmواmنده mمی شmmود . 1 1 ... پیکره بندی پورت ها ATMEGA32 تهای میکروmرسی پورmبر A رجیسترهای پورت A - PORTA [PORT A DATA REGISTER ] رجیستر داده پورت PORTA PORTA PORTA PORTA PORTA PORTA 7 R/W 6 R/W 5 R/W 4R/W 3 2 R/W R/ W PORTA1 R/W PORTA R/W 0 A - DDRA [PORT A DATA DIRECTION REGISTER ] رجیستر جهت داده پورت PORTA 7 PORTA 6 R/W PORTA 5 R/W PORTA 4 R/W PORTA 3 R/W R/W PORTA 2 R/ W PORTA1 R/W PORTA 0 R/W A PINA- [PORT A INPUT PINS ADDRESS ] بایت آدرس پایه های ورودی پورت PORTA 7 PORTA 6 R/W PORTA 5 R/W PORTA 4 R/W PORTA 3 R/W R/W PORTA 2 R/ W PORTA1 R/W PORTA 0 R/W پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 استفاده از پورت Aبه عنوان یک I/Oعمومی دیجیتال تمام 8پایه موجود زمانیکه بعنوان پایه های I/Oدیجیتال استفاده می شوند دارای عملکرد مساوی هستند , Pan.پایه I/Oعمومی :بیت DDAnدر رجیستر DDRAمشخص کننده جهت پایه است .اگر DDAnیک باشد PAn , بعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDAnصفر باشد PAn ,بعنوان یک پایه ورودی در نظر گرفته می شود .اگر PORTAnیک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت Pull-upفعال می شود .برای خاموش کردن مقاومت باید PORTAnصفر شود یا اینکه پایه بعنوان خروجی تعریف شود .پایه های پورت زمانیکه ریست اتفاق می افتد به حالت Tri-stateمی روند . ‏Comment ‏Pull up ‏I/O ‏PORTAn ‏DDAn ‏Tri-state ‏No ‏Input 0 0 ‏PAn will source current if ext. pull up low ‏Yes ‏Input 1 0 ‏Push-Pull Zero output ‏No ‏Output 0 1 ‏Push-Pull one output ‏No ‏Output 1 1 1 پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 ‏ پورت B پورت Bیک I/Oدو طرفه 8بیتی است .سه آدرس از مکان حافظه I/Oاختصاص به پورت Bدارد .یک آدرس برای رجیستر داده , PORTBدومی رجیستر جهت داده DDRBو سومی پایه ورودی پورت B , PINBاست .آدرس پایه های ورودی پورت Bفقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند .تمام پایه های پورت دارای مقاومت Pull upمجزا هستند . PINBیکرجیستر نmmیست .اmینآدرسدسترسیبmmmه mمقدار فmmmیزیکیبmmmر رویهر یکاز پmmmایه mهایپmmmورت Bرا ممکنمیسmmازد .زمانیکه PORTB mخmواmنده mمیشmmود ,داده mلmmچ پmmmورت Bخmواmنده mمیشmmود و زمانیکه mاز PINBخmواmنده mمیشmmود مقدار منطقیکmmmه mبmmmر رویپmmmایه mها موجود اmستخmواmنده mمی شmmود . 1 1 ... پیکره بندی پورت ها ATMEGA32 تهای میکروmرسی پورmبر B رجیسترهای پورت B - PORTB [PORT B DATA REGISTER ] رجیستر داده پورت PORTB PORTB PORTB PORTB PORTB PORTB 7 R/W 6 R/W 5 R/W 4R/W 3 2 R/W R/ W PORTB1 R/W PORTB R/W 0 B - DDRB [PORT B DATA DIRECTION REGISTER ] رجیستر جهت داده پورت PORTB 7 PORTB 6 R/W PORTB 5 R/W PORTB 4 R/W PORTB 3 R/W R/W PORTB 2 R/ W PORTB1 R/W PORTB 0 R/W B PINB- [PORT B INPUT PINS ADDRESS ] بایت آدرس پایه های ورودی پورت PORTB 7 PORTB 6 R/W PORTB 5 R/W PORTB 4 R/W PORTB 3 R/W R/W PORTB 2 R/ W PORTB1 R/W PORTB 0 R/W پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 استفاده از پورت Bبه عنوان یک I/Oعمومی دیجیتال تمام 8پایه موجود زمانیکه بعنوان پایه های I/Oدیجیتال استفاده می شوند دارای عملکرد مساوی هستند , Pbn.پایه I/Oعمومی :بیت DDBnدر رجیستر DDRBمشخص کننده جهت پایه است .اگر DDBnیک باشد PBn , بعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDBnصفر باشد PBn ,بعنوان یک پایه ورودی در نظر گرفته می شود .اگر PORTBnیک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت Pull-upفعال می شود .برای خاموش کردن مقاومت باید PORTBnصفر شود یا اینکه پایه بعنوان خروجی تعریف شود .پایه های پورت زمانیکه ریست اتفاق می افتد به حالت Tri-stateمی روند . ‏Comment ‏Pull up ‏I/O ‏PORTBn ‏DDBn ‏Tri-state ‏No ‏Input 0 0 ‏PBn will source current if ext. pull up low ‏Yes ‏Input 1 0 ‏Push-Pull Zero output ‏No ‏Output 0 1 ‏Push-Pull one output ‏No ‏Output 1 1 1 پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 ‏ پورت C پورت Cیک I/Oدو طرفه 8بیتی است .سه آدرس از مکان حافظه I/Oاختصاص به پورت C دارد .یک آدرس برای رجیستر داده , PORTCدومی رجیستر جهت داده DDRBو سومی پایه ورودی پورت C , PINCاست .آدرس پایه های ورودی پورت Cفقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند .تمام پایه های پورت دارای مقاومت Pull upمجزا هستند . PINCیکرجیستر نmmیست .اmینآدرسدسترسیبmmmه mمقدار فmmmیزیکیبmmmر رویهر یکاز پmmmایه mهایپmmmورت ‏Cرا ممکنمیسmmازد .زمانیکه PORTC mخmواmنده mمیشmmود ,داده mلmmچ پmmmورت Cخmواmنده mمیشmmود و زمانیکه mاز PINCخmواmنده mمیشmmود مقدار منطقیکmmmه mبmmmر رویپmmmایه mها موجود اmستخmواmنده mمی شmmود . 1 1 ... پیکره بندی پورت ها ATMEGA32 تهای میکروmرسی پورmبر C رجیسترهای پورت C - PORTC [PORT C DATA REGISTER ] رجیستر داده پورت PORTC PORTC PORTC PORTC PORTC PORTC 7 R/W 6 R/W 5 R/W 4R/W 3 2 R/W R/ W PORTC1 R/W PORTC R/W 0 C - DDRC [PORT C DATA DIRECTION REGISTER ] رجیستر جهت داده پورت PORTC 7 PORTC 6 R/W PORTC 5 R/W PORTC 4 R/W PORTC 3 R/W R/W PORTC 2 R/ W PORTC1 R/W PORTC 0 R/W C PINC- [PORT C INPUT PINS ADDRESS ] بایت آدرس پایه های ورودی پورت PORTC 7 PORTC 6 R/W PORTC 5 R/W PORTC 4 R/W PORTC 3 R/W R/W PORTC 2 R/ W PORTC1 R/W PORTC 0 R/W پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 استفاده از پورت Cبه عنوان یک I/Oعمومی دیجیتال تمام 8پایه موجود زمانیکه بعنوان پایه های I/Oدیجیتال استفاده می شوند دارای عملکرد مساوی هستند , PCn. پایه I/Oعمومی :بیت DDCnدر رجیستر DDRCمشخص کننده جهت پایه است .اگر DDCnیک باشد , PCnبعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDCnصفر باشد PCn ,بعنوان یک پایه ورودی در نظر گرفته می شود .اگر PORTCnیک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت Pull-up فعال می شود .برای خاموش کردن مقاومت باید PORTCnصفر شود یا اینکه پایه بعنوان خروجی تعریف شود .پایه های پورت زمانیکه ریست اتفاق می افتد به حالت Tri-stateمی روند . ‏Comment ‏Pull up ‏I/O ‏PORTCn ‏DDCn ‏Tri-state ‏No ‏Input 0 0 ‏PCn will source current if ext. pull up low ‏Yes ‏Input 1 0 ‏Push-Pull Zero output ‏No ‏Output 0 1 ‏Push-Pull one output ‏No ‏Output 1 1 1 پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 ‏ پورت D پورت Dیک I/Oدو طرفه 8بیتی است .سه آدرس از مکان حافظه I/Oاختصاص به پورت D دارد .یک آدرس برای رجیستر داده , PORTDدومی رجیستر جهت داده DDRBو سومی پایه ورودی پورت D , PINDاست .آدرس پایه های ورودی پورت Dفقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند .تمام پایه های پورت دارای مقاومت Pull upمجزا هستند . PINDیکرجیستر نmmیست .اmینآدرسدسترسیبmmmه mمقدار فmmmیزیکیبmmmر رویهر یکاز پmmmایه mهایپmmmورت ‏Dرا ممکنمیسmmازد .زمانیکه PORTD mخmواmنده mمیشmmود ,داده mلmmچ پmmmورت Dخmواmنده mمیشmmود و زمانیکه mاز PINDخmواmنده mمیشmmود مقدار منطقیکmmmه mبmmmر رویپmmmایه mها موجود اmستخmواmنده mمی شmmود . 1 1 ... پیکره بندی پورت ها ATMEGA32 تهای میکروmرسی پورmبر D رجیسترهای پورت D - PORTD [PORT D DATA REGISTER ] رجیستر داده پورت PORTD PORTD PORTD PORTD PORTD PORTD 7 R/W 6 R/W 5 R/W 4R/W 3 2 R/W R/ W PORTD1 R/W PORTD R/W 0 D - DDRD [PORT D DATA DIREDTION REGISTER ] رجیستر جهت داده پورت PORTD 7 PORTD 6 R/W PORTD 5 R/W PORTD 4 R/W PORTD 3 R/W R/W PORTD 2 R/ W PORTD1 R/W PORTD 0 R/W D PIND- [PORT D INPUT PINS ADDRESS ] بایت آدرس پایه های ورودی پورت PORTD 7 PORTD 6 R/W PORTD 5 R/W PORTD 4 R/W PORTD 3 R/W R/W PORTD 2 R/ W PORTD1 R/W PORTD 0 R/W پیکره بندی پورت ها ... برmرسی پورmتهای میکرو ATMEGA32 استفاده از پورت Dبه عنوان یک I/Oعمومی دیجیتال تمام 8پایه موجود زمانیکه بعنوان پایه های I/Oدیجیتال استفاده می شوند دارای عملکرد مساوی هستند , PDn. پایه I/Oعمومی :بیت DDDnدر رجیستر DDRDمشخص کننده جهت پایه است .اگر DDDnیک باشد , PDnبعنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDDnصفر باشد PDn ,بعنوان یک پایه ورودی در نظر گرفته می شود .اگر PORTDnیک باشد هنگامیکه پایه بعنوان ورودی تعریف می شود ,مقاوت Pull-up فعال می شود .برای خاموش کردن مقاومت باید PORTDnصفر شود یا اینکه پایه بعنوان خروجی تعریف شود .پایه های پورت زمانیکه ریست اتفاق می افتد به حالت Tri-stateمی روند . ‏Comment ‏Pull up ‏I/O ‏PORTDn ‏DDDn ‏Tri-state ‏No ‏Input 0 0 ‏PDn will source current if ext. pull up low ‏Yes ‏Input 1 0 ‏Push-Pull Zero output ‏No ‏Output 0 1 ‏Push-Pull one output ‏No ‏Output 1 1 1

51,000 تومان