آموزش bascom به زبان ساده
DESCRIPTION
آموزش BASCOM به زبان ساده. ”به نام خالق يكتا“ توضيح مختصر ى درباره زبان برنامه نويس ى Basic. - PowerPoint PPT PresentationTRANSCRIPT
زبان BASCOMآموزش بهساده
“ يكتا” خالق نام بهمختصر برنامه درباره ىتوضيح زبانBasic ىنويس
باالست سطح نويسي برنامه زبان يك زبان :اينبه نويسي برنامه هاي شوند 3زبان مي تقسيم عمده -دسته
مانند 1- باال سطح هاي …و Pascal,Basic,Cobol زبانPortan
مانند 2- ميانه هاي porth…و C , C ++زبانو 3- ماشين زبان و اسمبلي مانند پايين سطح هاي ...زبان
شبيه هايي دستورالعمل باال سطح نويسي برنامه هاي زبان ! براي آنها با كار پس دارند او فكري پردازش و انسان زبان
چند مانند آنها دستورالعمل هر ولي تر راحت كاربراست ماشين زبان به ! دستورالعمل
برنامه منوهاي تشريح باشد مي فايل منوي منو اولين
است زير هاي گزينه داراي : كه
:New -1 نوشتن براي جديد صفحه يك گزينه اين زدن باويرايشگر به مجهز صفحه اين ؛ ميشود باز جديد برنامه
دستوري كه صورتي در يعني ؛ باشد مي دستوراتمي در ابي رنگ به شود وارد دستور آ درست اگر ولي يد
است ) ( مشكي معمولي رنگ به باشد مورد ) .اشتباه اينشود نمي اجرا دستورات از كمي تعداد ).براي
:open -2 از كه را اي برنامه توانيد مي گزينه اين زدن باكنيد باز ايد كرده ذخيره . قبل
: Close -3 نوشتن براي كه اي صفحه گزينه اين انتخاب باشده باز ميشود ،برنامه .بسته
Save -4 و: Save as كردن ذخيره براي گزينه دو اين- ميروند كار به نام save as كه پروژه با ذخيره براي
ميشود استفاده .جديد
Print Preview -5 و: Print چاپ براي گزينه دو اينميشوند استفاده برنامه گزينه كردن زدن با Print كه
Preview چاپ از قبل را چاپ قابل نسخه توانيد ميكنيد . مشاهده
Exit -6 اما ؛ شود مي بسته كامل طور به بسكام برنامه گزينه اين زدن باباشد نشده ذخيره شما برنامه شما ، اگر از برنامه ذخيره مورد در
ميشود . پرسيده
گزينه 7 - زير ها Exit در گزينه اين كه دارد وجود ديگر گزينه چندمي اند بوده باز كه هاي فايل اخرين به سريع دسترسي براي
. باشد
منوي بعدي باشد Edit منوي مياست زير هاي گزينه داراي : كه
Undo -1و: Redo اخرين به يابي دست براي گزينه دو اينباشد مي شده انجام .تغييرات
Copy -2وCutو: Paste كپي يا برداشتن براي گزينه سه اينميباشد ديگر جاي به متن از قسمتي . كردن
Findnext -3 و: Find از قسمتي كردن پيدا براي گزينه دو اين . كه است صورت اين به كار نحوه باشد مي برنامه در متن
گزينه انتخاب از بايد Find بعد كه شود مي باز جديدي پنجرهقسمت بعد Text to findدر كنيد تايپ را نظر مورد متنانتخاب okروي برنامه در نظر مورد متن تا كنيد كليكوجود Findnext .شود برنامه بعدي هاي خط در كه هاي متن
ميكند پيدا . دارد
و 4 - مختلف خطوط در عالمت گذاشتن براي بعدي گزينه دونويسي برنامه در چنداني اهميت كه باشد مي انها به پرش
. ندارد
IndentBlock -5 و: UnindentBlock متن گزينه دو اينيك اندازه به را شده راست tab انتخاب يا چپ به
ميكند . منتقل
منوي بعدي باشد Program منوي .مياست زير هاي گزينه داراي : كه
: Compile -1 ها فايل گزينه اين انتخاب هگز يبا قبيل از ي . ... برنامه مرحله اين در اگر ميشود ساخته و گزارش وخطاها ان در كه ميشود باز اي پنجره باشد خطا داراي
خطا هر روي كردن كليك با ؛ شوند مي داده نمايشميشود قرمز است خطا داراي كه مربوط .خط
.: Syntax check -2 نظر از برنامه گزينه اين انتخاب با
گزينه ) Zزدن با ميشود Zچك اماليي ديگر Compile غلطباش نمي گزينه اين زدن به د.(نيازي
:Show result -3 كه ميشود باز پنجرهاي گزينه اين انتخاب بادارد آدر وجود برنامه از كلي گزارش . ن
: Simulate -4 باز سازي شبيه پنجره گزينه اين انتخاب باداراي كه پنجره اين در شما و مبدل lcd ميشود و كيبرد و
... را خود برنامه توانيد مي ميباشد و ديجتال به انالوگ (. پروتئوس به دسترسي صورت در البته كنيد سازي شبيه
داشت نخواهيد قسمت اين از استفاده به .نيازي: send to chip -5 پروگرام محيط وارد گزينه اين انتخاب با
مفصال بعدي هاي قسمت در كه شويد مي ميكرو كردنشوند مي داده . توضيح
منوي بعدي داراي optionsو tools منوي كه استنياز مورد مكان در كه باشد مي بردي كار پر امكانات
ميشود داده .توضيح
کار به بعد به این از که عباراتی از برخی بیان به زیر درپردازیم می :میرود
vcc -1و: gnd می تغذیه های پایه کلZمه دو این از منظورمعموال که ، vcc باشد و 5 باشد می است gnd , 0 ولت . ولت
پورت از را تغذیه این توانید می خود usb شما کامپیوتر !بگیرید
پورت : 2 - هر و باشد می پورت چندین دارای هرمیکرو پورتمعموال ) است پایه چندین (8دارای مگا پایه میکرو مثال برای
32( atmega32) پورت 4دارای A,B,C,D هر که باشد میوپورت 8پورت دارد پایه a( porta )پایه میکرو 40 تا 33از
شماره پایه و باشد پایه pina.0 پین 40می …پین 39وpina.1 پین 33وپایه pina.7 میباشد .
یک: 3 - به کارها انجام برای زمان تنظیم برای میکرو کریستالگفته کریستال ساز نوسان این به که دارد نیاز ساز نوسان
برای استفاده مورد کریستال حداکثر شود avr ،8 میباشد می .مگاهرتز
های میکرو باش avr همچنین می داخلی ساز نوسان د ندارایاز توانید می نیاز صورت در . آ،که کنید استفاده ن
پایه دو به شو xtal2 وxtal1 کریستال می این د.متصلمگا میکرو برای ها های 16پایه باشد 13و 12پایه . می
جدید برنامه یک نوشتن : مراحلگزینه بسکام برنامه کردن باز از منوی new بعد از file را
نوشتن محل شود می باز که جدیدی صفحه کنید انتخابباشد می . برنامه
های که avr میکرو شوند می تقسیم زیر دسته سه بهمگا سری دسته ترین باشد avr قوی . می
دو :tinyxx سری-1 به نسبت گروه این مزیت بزرگترینبودن کوچک دیگر باشد شگروه می .ان
at90sxxxx سری- 2
خانواده :atmegaxxx سری- 3 ترین قوی از سری اینهای می avr میکرو زیادی امکانات دارای که باشد می .باشد
م برنامه خط اولین همیشه بیسیک زبان به ردر بوطباشد می میکرو معرفی
$ )regfile="microname" عبارت جاي به microname كهميشود درج موردنظر ميكرو نام اينجا .)در
نوشتن از هايي = regfile $پس گزينه شامل كوچكي پنجرهكه ميشود باز جا همان موردنظر ميكرو انتخاب براي
است زير هاي گزينه :شامل M8dif.dat) مگ سی آی (8 ابرای M32def.dat) مگا سي آي )32برای M16def.dat) مگا سی آی )16برای
8515DEF.DAT) سی آی at90s8515 )برای ....
باشد می کریستال معرفی بعدی : خط$crystal=x مانند x که است هرتز حسب بر استفاده مورد کریستال
$ crystal=8000000) کریستال اینجا است 8 در هرتز ).مگا
مانند :نكته دستورات برخي بيسيك شده 2در معرفي مورد $ در اما عالمت ميشوند # C با آغاز عالمت !با
می امکانات معرفی نوبت کریستال معرفی از بعدتایمرها .باشد شامل به )adcو امکانات انالوگ مبدل
.... دیجتال( می و ها پورت دادن قرار خروجی یا ورودی و.باشد
نام :نكته امكانات اينجا تا كه باشيد داشته توجهديگر و ميشنود انتخاب كدويژن كدويزارد در برده
محيط در برنامه داخل در آنها ذكر به نيازيCodevision نميباشد.
باشد Zمی زیر دستور با امکانات .معرفی Config
شامل اي پنجره هم عبارت اين نوشتن از پسجمله از امكانات و هZا پين همه Zاسامي adc وجود
نظرت مورد گزينه شما تا ر ادارد كنيد ان .انتخاب
استفاده به نوبت جانبی امکانات بندی پیکر یا معرفی از بعدمی انها ان رسد.از باید امکانات از استفاده برای ها معموال
دهند قرار حلقه یک درون . رابا برنامه نهایت رسد end ودر می پایان .به
هي :نكته حلقه بيسيك دادن “}“يا “)”چدر قرار براي ياز با تنها و ندارد درونش در ها شرط و در 2دستورات كلمه
اين اقسام توضيح به ادامه در كه شده تشكيل انتها و ابتداها .ختپردا خواهيم كلمه
است شده اورده نویسی برنامه برای اصلی نکات زیر .دربسکام محیط در ها پورت از :استفاده
میکروهای های پورت بسکام عنوان avr در به توانند میپورت اصلی نقش این که بگیرند قرار خروجی یا ورودی
باشد .می
می نیز دوم کاربرد دارای ها پایه از بعضی همچنینپورت .باشند مگا a ( porta)مثال عالوه (mega32 )32در
سیگنال وردی عنوان به تواند می خروجی یا ورودی برگیرد قرار دیجتال به انالوگ مبدل برای .انالوگ
با ادامه شد در خواهیم اشنا ها پایه سایر دوم …کاربرد
دستور از ورودی عنوان به پورت یک دادن قرار برایمیکنیم استفاده زیر
Config portx = input پورت باشد x که می میکرو های پورت از .یکی
از خروجی عنوان به پورت یک دادن قرار برای و
میکنیم استفاده زیر دستورConfig portx = output
پورت مانند x که باشد می میکرو های پورت از : یکیConfig porta = output
است a پورت شده تعریف خروجی عنوان به
Config portb=inputاست b پورت شده تعریف ورودی عنوان .به
به را پورت های پایه از یکی توانید می شما همچنینمانند کنید معرفی خروجی یا ورودی : عنوان
Config pina.1=input شماره پورت 1پایه شده a از تعریف ورودی عنوان به. است
Config pinb.7=input شماره پورت 7پایه است b از شده تعریف ورودی عنوان .به
Config pinc.5=output شماره پورت 5پایه شده c از تعریف خروجی عنوان به. است
ها پورت به مربوط :دستوراتبرعکس toggle : دستور را بایت یک دستور اینباشد .میکند دیگر چیز هر یا پورت یک میتواند .بایت
دستور : set میکند یک را بیت یک دستور میتواند .این بیتباشد دیگر چیز هر یا پورت از پین .یک
دستور reset صف را بیت یک دستور بیت .میکند راینباشد دیگر چیز هر یا پورت از پین یک …میتواند
تاخیر : دستورات دستور از برنامه در تاخیر ایجاد میشود wait برای استفاده
.است wait دستور زیر شکل سه : به
:Waitus xتاخیر ایجاد برای دستور ای این ثانیه باشد میکرو x. می
بین که میباشد تاخیر ثانیه 65535تا 1مقدار میکرو:مانند.است
Waitus 500 ( مدت به ثانیه 500تاخیر (میکرو
Waitms x :تاخیر ایجاد برای دستور ای این ثانیه باشد میلی می
x. بین که میباشد تاخیر ثانیه 65535تا 1مقدار میلی :مانند.است
)Waitms 720 مدت به ثانیه 700تاخیر )میلی
:Wait xباشد می ای ثانیه تاخیر ایجاد برای دستور مقدار .x این
. مانند باشد می ثانیه یک از بیشتر عددی که میباشد :تاخیر
)Wait 1000 مدت به )ثانیه 1000تاخیر
ه: نكت( زبان در دستورات اين C اين با هستند همكه زبان تفاوت زماني Cدر واحد و ويت كلمه بين
هست wait_ms500: )آندرالين
دستور : DELAY تاخیر یک شود استفاده که جا هر در دستور میلی 1این
شود می ایجاد .ثانیه
دستور جا هر که کنید در wait توجه برنامه رود کار بهشود می متوقف نظر مورد زمان اندازه به .انجا
وپرش حلقه :دستوراتیا شود اجرا مدام برنامه است نیاز اوقات گاهی
پرش دیگری خط به برنامه اجرای هنگام در.شود
یک درون را ان باید برنامه مداوم اجرای برایدهیم قرار .حلقه
ها حلقه : انواع: Do – loop -1 با حلقه این با do شروع ان loop وپایان
. استFor –next -2
WHILE-WEND -3شو می گفته بعدی های قسمت در اخر مورد …ددو
می دیگر قسمت به برنامه قسمت یک از پرش برایدستور از کرد goto یا jmp توان دستورات ) .استفاده از
کرد استفاده توان می نیز حلقه عنوان به : مانند.)فوقQ :
شده نوشته برنامهJmp q
دوم : مثال
W :شده نوشته برنامه
Goto w
زبان ( :نكته در نيز پرش ولي C دستورات دارد وجودهر نيس در رايج ها آن از استفاده زبان ت!(دو
1: مدار تمرين یک برنامه باال توضیحات به توجه بانویسیم می هم با را زن :چشمک
مگا استفاده مورد کریستال ( atmega16 )16میکرو وو 8 است هرتز مقاومت led عدد8مگا به 330با اهم
است c( portc )پورت .متصل
به رفتن كار اولين پروژه ايجاد براي كه گفتيم خوبگزينه انتخاب و فايل .است NEWمنوي
ا پس شروع ناز ميشه باز رنگ سفيد صفحه يك كهان در برنامه نوشتن به …ميكنيم
رنگ يه با رو هستش برنامه اين به مربوط كه عباراتينياد پيش اشتباهي تا نويسم مي .ديگه
مورد كنترلر ميكرو معرفي به مربوط هميشه اول خطنويسيم.. پسمي :نظره
$regfile="m16def.dat"
ميكرو يعني .هستش ATmega16 نمواين
. بگيم رو كريستال مقدار بايد ترتيب بعد :بدين
$crystal = 8000000 كريستال مقدار يعني .مگاهرتز 8 اين است
باشد نكته : می ثابت ها برنامه همه در باال مرحله وجود) .دو)دارد
پورت دادن قرار بعد می c مرحله خروجی عنوان بهکنیم) .باشد خارج جریان میکرو از میخواهیم ما چوندهی c پورت می قرار خروجی عنوان به : م.(را
Config portc =output
می ) حلقه ایجاد برای باشد می حلقه یک ایجاد بعد مرحلهموارد تمام از اینجا در قبال توانید كه شده ي گفته
کنید .)استفاده
Do
کردن روشن بعد ) led مرحله اینجا در ما باشد می هامیکنیم روشن میان در یک را ).انها
)Set portc.0 کردن پایه led روشن به شده 22متصل( portc.0 ).)ومیکر
)reSet portc.1 کردن پایه led خاموش به شده متصل(portc.1).)میکرو 23
)Set portc.2 کردن پایه led روشن به شده متصل(portc.2).)میکرو 24
)reSet portc.3 کردن پایه led خاموش به شده متصل( portc.3 ).)میکرو 25
)Set portc.4 کردن پایه led روشن به شده 26متصل(portc.4 ).)میکرو
)reSet portc.5 کردن پایه led خاموش به شده متصل( portc.5 ).)میکرو 27
)Set portc.6 کردن پایه led روشن به شده 28متصل(portc.6 ).)میکرو
)reSet portc.7 کردن پایه led خاموش به شده متصل( portc.7 ).)میکرو29
است زمانی تاخیر یک ایجاد بعد :مرحله
Waitms 500
مدت به ثانی 500تاخیر همیلی
موجود های پایه وضعیت کردن برعکس بعد مرحلهاینکه) .است خاموششو led برای روشن و نهای led د
شوند روشن خاموش ).های
Toggle portc
همان دستور را این بایت یک شد گفته قبال که گونهنظر مورد بایت اینجا در که میکند پورت 8برعکس پایه
c است.
است زمانی تاخیر ایجاد بعد : مرحله
Waitms 500
باشد می حلقه پایان نوشتن بعد : مرحله
Loop
خط ( به میخواند را خط این میکرو پردازنده که هنگامیdo میکند ).پرش
شود داده پایان برنامه به باید نهایت در : و
End
برنامه ( )پایان
آموزشLCD
Lcd کاراکتری
نوع نام lcd این که باشد می وستون سطر چند دارایانه باشد ا گذاری می وستون سطر .برمبنای
نوع - چند زیر است lcd در شده برده :نام
و 1*16 سطر یک دارای باشد 16که می .ستون
دارای 2*16 و 2که باشد 16سطر می .ستون
دارای 4*16 و 4که باشد 16سطر می .ستون
دارای 2*20 و 2که باش 20 سطر می .دستون
دارای 4*20 و 4که باشد 20سطر می .ستون
دارای 2*40 و 2که باشد 40سطر می .ستون
دارای 4*40 و 4که باشد 40سطر می ستون
تمام lcd دارای کاراکتری در 16های که باشد می پایهاست شده اورده : زیر
شماره گراند ,VSS : 1پایه ،پایه پایه )lcd )GND اینبه باید و شود است وصل مدار .زمین
شماره پایه ,VDD : 2پایه پایه که VCC LCD این استبه شود 5باید وصل . ولت
شمZاره های ,VEE : 3پایه پیکسل روشنایی پایه اینLCD میکند تعیین .را
شماره نام lcd در ,RS : 4پایه به رجیستر دوو دارد دستورالعمل وجود .داده
می lcd باشد rs =0 اگر- اماده دستورالعمل گرفتن برایدستور . مثال داده برای صورت این غیر در یک cls شود
و است العمل روی qwer دستور باید شود lcd که نوشتهاست داده . یک
شماره ، ,RW :5پایه دارد وضعیت دو پایه برای rw =1ایناز در rw=0 و lcd خواندن نوشتن lcd .برای
شماره توان ,E : 6پایه می پایه این کرد LCD با انتخاب . را
شماره دیت ,DB0 : 7پایه گرفتن برای پایه ( ااین از) اطالعاتLCD صفر ) .میباشد دیتای )پایه
شماره دیتا ,DB1 : 8پایه گرفتن برای پایه این ) از) یک) .میباشد LCD اطالعات دیتای )پایه
شماره دیتا ,DB2 : 9پایه گرفتن برای پایه این ) از) دو) .میباشد LCD اطالعات دیتای )پایه
شماره دیتا ,DB3 : 10پایه گرفتن برای پایه اینسه) .میباشد LCD از)اطالعات) دیتای )پایه
شماره دیتا ,DB4 : 11پایه ارسال برای پایه این ) به) چهار) .میباشد LCD اطالعات دیتای )پایه
شماره دیتا ,DB5 : 12پایه ارسال برای پایه این ) به) پنج) .میباشد LCD اطالعات دیتای )پایه
شماره دیتا ,DB6 : 13پایه ارسال برای پایه این ) به) ش) .میباشد LCD اطالعات دیتای ش(پایه
شماره ارسال ,DB7 : 14پایه برای پایه اینبه( (ا دیت هفت) .میباشد LCD اطالعات دیتای ) پایه
شماره شماره : 15پایه پایه و پایه LED تغذیه 16اینبه LCD پشت که باشد میشود 5می متصل .ولت
شماره شماره : 16پایه پایه و پایه LED تغذیه 15اینبه LCD پشت که باشد میشود 5 می متصل . ولت
اندازی بسکام LCD راه محیط : در
Lcd از طریق میتواند میکرو 4و سیمه 8دو به سیمهشود . متصل
روی میتوان فقط سیمه چهار مد در lcd در ولی نوشتروی قبال که را اطالعاتی میتوان سیمه هشت lcd مد
کرد ارسال میکرو به و خواند را است شده .نوشته
دیتای خطوط از کلی طور از 3تا 0به خوانده و lcd برایخطوط در 7 تا 4 از نوشتن در lcd برای میشود نوشته
در نوشتن پایه lcd حالت شود RS باید داشته نگه .پایین ) از) خواندن حالت ودر شود پایه LCD صفر RS , 1 باید
شو 5به) شود وصل د(ولت
شدن زا راحت و میکرو حافظه وجود با که انجااز خواندن به نیازی نویسی برنامه LCD کار
، باشد پایه نمی استفاده DB3 تا DB0 ازپایه و شود به RW نمی صفر GND ( نیز
میشود )ولت .متصل
اندازی راه برای مرحله نام LCD اولین کردن معرفیاست : آن
استفاده با وکریستال میکرو معرفی از بعد کار این برایتوان می زیر دستور کرد LCD از معرفی : را
CONFIG LCD = LCDNAME
های LCDNAME که نام از در یکی شده میباشد گفته .باالمعرفی LCD 2*16: مثال
Config lcd =16*2
که است میکرو از های پایه معرفی بعد به lcd مرحله
میشود وصل :انها
Db4 = Pinx.y , Db5 = Pinx.y , Db6 = Pinx.y , Db7 = Pinx.y , Rs = Pinx.y , E = Pinx.y
X های پورت از یکی که است پورت dیا c یا b یا a نامو باشد از y می که هست پایه باشد 7تا 0شماره .می
زیر در مثال پورت 2*16کاراکتری lcd برای c به)portc( است :متصل
$regfile="m16def.dat "
$crystal=8000000
Config Lcd = 16*2 Config lcdpin=pin ,
db4=pinc.0 , db5=pinc.1 , db6=pinc.2 , db7=pinc.3 , rs=pinc.4 , e=pinc.5
مگا میکرو از که مثال این ، (atmega16)16در شده استفادهو میکرو است lcd اتصال زیر قرار : به
شماره شو ,VSS : 1پایه وصل مدار زمین به باید پایه این د.،
شماره به ,VDD : 2پایه باید پایه شود 5این وصل .ولت
شماره مقدار ) ,VEE : 3پایه مقاومت یک با پایه این) دارد شما نظر مورد روشنایی به بستگی vcc به مقاومت
میشود . وصل
شماره پورت ,RS : 4پایه به پایه شماره c این پین(4پین( c.4 ( پایه میشود مگا 26متصل )16میکرو
شماره به ,RW :5پایه پایه میشود gnd این . متصل
شماره پورت ,E : 6پایه به پایه شماره c این پین 5پین یاc.5 ( پایه میشود مگا 27متصل )16میکرو
شماره شود ,DB0 : 7پایه نمی متصل جایی به پایه . این شماره شود ,DB1 : 8پایه نمی متصل جایی به پایه .این
شماره نمی ,DB2 : 9پایه متصل جایی به پایه این. شود
شماره نمی ,DB3 : 10پایه متصل جایی به پایه این.شود
شماره پورت ,DB4 : 11پایه به پایه شماره c این 0پینپین ) c.0 یا پایه میشود مگا 22متصل )16میکرو
شماره پورت ,DB5 : 12پایه به پایه شماره c این 1پینپین ) c.1 یا پایه میشود مگا 23متصل )16میکرو
شماره پورت ,DB6 : 13پاZیه به پایه شماره c این پینپین 2 ) c.2 یا پاZیه میشود مگا 24متصل )16میکرو
شماره پورت ,DB7 : 14پاZیه به پایه شماره c این پینپین 3 ) c.3 یا پایه میشود مگا 25 متصل )16میکرو
شماره شماره : 15پاZیه پایه و پایه LED تغذیه 16اینبه LCD پشت که باشد میشود 5می متصل .ولت
شماره شماره : 16پاZیه پایه و پایه LED تغذیه 15اینبه LCD پشت که باشد . 5می میشود متصل ولت
کنید پایه توجه اگر متصل 5به VEE که ولتهای پیکسل بیشترین LCD شود دارای
دارای يروشنا شود وصل گراند به اگر و یباشند می روشنایی .کمترین
های پایه است 16و 15اتصال .اختیاری
اندازی پس راه است LCD از ان با کردن کار . نوبتروی نوشتن می LCD برای استفاده زیر دستور از
:شود
LCD " X "
باش X که ی چیز هر تواند محدوده) د.می در البته:مانند اسکی ( کارکترهای
LCD "*BITRONIC "* یا
LCD "+ bascom-avr "+ یا
Lcd "123@#$qwe "<:?+-*/
کردن پاک دستور lcd برای شود cls تز می :مانند.استفاده
Lcd " )*&&^%$%$#@(" Wait 1
Cls
دیگر های ستون و ها سطر در توان می زیر دستور lcd با: نوشت
Locate x,y
و x که باش y ادرسسطر می :مانندد.ادرسستون
Locate 1,2
Lcd"qwert"
Locate 2,1
Lcd "123456"
Locate 2,8
Lcd "mnbv“
یک برای کنید مثال lcd توجه و x ، 2 حداکثر 2*16،، y حداکثر ! است16
Lcd میتوان زیر دستور با که باشد می نما مکان یک دارایقرارداد ثابت یا زن چشمک یا خاموش یا ن روش را :ان
: Cursor On ( در شود می روشن نما مکان دستور این بااست روشن نما مکان عادی .)حالت
: Cursor off شود خاموشمی نما مکان دستور این . با
:Cursor blink زند می چشمک نما مکان دستور این . با
: Cursor noblink نمی چشمک دیگر نما مکان دستور این بازند
روی های کاراکتر توانید می زیر دستور به lcdبا رادهید شیفت راست یا :چپ
: shiftlcd left ک دستور یک ااین اندازه به را tab رکترها
میکند منتقل چپ .به
: shiftlcd right یک اندازه به را کارکترها دستور tab اینمنتقل راست .میکند به
روی فارسی :lcd نوشتنLcd ان درون که باشد می حافظه یک دارای کاراکتری
ان در فارسی اما دارد وجود اسکی کارکترهای کدهایندارد که lcd دراما... وجود دارد وجود موقتی حافظه
تا توان می ان داد 8در قرار را دلخواه کتر .کارا
کنید دنبال را زیر مراحل دلخواه کاراکتر ساخت : برایمنوی کنید lcd designer گزینه tools از انتخاب پنجره .را
کاراکتر ان در توانید می شما که شود می باز جدیدیکنید دلخواه ایجاد را . خود
روی دلخواه کاراکتر ایجاد از بسته ok بعد ،پنجره کنید کلیکشود می اضافه شما برنامه به خط یک و شود .می
زیر مانند4,31,20,4 ,4 ,4 ,4 ,Deflcdchar ?,1
اعداد از یکی باید سوال عالمت جای شود 7تا 0به .گذاشته
با جدید کاراکتر ساخت از را بعد ان توانید می زیر دستوردهی lcd روی د:نشان
Lcd chr )?(
از یکی که کاراکتر شماره باید سوال عالمت جای بهشود 7تا 0اعداد زیر . گذاشته مثال : مانند
$regfile="m16def.dat "
$crystal=8000000
Config Lcd = 16*2
Config lcdpin=pin , db4=pinc.0,db5=pinc.1,db6=pinc.2,db7=pi
nc.3,rs=pinc.4,e=pinc.5
4,31,20,4 ,4 ,4 ,4 ,Deflcdchar 0,1
Locate 1,1
Lcd chr)0(
End
کارکرد با که به lcd حاال نوبت شدید اشنا ها وپورتبه مربوط که بیسیک زبان دستورات سایر avr معرفی
می رسد.استبه دستورات اینجا زیر 8در در که شده تقسیم قسمت
است آو شده :رده
بسکام 1 - محیط در برنامه یک بدنهبسکام 2 - در ها متغییر و اعدادپرش 3 - و حلقه دستوراتتاخیر 4 - ایجاد دستوراتتواب 5 - فراخوانی و ها برنامه زیرمحاسباتی 6 - و ریاضی توابعک 7 - تبدیل متغییره نندهتوابع یکدیگر او بهحافظه 8 - های ادرس و ریجسترها
بسکام 1 - محیط در برنامه یک : بدنه
$REGFILE = micro name
محیط در برنامه یک شروع باید BASCOM برای ابتداگردد تعریف نظر مورد میکرو microname . میکرو نام
باشد زیر موارد از یکی تواند می که است استفاده مورد .
regfile = “ At12def.dat “ $regfile = “ At15def.dat “ $regfile = “ At22def.dat “
$regfile = “ At26def.dat “
$regfile = “ 2323def.dat “ $regfile = “ 2333def.dat “ $regfile = “ 2343def.dat “ $regfile = “ 4414def.dat “ $regfile = “ 4433def.dat “ $regfile = “ 4434def.dat “ $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 “
ترتیب به اول سطر از : کهدوازده تاینی میکروی ATtiny 12معرفی
پانزده تاینی میکروی ATtiny 15 معرفیدو و بیست تاینی میکروی ATtiny 22معرفی
وشش بیست تاینی میکروی ATtiny 26معرفی
میکروی AT90S2323 معرفیمیکروی AT90S2333 معرفیمیکروی AT90S2343 معرفیمیکروی AT90S4414 معرفیمیکروی AT90S4433 معرفیمیکروی AT90S4434 معرفیمیکروی AT90S8515 معرفیمیکروی AT90S8535 معرفیمیکروی ATMEGA8535 معرفیمیکروی ATMEGA8515 معرفیمیکروی ATMEGA8 معرفیمیکروی ATMEGA103 معرفیمیکروی ATMEGA16 معرفیمیکروی ATMEGA163 معرفی
میکروی ATMEGA161 معرفیمیکروی ATMEGA32 معرفیمیکروی ATMEGA323 معرفیمیکروی ATMEGA603 معرفیمیکروی ATMEGA64 معرفیمیکروی ATMEGA128 معرفی
شده استفاده کریستال فرکانس کردن مشخص براینماییم می استفاده زیر دستور از هرتز .برحسب
$CRYSTAL = X
X هرتز حسب بر شده استفاده کریستال فرکانس . است:مثال
$CRYSTAL = 14000000 ’14MHZ external osc
$CRYSTAL = 8000000 ’8MHZ external osc $CRYSTAL = 1000000 ’1MHZ internal osc
در بیشتر اطالعات برای یادداشتهایی است نیاز گاهیشود اضافه . برنامه
REM یا ‘
بوده فعال غیر دستور این از بعد های نوشته و یادداشتهاکامپایل و رود می کار به یادداشت برای برنامه در و
آیند می در سبز رنگ به همچنین و شد . نخواهداز ‘) ‘( و شروع برای عالمت دو از توان می همچنین
نمایید استفاده یادداشتی متن اتمام . برای :مثال
REM END PROGRAM Or
‘ F=14MHZ
دستور END گیرد می قرار برنامه خط دراخرین دستور این
رسد، می خط این به برنامه که هنگامی تمام ونهایت بی حلقه یک و شده فعال غیر ها وقفه
یابد می خاتمه برنامه و . تولید
:مثالLCD "QWER"
END ‘ end program execution and disable all interrupt
به بسکام محیط در برنامه یک بدنه کل دراست زیر :صورت
شود معرفی میکرو باید ابتدا .درشود معرفی هرتز برحسب کریستال باید .بعد
را سپس امکانات شو هباید امکاناتی ) ناندازی دقبیل )…وADC ,LCD ازرسد پس می امکانات از استفاده به نوبت ان !از
برنامه پایان نهایت در . و
زیر مثال :مانند$regfile = "m32def.dat“
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Lcd "1NAFAR "
End
بسکام 2 - در ها متغییر و : اعداد
می . دستور این با میدهد نشان را متغیر یک بعد زیر دستورتعریف شوند می برده کار به برنامه در که متغیرهایی توانید
. کنید
DIM X AS data type
X برده بکار برنامه در که متغیری داده Data type .نام نوعموارد طبق تواند می که است
یاSTRING ,WORD ,LONG ,INTEGER ,BYTE, BITزیرSINGLE باشد .
متغیر از استفاده صورت طول ، STRING در بیشترینشود نوشته باید نیز . آن
: BIT باشد یک یا صفر میتواند متغییر . این
: BYTE از میتواند متغییر فقط 255تا 0این و کند تغییرشود می مثبت صحیح اعداد .شامل
: WORD از میتواند متغییر و 65535ا ت 0این کند تغییر
شود می مثبت صحیح اعداد شامل .فقط
: INTEGER - از میتواند متغییر 32767 +تا 32767اینمی منفی و مثبت صحیح اعداد شامل فقط و کند تغییر
.شود
: LONG از میتواند متغییر تا -214783648اینصحیح +214783647 اعداد شامل فقط و کند تغییر
شود می منفی و .مثبت
: SINGLE از میتواند متغییر تا -1.5*10^45 اینصحیح 3.4* 10^38 اعداد شامل فقط و کند تغییر
شود می منفی و مثبت .واعشاری
: STRING از میتواند متغییر تغییر 245تا 0این بایتشود می استفاده وعالئم حروف باری و کند تغییر .کند
:مثال DIM B AS BIT ‘BIT can be 0 or 1
DIM A AS BYTE ‘BYTE range from 0 - 255 DIM K AS INTEGER
DIM MICRO AS WORD DIM HASAN AS LONG
:مثال $regfile = "m32def.dat“
$crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs =
Portd.5 Dim A As Byte
Dim Ali As Word Dim Wqew As Byte
A = 10 Wqew = 5
Locate 1 , 1 Ali = A + Wqew
Lcd Ali Locate 2 , 1
Ali = A * Wqew Lcd Ali
End
بعدش : نکته از بیشتر متغییر یک در که صورتی درمیشوید مواجه خطا با دهید قرار .مقدار
:مثال
DIM A AS BYTE
A=300
از تواند می بایت چون باشد می غلط باال 255تا 0موردو کند است ر بیشت 300مقدار تغییر بایت بعد .از
CONST دستور
شود می استفاده دستور این از ثابت یک تعریف :برای
CONST SYMBOL= NUMCONST CONST SYMBOL= STRINGCONST
CONST SYMBOL= EXPRESSION
SYMBOL و ثابت عددی NUMCONST نام مقداربه یافته رشته SYMBOL , STRINGCONST انتساببه یافته میتواند EXPRESSION و SYMBOL انتساب
به آن نتیجه که باشد یابد SYMBOL عبارتی . انتساب
مثال:
CONST S = “TEST” CONST A = 5
CONST B1 =&B1001 CONST X = )B1 * 3 ( + 2
می ALIAS : دستور استفاده متغیر نام تغیر برای دستور این از .شود:مثال
DIM Q AS BIT
Q ALIAS PORTB.1
بجای توانید می شما متغیر PORTB.1 حال استفاده Q از . نمایید
SET Q ‘is equal with SET PORTB.1
دستور INSTR دیگر رشته در را رشته زیر یک موقعیت و دستورمحل این
کند .مشخصمی
Var =Instr )start , String ,Subset ( Var =Instr )String ,Subset (
Var محل کننده مشخص که است در SUBSTR عددیاصلی زمانی STRING رشته و باشد رشته می زیر که
می برگردانده صفر نباشد اصلی رشته در مشخصشدهشروع .START شود مکان که است دلخواه عددی نیز
کند . ىجستجو می مشخص را اصلی رشته در رشته زیرصورتیکه جستجو START در ابتدا از رشته تمام نشود قید
زیر . ولی باشد رشته نوع از باید تنها اصلی رشته شود میباشد ( SUBSTR )رشته هم ثابت وعدد رشته تواند .می
:مثال$regfile = "m32def.dat "
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim S As String * 15
Dim Z As String * 5 Dim Bp As Byte
Cls
S = "This is a test " Z = "is "
Bp = Instr)s , Z (Lcd Bp
Bp = Instr)4 , S , Z (
Lcd Bp
End
دستور INCR دستور DECR وINCR X DECR X عددی INCR دستور متغییر به واحد و X یک افزاید میمیکند DECR دستور کم ان از واحد یک
:مانند$regfile = "m32def.dat".
$crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim A As Byte Dim B As Long
Dim Bp As Byte Do
Incr A Decr B
Locate 1 , 1 Lcd B
Locate 2 , 1 Lcd A
WAITMS 500 End
Loop
CHECKSUM دستوررشته اسکی دسیمال کد مجموع دستور برمی X این را
عدد از رشته اسکی کد مجموع اگر البته که 255گرداندمقدار شود شود 256بیشتر می کم مجموع . از
:مثال$regfile = "m32def.dat".
$crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim S As String * 10‘Dim Variable
S = "test "Locate 1 , 1
'Assign Variable Lcd Checksum)s(
' print value )192 ( S = "testNext "
Locate 2 , 1 assign variable '
Lcd Checksum)s( ' Print value 127 )127=383 - 256 (
End
LOW و HIGH دستورات
: LOW دستور یک least significant byte( LSB )اینگرداند برمی را . متغیر
: HIGH دستور یک most significant byte( MSB) اینگرداند برمی را . متغیر
Var = HIGH ) s(
MSB متغیر S در Var گیرد می . قرار
Var = LOW ) s(
LSB متغیر S در Var گیرد می . قرار
:مانند
$regfile = "m32def.dat" $crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5 Dim I As Integer
Dim Z As Byte Dim Q As Byte
Cls I = &h1001
Z = Low)i( ' is 1
Locate 1 , 1 Lcd Z
Q = High)i( ' IS 16
Locate 2 , 1 Lcd Q
End
دستور LCASE دستور UCASE و
مورد : LCASE دستور رشته حروف تمام دستور اینکند می کوچک حروف به تبدیل را . نظر
(Target = Lcase )source رشته حروف رشته source تمام در و شده کوچک
target شود می داده . جای
مانند:
$regfile = "m32def.dat ."
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7=
Portd.3 , E = Portd.4 , Rs = Portd.5
Dim S As String * 12 Dim Z As String * 12
Dim Q As String * 12
S = "Hello World "
Q = "QWERTGFDD“ Z = Ucase)s (
' Z = HELLO WORLD
Locate 1 , 1 Lcd Z
Z = Lcase)q( Locate 2 , 1
Lcd Z End
دستور RIGHT دستور LEFT و
جدا RIGHT : دستور را رشته یک از دستورقسمتی این باکنیم .می
( Var = RIGHT) var1 , n رشته راست سمت کاراکتر var1 از تعداد رشته , nبه
رشته در و شده جدا گیرد var ای می . قرار
یک LEFT : دستور چپ سمت کاراکترهای دستور این باکند می جدا شده تعیین تعداد به را .رشته
( Var = LEFT)var1 , n رشته چپ سمت کاراکتر var1 از تعداد ای , n به رشته
رشته در و شده گیرد var جدا می . قرار
:مانند$regfile = "m32def.dat“
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5 Dim S As String * 15 , Z As String * 15
Cls S = "abcdefg"Z = Left)s , 5(
' Z = abcde Locate 1 , 1
Lcd ZZ = Left)s , 1(
' Z = a Locate 1 , 8
Lcd ZZ = Right)s , 5(
' Z = CDEFG Locate 2 , 1
Lcd ZZ = Right)s , 2(
' Z = FG Locate 2 , 8
Lcd Z End
دستور LEN :
ب یا طول دستور رشته ه این یک کاراکترهای تعداد عبارتیبرمیگرداند : را
(Var = Len)string
رشته عددی string طول متغیر گیرد . VAR در می قرارتواند string رشته می داشته 255نهایتا طول بایت
خالی . فضای که باشید داشته توجه SPACE )باشدBAR )آید ،خود می حساب به کاراکتر . یک :مانند
$regfile = "m32def.dat". $crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5 Dim S As String * 12
Dim A As Byte Cls
S = "test" A = Len)s(
Locate 1 , 1 '4
Lcd Len)s( S = "test " A = Len)s(
Locate 2 , 1 Lcd A
' 6 End
دستور LTRIM :
کند می حذف را یکرشته خالی فضای دستور . این(Var = LTRIM )Q
رشته خالی بدون Qفضای رشته و شود می برداشتهای رشته متغیر در خالی گیرد var فضای می . قرار
:مانند
$regfile = "m32def.dat". $crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim S As String * 10 Dim A As String * 10
Cls S = "Q Q 1"
Locate 1 , 1 A = Ltrim)s(
Lcd A ' QQ1
S = "Q Q Q" Locate 2 , 1 Lcd Ltrim)s(
' QQQ End
دستور SWAP :
SWAP var1 , var2 متغیر محتوای دستور این اجرای متغیر var1 با var2 در
متغیر محتوای متغیر var2 و گیرد var1 در می . قرارمتغیر باشند var2 و var1 دو نوع یک از . بایستی:مانند
$regfile = "m32def.dat" $crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim A As Byte Dim B As Byte
Cls
A = 10 B = 20
Swap A , B ' swap them
Locate 1 , 1 Lcd A
' A=20 Locate 2 , 1
Lcd B ' B=10
End
دستور MID :
یا و برداشت را رشته یک از قسمتی توان می دستور این باعوض دیگر رشته یک از قسمتی با را رشته یک از قسمتی
. کرد
VAR=MID)VAR1,ST[,L]( رشته 1- از کاراکتر var1 قسمتی از شروع طول st با و ام
L متغیر در و شده گیرد var برداشته می . قرار
MID)VAR,ST[,L](=VAR1 رشته var1 رشته 2- کاراکتر var در از شروع و St با امگیرد L طول می . قرار
اختیاری گزینه نکردن قید صورت در ,L در طول بیشترینشود می گرفته . نظر
:مانند $regfile = "m32def.dat "
$crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim S As String * 10 Dim Z As String * 10
Cls S = "adswer "
Z = Mid)s , 2 , 3( Locate 1 , 1
Lcd Z ' lcd "dsw"
Z = "5685"Mid)s , 2 , 3( = Z
Locate 2 , 1
Lcd S ' lcd "a568er"
End
دستور space :
شود می استفاده دستور ازاین خالی فضای ایجاد . برایVar = SPACE )x (
X رشته متغیر در رشته بعنوان که خالیست فضای تعدادگیرد var ای می . جای: مانند
$regfile = "m32def.dat"$crystal = 12000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =
Portd.4 , Rs = Portd.5
Dim S As String * 10 Dim Z As String * 10
Cls S = Space)5(
Z = "qwer" Locate 1 , 1
Lcd ")" ; S ; Z ; "( " ' lcd) qwer(
End
دستور format :
کند می دهی شکل را عددی رشته یک دستور . اینxt = Format )var , “form”(
var در نتایج و شود دهی شکل که است ای قرار x رشتهگیرد است form. می دهی شکل . نوع:مانند
$regfile = "m32def.dat "$crystal = 12000000
Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 =
Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Dim S As String *10, I As Integer S = " 123 "
S = Format)s , " "(Locate 1 , 1
' 5 Space
Lcd S' s = " 123 "
' Two Space First , Then123
S = "12345“ S = Format)s , "000.000"(
Locate 1 , 8 Lcd S
' s = "012.345" S = Format)s , " + "(Locate 2 , 1
Lcd S ' s = "+12345 “
End
دستور fusing
می استفاده عددی های رشته کردن روند برای دستور این از . شود
target = Fusing )source , “mask”( source در نتایج و دهی شکل برای موردنظر رشته
target گیرد می است .mask قرار دهی شکل عمل . نوعmask # یکی باید حداقل و شود شروع عالمت با باید حتما
یا # عالمات . & از از استفاده با باشد داشته ممیز از بعد رااز# استفاده صورت در و شود می روند روندی & عدد
گیرد نمی !صورت :مانند
$regfile = "m32def.dat" $crystal = 12000000Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Dim S As Single Dim A As Byte
Cls S = 10
A = 3 S = S / A
Locate 1 , 1 Lcd S
'lcd "3.33333333333333" Locate 2 , 1
Lcd Fusing)s , "#.##"( 'lcd "3.33
Locate 2 , 8 Lcd Fusing)s , "#.####"(
'lcd "3.3333 End
:نکتهاز باینری فرم به اعداد دادن نشان برای b &برای و
از هگز فرم به اعداد دادن می h &نشان استفاده. شود :مانند
0110010&b &h01ff
ومتغییرها اعداد به مربوط دستورات تمامی اینجا درمیکرو برای بیسیک زبان در شد avr که گفته .است
صورت به دستورات این با بعدی درسهای درشوید می اشنا . کاربردی
پرش 3 - و حلقه ات دستور
اجرا بار چندین برنامه از قسمت یک که است نیاز گاهیخط به خط یک در برنامه اجرای حین در یا شود
و حلقه دستورات از کار این برای شود، رجوع دیگرینوع چندین که میشود هستندپرش …استفاده
jmp دستور
label: l :هبرنام
JMP label
برچسب به توان می دستورات این پرش label بابرچسب . عالمت label کرد با یابد ( : colon )باید پایان
تا تواند می باشد 32و داشته طول . کارکتر
:مانند$regfile = "m16def.dAt"
$crystal = 8000000 Config Porta = Output
Q: Set Porta.0
WAitms 600 Reset Porta.0
Waitms 600 jmp Q
End
دستور goto
دستور همانند دقیقا دستور است jmp این :مانند
$regfile = "m16def.dAt" $crystal = 8000000
Config Porta = Output 10 Set Porta.0
WAitms 600 Reset Porta.0
Waitms 600 Goto 10
End
دستور do-loop
دستورات کلی باشد DO … LOOP فرم می زیر . بصورت
DO برنامه
LOOP
با که است بینهایت حلقه یک حلقه می EXIT DO اینبعد خط در برنامه اجرای و شد خارج حلقه درون از توان
یابد ادامه حلقه .ازرا ان اجرای دفعات تعداد میتوان زیر دستور با همچنین
کرد :معین do
برنامه Loop Until A = x
و A که دلخواه جنس از متغییر تکرار x یک دفعات تعداد .است
به واحد یک حلقه تکرار بار هر در زیر مثال اضافه A درمقدار هرگاه و گردد حلقه 10به A می از بعد خط رسید
گردد می .اجرا$regfile = "m16def.dAt"
$crystal = 8000000 Config Porta = Output
Dim A As Byte Do
Incr A Set Porta.0
WAitms 600 Reset Porta.0
Waitms 600 Loop Until A = 10
Toggle Porta End
دستور FOR-NEXT
دستورات کلی می FOR .. NEXT فرم زیر بصورت . باشد
FOR var = start TO end [STEP VALUE] برنامه
NEXT var
Var که کند می عمل کانتر یک و start بعنوان آن مقداراولیهend عددی ثابت یک توانند می دو هر و است پایانی مقدار
باشند عددی متغیر عددی .Value یا نشان step مقدار راباشد . منفی یا مثبت تواند می که دهد می
نام از var وجود نیست NEXT بعد . الزامی
:مانند
$regfile = "m16def.dAt" $crystal = 8000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , _ Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Dim A As Byte Dim B As Byte
Dim C As Integer
For A = 1 To 10 Step 2 ‘A=1,3,5,7,9
Locate 1 , 1 Lcd A Next A
For C = 10 To -5 Step -1‘C=10,9,8…,-3,-4,-5
Locate 1 , 6 Lcd C
Next For B = 1 To 10
Locate 2 , 1 Lcd B
Next End
دستور WHILE-WEND
WHILE condition statements
WEND
تکرار While-Wend دستورالعمل حلقه یک را تشکیلکه یابد می ادامه زمانی تا حلقه این تکرار که دهد می
را نتیجه شده بکاربرده مقدار FALSE عبارت یا و کنددستورالعمل . بگیرد حلقه while صفر به ورود بصورتباشد می شرط در While بنابراین , به است ممکن
نشود اجرا اصال . حالتهاییحاصل statement بخش که وقتی یا condition تا صفر
FALSE شد خواهد تکرار است . نشده
مانند:$regfile = "m16def.dAt"
$crystal = 8000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 ,Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Dim A As Byte
A = 1 While A <10 Locate 1 , 1
Lcd A Incr A
Waitms 600 Wend
End
تاخیر 4- ایجاد : دستورات
wait دستور
دستور از برنامه در تاخیر ایجاد میشود wait برای استفادهاست wait دستور زیر شکل سه : به
Waitus x باشد می ای ثانیه میکرو تاخیر ایجاد برای دستور مقدار x .اینبین که میباشد .65535تا 1تاخیر مانند باشد می ثانیه میکرو
Waitus 500 مدت به ثانیه 500تاخیر میکروWaitms x باشد می ای ثانیه میلی تاخیر ایجاد برای دستور مقدار x .این
بین که میباشد .65535تا 1تاخیر مانند باشد می ثانیه میلیWaitms 720 مدت به ثانیه 700تاخیر میلی
Wait x باشد می ای ثانیه میلی تاخیر ایجاد برای دستور تاخیر x .این مقدار. مانند باشد می ثانیه یک از بیشتر عددی کZه میباشد
Wait 1000 مدت به ثانیه 1000تاخیر : DELAY دستور
تاخیر یک شود استفاده که جا هر در دستور شود 1این می ایجاد ثانیه میلیدستور جا هر که کنید زمان wait توجه اندازه به انجا در برنامه رود کار به
شود می متوقف نظر مورد
$regfile = "m16def.dAt" $crystal = 8000000 Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , _ Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Qwer: Lcd "fjghfgf" Waitms 400
Cls Lcd "123678"
Wait 1 Cls
Lcd "fkjjkb" Waitus 1000
Cls DelAy
Goto Qwer End
یکی شده استفاده کریستال با برنامه در شده معرفی کریستال که صورتی درجای به است ممکن مثال شود نمی اجرا درستی به تاخیر دستورات 1نباشد
شود 3ثانیه ایجاد تاخیر ثانیه
توابع 5 - فراخوانی و ها برنامه زیر
تابع DECLARE FUNCTION معرفی
استفاده برنامه ابتدای در تابع معرفی برای دستور این ازکنیم . معرفی را تابعی بخواهیم که زمانی شود می
از . استفاده صورت در باشد شده معرفی تابع بایستیشود برگردانده داده یک بایستی می .تابع
DECLARE FUNCTION TEST[) [BYREF/BYVAL]var as type1(] As type2
TEST . بصورت داده انتقال است موردنظر تابع نامBYVAL تابع به متغیر از کپی یک که شود می باعث
نشود . ایجاد تغیری هیچ آن محتوای در و شود فرستاده
حالت در و BYREF ولی ارسال متغیر آدرسدر برگشتی داده و گذارد می اثر آن در تغیراتاولیه مقدار با آن روی بر عملیات انجام صورتاستفاده . عدم صورت در بود نخواهد برابر خود
گزینه پیشفرض ] BYREF/BYVAL [از بصورتبصورت شود BYREF داده می . فرستاده
Type1 و شده ارسال داده داده type2نوع نوعنوع . داده توانند می دو هر که است برگشتی
BYTE , INTEGER, WORD , LONG ,STRING . باشند