124
ش وز م آBASCOM ساده ان ب ه ز ب

آموزش BASCOM به زبان ساده

  • Upload
    webb

  • View
    98

  • Download
    3

Embed Size (px)

DESCRIPTION

آموزش BASCOM به زبان ساده. ”به نام خالق يكتا“ توضيح مختصر ى درباره زبان برنامه نويس ى Basic. - PowerPoint PPT Presentation

Citation preview

Page 1: آموزش  BASCOM   به زبان ساده

زبان BASCOMآموزش بهساده

Page 2: آموزش  BASCOM   به زبان ساده

“ يكتا” خالق نام بهمختصر برنامه درباره ىتوضيح زبانBasic ىنويس

باالست سطح نويسي برنامه زبان يك زبان :اينبه نويسي برنامه هاي شوند 3زبان مي تقسيم عمده -دسته

مانند 1- باال سطح هاي …و Pascal,Basic,Cobol زبانPortan

مانند 2- ميانه هاي porth…و C , C ++زبانو 3- ماشين زبان و اسمبلي مانند پايين سطح هاي ...زبان

شبيه هايي دستورالعمل باال سطح نويسي برنامه هاي زبان ! براي آنها با كار پس دارند او فكري پردازش و انسان زبان

چند مانند آنها دستورالعمل هر ولي تر راحت كاربراست ماشين زبان به ! دستورالعمل

Page 3: آموزش  BASCOM   به زبان ساده

برنامه منوهاي تشريح  باشد مي فايل منوي منو اولين

است زير هاي گزينه داراي : كه

:New -1 نوشتن براي جديد صفحه يك گزينه اين زدن باويرايشگر به مجهز صفحه اين ؛ ميشود باز جديد برنامه

دستوري كه صورتي در يعني ؛ باشد مي دستوراتمي در ابي رنگ به شود وارد دستور آ درست اگر ولي يد

است ) ( مشكي معمولي رنگ به باشد مورد ) .اشتباه اينشود نمي اجرا دستورات از كمي تعداد ).براي

:open -2 از كه را اي برنامه توانيد مي گزينه اين زدن باكنيد باز ايد كرده ذخيره . قبل

Page 4: آموزش  BASCOM   به زبان ساده
Page 5: آموزش  BASCOM   به زبان ساده
Page 6: آموزش  BASCOM   به زبان ساده

: Close -3 نوشتن براي كه اي صفحه گزينه اين انتخاب باشده باز ميشود ،برنامه .بسته

Save -4 و: Save as كردن ذخيره براي گزينه دو اين- ميروند كار به نام save as كه پروژه با ذخيره براي

ميشود استفاده .جديد

Print Preview -5 و: Print چاپ براي گزينه دو اينميشوند استفاده برنامه گزينه كردن زدن با Print كه

Preview چاپ از قبل را چاپ قابل نسخه توانيد ميكنيد . مشاهده

Page 7: آموزش  BASCOM   به زبان ساده
Page 8: آموزش  BASCOM   به زبان ساده

Exit -6 اما ؛ شود مي بسته كامل طور به بسكام برنامه گزينه اين زدن باباشد نشده ذخيره شما برنامه شما ، اگر از برنامه ذخيره مورد در

ميشود . پرسيده

گزينه 7 - زير ها Exit در گزينه اين كه دارد وجود ديگر گزينه چندمي اند بوده باز كه هاي فايل اخرين به سريع دسترسي براي

. باشد 

منوي بعدي باشد Edit منوي مياست زير هاي گزينه داراي : كه

Undo -1و: Redo اخرين به يابي دست براي گزينه دو اينباشد مي شده انجام .تغييرات

Page 9: آموزش  BASCOM   به زبان ساده
Page 10: آموزش  BASCOM   به زبان ساده

Copy -2وCutو: Paste كپي يا برداشتن براي گزينه سه اينميباشد ديگر جاي به متن از قسمتي . كردن

Findnext -3 و: Find از قسمتي كردن پيدا براي گزينه دو اين . كه است صورت اين به كار نحوه باشد مي برنامه در متن

گزينه انتخاب از بايد Find بعد كه شود مي باز جديدي پنجرهقسمت بعد Text to findدر كنيد تايپ را نظر مورد متنانتخاب okروي برنامه در نظر مورد متن تا كنيد كليكوجود Findnext .شود برنامه بعدي هاي خط در كه هاي متن

ميكند پيدا . دارد

و 4 - مختلف خطوط در عالمت گذاشتن براي بعدي گزينه دونويسي برنامه در چنداني اهميت كه باشد مي انها به پرش

. ندارد

Page 11: آموزش  BASCOM   به زبان ساده
Page 12: آموزش  BASCOM   به زبان ساده
Page 13: آموزش  BASCOM   به زبان ساده
Page 14: آموزش  BASCOM   به زبان ساده

IndentBlock -5 و: UnindentBlock متن گزينه دو اينيك اندازه به را شده راست tab انتخاب يا چپ به

ميكند . منتقل

  منوي بعدي باشد Program منوي .مياست زير هاي گزينه داراي : كه

: Compile -1 ها فايل گزينه اين انتخاب هگز يبا قبيل از ي . ... برنامه مرحله اين در اگر ميشود ساخته و گزارش وخطاها ان در كه ميشود باز اي پنجره باشد خطا داراي

خطا هر روي كردن كليك با ؛ شوند مي داده نمايشميشود قرمز است خطا داراي كه مربوط .خط

.: Syntax check -2 نظر از برنامه گزينه اين انتخاب با

گزينه ) Zزدن با ميشود Zچك اماليي ديگر Compile غلطباش نمي گزينه اين زدن به د.(نيازي

Page 15: آموزش  BASCOM   به زبان ساده

:Show result -3 كه ميشود باز پنجرهاي گزينه اين انتخاب بادارد آدر وجود برنامه از كلي گزارش . ن

: Simulate -4 باز سازي شبيه پنجره گزينه اين انتخاب باداراي كه پنجره اين در شما و مبدل lcd ميشود و كيبرد و

... را خود برنامه توانيد مي ميباشد و ديجتال به انالوگ (. پروتئوس به دسترسي صورت در البته كنيد سازي شبيه

داشت نخواهيد قسمت اين از استفاده به .نيازي: send to chip -5 پروگرام محيط وارد گزينه اين انتخاب با

مفصال بعدي هاي قسمت در كه شويد مي ميكرو كردنشوند مي داده . توضيح

منوي بعدي داراي optionsو tools منوي كه استنياز مورد مكان در كه باشد مي بردي كار پر امكانات

ميشود داده .توضيح

Page 16: آموزش  BASCOM   به زبان ساده
Page 17: آموزش  BASCOM   به زبان ساده

کار به بعد به این از که عباراتی از برخی بیان به زیر درپردازیم می :میرود

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 میباشد می .مگاهرتز

Page 18: آموزش  BASCOM   به زبان ساده

های میکرو باش avr همچنین می داخلی ساز نوسان د ندارایاز توانید می نیاز صورت در . آ،که کنید استفاده ن

پایه دو به شو xtal2 وxtal1 کریستال می این د.متصلمگا میکرو برای ها های 16پایه باشد 13و 12پایه . می

جدید برنامه یک نوشتن : مراحلگزینه بسکام برنامه کردن باز از منوی new بعد از file را

نوشتن محل شود می باز که جدیدی صفحه کنید انتخابباشد می . برنامه

های که avr میکرو شوند می تقسیم زیر دسته سه بهمگا سری دسته ترین باشد avr قوی . می

دو :tinyxx سری-1 به نسبت گروه این مزیت بزرگترینبودن کوچک دیگر باشد شگروه می .ان

at90sxxxx سری- 2

Page 19: آموزش  BASCOM   به زبان ساده

خانواده :atmegaxxx سری- 3 ترین قوی از سری اینهای می avr میکرو زیادی امکانات دارای که باشد می .باشد

م برنامه خط اولین همیشه بیسیک زبان به ردر بوطباشد می میکرو معرفی

$ )regfile="microname" عبارت جاي به microname كهميشود درج موردنظر ميكرو نام اينجا .)در

نوشتن از هايي = regfile $پس گزينه شامل كوچكي پنجرهكه ميشود باز جا همان موردنظر ميكرو انتخاب براي

است زير هاي گزينه :شامل M8dif.dat) مگ سی آی (8 ابرای M32def.dat) مگا سي آي )32برای M16def.dat) مگا سی آی )16برای

Page 20: آموزش  BASCOM   به زبان ساده

8515DEF.DAT) سی آی at90s8515 )برای ....

باشد می کریستال معرفی بعدی : خط$crystal=x مانند x که است هرتز حسب بر استفاده مورد کریستال

$ crystal=8000000) کریستال اینجا است 8 در هرتز ).مگا

مانند :نكته دستورات برخي بيسيك شده 2در معرفي مورد $ در اما عالمت ميشوند # C با آغاز عالمت !با

می امکانات معرفی نوبت کریستال معرفی از بعدتایمرها .باشد شامل به )adcو امکانات انالوگ مبدل

.... دیجتال( می و ها پورت دادن قرار خروجی یا ورودی و.باشد

Page 21: آموزش  BASCOM   به زبان ساده

نام :نكته امكانات اينجا تا كه باشيد داشته توجهديگر و ميشنود انتخاب كدويژن كدويزارد در برده

محيط در برنامه داخل در آنها ذكر به نيازيCodevision نميباشد.

باشد Zمی زیر دستور با امکانات .معرفی Config

شامل اي پنجره هم عبارت اين نوشتن از پسجمله از امكانات و هZا پين همه Zاسامي adc وجود

نظرت مورد گزينه شما تا ر ادارد كنيد ان .انتخاب

Page 22: آموزش  BASCOM   به زبان ساده

استفاده به نوبت جانبی امکانات بندی پیکر یا معرفی از بعدمی انها ان رسد.از باید امکانات از استفاده برای ها معموال

دهند قرار حلقه یک درون . رابا برنامه نهایت رسد end ودر می پایان .به

هي :نكته حلقه بيسيك دادن “}“يا “)”چدر قرار براي ياز با تنها و ندارد درونش در ها شرط و در 2دستورات كلمه

اين اقسام توضيح به ادامه در كه شده تشكيل انتها و ابتداها .ختپردا خواهيم كلمه

است شده اورده نویسی برنامه برای اصلی نکات زیر .دربسکام محیط در ها پورت از :استفاده

میکروهای های پورت بسکام عنوان avr در به توانند میپورت اصلی نقش این که بگیرند قرار خروجی یا ورودی

باشد .می

Page 23: آموزش  BASCOM   به زبان ساده

می نیز دوم کاربرد دارای ها پایه از بعضی همچنینپورت .باشند مگا a ( porta)مثال عالوه (mega32 )32در

سیگنال وردی عنوان به تواند می خروجی یا ورودی برگیرد قرار دیجتال به انالوگ مبدل برای .انالوگ

با ادامه شد در خواهیم اشنا ها پایه سایر دوم …کاربرد

دستور از ورودی عنوان به پورت یک دادن قرار برایمیکنیم استفاده زیر

Config portx = input پورت باشد x که می میکرو های پورت از .یکی

از خروجی عنوان به پورت یک دادن قرار برای و

میکنیم استفاده زیر دستورConfig portx = output

Page 24: آموزش  BASCOM   به زبان ساده

پورت مانند x که باشد می میکرو های پورت از : یکیConfig porta = output

است a پورت شده تعریف خروجی عنوان به

Config portb=inputاست b پورت شده تعریف ورودی عنوان .به

به را پورت های پایه از یکی توانید می شما همچنینمانند کنید معرفی خروجی یا ورودی : عنوان

Config pina.1=input شماره پورت 1پایه شده a از تعریف ورودی عنوان به. است

Page 25: آموزش  BASCOM   به زبان ساده

Config pinb.7=input شماره پورت 7پایه است b از شده تعریف ورودی عنوان .به

Config pinc.5=output شماره پورت 5پایه شده c از تعریف خروجی عنوان به. است

ها پورت به مربوط :دستوراتبرعکس toggle : دستور را بایت یک دستور اینباشد .میکند دیگر چیز هر یا پورت یک میتواند .بایت

دستور : set میکند یک را بیت یک دستور میتواند .این بیتباشد دیگر چیز هر یا پورت از پین .یک

Page 26: آموزش  BASCOM   به زبان ساده

دستور reset صف را بیت یک دستور بیت .میکند راینباشد دیگر چیز هر یا پورت از پین یک …میتواند

تاخیر : دستورات دستور از برنامه در تاخیر ایجاد میشود wait برای استفاده

.است wait دستور زیر شکل سه : به

:Waitus xتاخیر ایجاد برای دستور ای این ثانیه باشد میکرو x. می

بین که میباشد تاخیر ثانیه 65535تا 1مقدار میکرو:مانند.است

Waitus 500 ( مدت به ثانیه 500تاخیر (میکرو

Page 27: آموزش  BASCOM   به زبان ساده

Waitms x :تاخیر ایجاد برای دستور ای این ثانیه باشد میلی می

x. بین که میباشد تاخیر ثانیه 65535تا 1مقدار میلی :مانند.است

)Waitms 720 مدت به ثانیه 700تاخیر )میلی

:Wait xباشد می ای ثانیه تاخیر ایجاد برای دستور مقدار .x این

. مانند باشد می ثانیه یک از بیشتر عددی که میباشد :تاخیر

)Wait 1000 مدت به )ثانیه 1000تاخیر

Page 28: آموزش  BASCOM   به زبان ساده

ه: نكت(   زبان در دستورات اين C اين با هستند همكه زبان تفاوت زماني Cدر واحد و ويت كلمه بين

هست wait_ms500: )آندرالين

دستور : DELAY تاخیر یک شود استفاده که جا هر در دستور میلی 1این

شود می ایجاد .ثانیه

دستور جا هر که کنید در wait توجه برنامه رود کار بهشود می متوقف نظر مورد زمان اندازه به .انجا

Page 29: آموزش  BASCOM   به زبان ساده

وپرش حلقه :دستوراتیا شود اجرا مدام برنامه است نیاز اوقات گاهی

پرش دیگری خط به برنامه اجرای هنگام در.شود

یک درون را ان باید برنامه مداوم اجرای برایدهیم قرار .حلقه

Page 30: آموزش  BASCOM   به زبان ساده

ها حلقه : انواع: Do – loop -1 با حلقه این با do شروع ان loop وپایان

. استFor –next -2

WHILE-WEND -3شو می گفته بعدی های قسمت در اخر مورد …ددو

می دیگر قسمت به برنامه قسمت یک از پرش برایدستور از کرد goto یا jmp توان دستورات ) .استفاده از

کرد استفاده توان می نیز حلقه عنوان به : مانند.)فوقQ :

شده نوشته برنامهJmp q

Page 31: آموزش  BASCOM   به زبان ساده

دوم : مثال

W :شده نوشته برنامه

Goto w

زبان ( :نكته در نيز پرش ولي C دستورات دارد وجودهر نيس در رايج ها آن از استفاده زبان ت!(دو

1: مدار تمرين یک برنامه باال توضیحات به توجه بانویسیم می هم با را زن :چشمک

مگا استفاده مورد کریستال ( atmega16 )16میکرو وو 8 است هرتز مقاومت led عدد8مگا به 330با اهم

است c( portc )پورت .متصل

Page 32: آموزش  BASCOM   به زبان ساده

به رفتن كار اولين پروژه ايجاد براي كه گفتيم خوبگزينه انتخاب و فايل .است NEWمنوي

ا پس شروع ناز ميشه باز رنگ سفيد صفحه يك كهان در برنامه نوشتن به …ميكنيم

رنگ يه با رو هستش برنامه اين به مربوط كه عباراتينياد پيش اشتباهي تا نويسم مي .ديگه

مورد كنترلر ميكرو معرفي به مربوط هميشه اول خطنويسيم.. پسمي :نظره

  $regfile="m16def.dat"

ميكرو يعني .هستش ATmega16 نمواين

Page 33: آموزش  BASCOM   به زبان ساده

. بگيم رو كريستال مقدار بايد ترتيب بعد :بدين

$crystal = 8000000 كريستال مقدار يعني .مگاهرتز 8 اين است

باشد نكته : می ثابت ها برنامه همه در باال مرحله وجود) .دو)دارد

پورت دادن قرار بعد می c مرحله خروجی عنوان بهکنیم) .باشد خارج جریان میکرو از میخواهیم ما چوندهی c پورت می قرار خروجی عنوان به : م.(را

Config portc =output

Page 34: آموزش  BASCOM   به زبان ساده

می ) حلقه ایجاد برای باشد می حلقه یک ایجاد بعد مرحلهموارد تمام از اینجا در قبال توانید كه شده ي گفته

کنید .)استفاده

Do

کردن روشن بعد ) led مرحله اینجا در ما باشد می هامیکنیم روشن میان در یک را ).انها

)Set portc.0 کردن پایه led روشن به شده 22متصل( portc.0 ).)ومیکر

)reSet portc.1 کردن پایه led خاموش به شده متصل(portc.1).)میکرو 23

Page 35: آموزش  BASCOM   به زبان ساده

)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

Page 36: آموزش  BASCOM   به زبان ساده

)Set portc.6 کردن پایه led روشن به شده 28متصل(portc.6 ).)میکرو

)reSet portc.7 کردن پایه led خاموش به شده متصل( portc.7 ).)میکرو29

است زمانی تاخیر یک ایجاد بعد :مرحله

Waitms 500

مدت به ثانی 500تاخیر همیلی

Page 37: آموزش  BASCOM   به زبان ساده

موجود های پایه وضعیت کردن برعکس بعد مرحلهاینکه) .است خاموششو led برای روشن و نهای led د

شوند روشن خاموش ).های

Toggle portc

همان دستور را این بایت یک شد گفته قبال که گونهنظر مورد بایت اینجا در که میکند پورت 8برعکس پایه

c است.

است زمانی تاخیر ایجاد بعد : مرحله

Waitms 500

Page 38: آموزش  BASCOM   به زبان ساده

باشد می حلقه پایان نوشتن بعد : مرحله

Loop

خط ( به میخواند را خط این میکرو پردازنده که هنگامیdo میکند ).پرش

شود داده پایان برنامه به باید نهایت در : و

End

برنامه ( )پایان

Page 39: آموزش  BASCOM   به زبان ساده

آموزشLCD

Lcd کاراکتری

نوع نام lcd این که باشد می وستون سطر چند دارایانه باشد ا گذاری می وستون سطر .برمبنای

نوع - چند زیر است lcd در شده برده :نام

و 1*16 سطر یک دارای باشد 16که می .ستون

دارای 2*16 و 2که باشد 16سطر می .ستون

Page 40: آموزش  BASCOM   به زبان ساده

دارای 4*16 و 4که باشد 16سطر می .ستون

دارای 2*20 و 2که باش 20 سطر می .دستون

دارای 4*20 و 4که باشد 20سطر می .ستون

دارای 2*40 و 2که باشد 40سطر می .ستون

دارای 4*40 و 4که باشد 40سطر می ستون

Page 41: آموزش  BASCOM   به زبان ساده

تمام lcd دارای کاراکتری در 16های که باشد می پایهاست شده اورده : زیر

شماره گراند ,VSS : 1پایه ،پایه پایه )lcd )GND اینبه باید و شود است وصل مدار .زمین

شماره پایه ,VDD : 2پایه پایه که VCC LCD این استبه شود 5باید وصل . ولت

شمZاره های ,VEE : 3پایه پیکسل روشنایی پایه اینLCD میکند تعیین .را

شماره نام lcd در ,RS : 4پایه به رجیستر دوو دارد دستورالعمل وجود .داده

Page 42: آموزش  BASCOM   به زبان ساده

می lcd باشد rs =0 اگر- اماده دستورالعمل گرفتن برایدستور . مثال داده برای صورت این غیر در یک cls شود

و است العمل روی qwer دستور باید شود lcd که نوشتهاست داده . یک

شماره ، ,RW :5پایه دارد وضعیت دو پایه برای rw =1ایناز در rw=0 و lcd خواندن نوشتن lcd .برای

شماره توان ,E : 6پایه می پایه این کرد LCD با انتخاب . را

شماره دیت ,DB0 : 7پایه گرفتن برای پایه ( ااین از) اطالعاتLCD صفر ) .میباشد دیتای )پایه

Page 43: آموزش  BASCOM   به زبان ساده

شماره دیتا ,DB1 : 8پایه گرفتن برای پایه این ) از) یک) .میباشد LCD اطالعات دیتای )پایه

شماره دیتا ,DB2 : 9پایه گرفتن برای پایه این ) از) دو) .میباشد LCD اطالعات دیتای )پایه

شماره دیتا ,DB3 : 10پایه گرفتن برای پایه اینسه) .میباشد LCD از)اطالعات) دیتای )پایه

شماره دیتا ,DB4 : 11پایه ارسال برای پایه این ) به) چهار) .میباشد LCD اطالعات دیتای )پایه

شماره دیتا ,DB5 : 12پایه ارسال برای پایه این ) به) پنج) .میباشد LCD اطالعات دیتای )پایه

Page 44: آموزش  BASCOM   به زبان ساده

شماره دیتا ,DB6 : 13پایه ارسال برای پایه این ) به) ش) .میباشد LCD اطالعات دیتای ش(پایه

شماره ارسال ,DB7 : 14پایه برای پایه اینبه( (ا دیت هفت) .میباشد LCD اطالعات دیتای ) پایه

شماره شماره : 15پایه پایه و پایه LED تغذیه 16اینبه LCD پشت که باشد میشود 5می متصل .ولت

شماره شماره : 16پایه پایه و پایه LED تغذیه 15اینبه LCD پشت که باشد میشود 5 می متصل . ولت

Page 45: آموزش  BASCOM   به زبان ساده

اندازی بسکام LCD راه محیط : در

Lcd از طریق میتواند میکرو 4و سیمه 8دو به سیمهشود . متصل

روی میتوان فقط سیمه چهار مد در lcd در ولی نوشتروی قبال که را اطالعاتی میتوان سیمه هشت lcd مد

کرد ارسال میکرو به و خواند را است شده .نوشته

دیتای خطوط از کلی طور از 3تا 0به خوانده و lcd برایخطوط در 7 تا 4 از نوشتن در lcd برای میشود نوشته

در نوشتن پایه lcd حالت شود RS باید داشته نگه .پایین ) از) خواندن حالت ودر شود پایه LCD صفر RS , 1 باید

شو 5به) شود وصل د(ولت

Page 46: آموزش  BASCOM   به زبان ساده

شدن زا راحت و میکرو حافظه وجود با که انجااز خواندن به نیازی نویسی برنامه LCD کار

، باشد پایه نمی استفاده DB3 تا DB0 ازپایه و شود به RW نمی صفر GND ( نیز

میشود )ولت .متصل

Page 47: آموزش  BASCOM   به زبان ساده

اندازی راه برای مرحله نام LCD اولین کردن معرفیاست : آن

استفاده با وکریستال میکرو معرفی از بعد کار این برایتوان می زیر دستور کرد LCD از معرفی : را

CONFIG LCD = LCDNAME

های LCDNAME که نام از در یکی شده میباشد گفته .باالمعرفی LCD 2*16: مثال

Config lcd =16*2

که است میکرو از های پایه معرفی بعد به lcd مرحله

میشود وصل :انها

Page 48: آموزش  BASCOM   به زبان ساده

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

Page 49: آموزش  BASCOM   به زبان ساده

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 به مقاومت

میشود . وصل

Page 50: آموزش  BASCOM   به زبان ساده

شماره پورت ,RS : 4پایه به پایه شماره c این پین(4پین( c.4 ( پایه میشود مگا 26متصل )16میکرو

شماره به ,RW :5پایه پایه میشود gnd این . متصل

شماره پورت ,E : 6پایه به پایه شماره c این پین 5پین یاc.5 ( پایه میشود مگا 27متصل )16میکرو

شماره شود ,DB0 : 7پایه نمی متصل جایی به پایه . این شماره شود ,DB1 : 8پایه نمی متصل جایی به پایه .این

Page 51: آموزش  BASCOM   به زبان ساده

شماره نمی ,DB2 : 9پایه متصل جایی به پایه این. شود

شماره نمی ,DB3 : 10پایه متصل جایی به پایه این.شود

شماره پورت ,DB4 : 11پایه به پایه شماره c این 0پینپین ) c.0 یا پایه میشود مگا 22متصل )16میکرو

شماره پورت ,DB5 : 12پایه به پایه شماره c این 1پینپین ) c.1 یا پایه میشود مگا 23متصل )16میکرو

Page 52: آموزش  BASCOM   به زبان ساده

شماره پورت ,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می میشود متصل ولت

Page 53: آموزش  BASCOM   به زبان ساده

کنید پایه توجه اگر متصل 5به VEE که ولتهای پیکسل بیشترین LCD شود دارای

دارای يروشنا شود وصل گراند به اگر و یباشند می روشنایی .کمترین

های پایه است 16و 15اتصال .اختیاری

Page 54: آموزش  BASCOM   به زبان ساده

اندازی پس راه است LCD از ان با کردن کار . نوبتروی نوشتن می LCD برای استفاده زیر دستور از

:شود

LCD " X "

باش X که ی چیز هر تواند محدوده) د.می در البته:مانند اسکی ( کارکترهای

LCD  "*BITRONIC "* یا

LCD  "+ bascom-avr "+ یا

Lcd  "123@#$qwe "<:?+-*/

Page 55: آموزش  BASCOM   به زبان ساده

کردن پاک دستور lcd برای شود cls تز می :مانند.استفاده

Lcd " )*&&^%$%$#@(" Wait 1

Cls

دیگر های ستون و ها سطر در توان می زیر دستور lcd با: نوشت

Locate x,y

و x که باش y ادرسسطر می :مانندد.ادرسستون

Page 56: آموزش  BASCOM   به زبان ساده

Locate 1,2

Lcd"qwert"

Locate 2,1

Lcd "123456"

Locate  2,8

Lcd "mnbv“

یک برای کنید مثال lcd توجه و x ، 2 حداکثر 2*16،، y حداکثر ! است16

Page 57: آموزش  BASCOM   به زبان ساده

Lcd میتوان زیر دستور با که باشد می نما مکان یک دارایقرارداد ثابت یا زن چشمک یا خاموش یا ن روش را :ان

: Cursor On ( در شود می روشن نما مکان دستور این بااست روشن نما مکان عادی .)حالت

: Cursor off شود خاموشمی نما مکان دستور این . با

:Cursor blink زند می چشمک نما مکان دستور این . با

: Cursor noblink نمی چشمک دیگر نما مکان دستور این بازند

Page 58: آموزش  BASCOM   به زبان ساده

روی های کاراکتر توانید می زیر دستور به lcdبا رادهید شیفت راست یا :چپ

: shiftlcd left ک دستور یک ااین اندازه به را tab رکترها

میکند منتقل چپ .به

: shiftlcd right یک اندازه به را کارکترها دستور tab اینمنتقل راست .میکند به

روی فارسی :lcd نوشتنLcd ان درون که باشد می حافظه یک دارای کاراکتری

ان در فارسی اما دارد وجود اسکی کارکترهای کدهایندارد که lcd دراما... وجود دارد وجود موقتی حافظه

تا توان می ان داد 8در قرار را دلخواه کتر .کارا

Page 59: آموزش  BASCOM   به زبان ساده

کنید دنبال را زیر مراحل دلخواه کاراکتر ساخت : برایمنوی کنید lcd designer گزینه tools از انتخاب پنجره .را

کاراکتر ان در توانید می شما که شود می باز جدیدیکنید دلخواه ایجاد را . خود

روی دلخواه کاراکتر ایجاد از بسته ok بعد ،پنجره کنید کلیکشود می اضافه شما برنامه به خط یک و شود .می

زیر مانند4,31,20,4 ,4 ,4 ,4 ,Deflcdchar ?,1

اعداد از یکی باید سوال عالمت جای شود 7تا 0به .گذاشته

Page 60: آموزش  BASCOM   به زبان ساده

با جدید کاراکتر ساخت از را بعد ان توانید می زیر دستوردهی lcd روی د:نشان

Lcd chr )?(

از یکی که کاراکتر شماره باید سوال عالمت جای بهشود 7تا 0اعداد زیر . گذاشته مثال : مانند

$regfile="m16def.dat "

$crystal=8000000

Config Lcd = 16*2

Page 61: آموزش  BASCOM   به زبان ساده

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

Page 62: آموزش  BASCOM   به زبان ساده

کارکرد با که به lcd حاال نوبت شدید اشنا ها وپورتبه مربوط که بیسیک زبان دستورات سایر avr معرفی

می رسد.استبه دستورات اینجا زیر 8در در که شده تقسیم قسمت

است آو شده :رده

بسکام 1 - محیط در برنامه یک بدنهبسکام 2 - در ها متغییر و اعدادپرش 3 - و حلقه دستوراتتاخیر 4 - ایجاد دستوراتتواب 5 - فراخوانی و ها برنامه زیرمحاسباتی 6 - و ریاضی توابعک 7 - تبدیل متغییره نندهتوابع یکدیگر او بهحافظه 8 - های ادرس و ریجسترها

Page 63: آموزش  BASCOM   به زبان ساده

بسکام 1 - محیط در برنامه یک : بدنه

$REGFILE = micro name

محیط در برنامه یک شروع باید BASCOM برای ابتداگردد تعریف نظر مورد میکرو microname . میکرو نام

باشد زیر موارد از یکی تواند می که است استفاده مورد .

regfile = “ At12def.dat “ $regfile = “ At15def.dat “ $regfile = “ At22def.dat “

$regfile = “ At26def.dat “

Page 64: آموزش  BASCOM   به زبان ساده

$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 “

Page 65: آموزش  BASCOM   به زبان ساده

$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معرفی

Page 66: آموزش  BASCOM   به زبان ساده

میکروی AT90S2323 معرفیمیکروی AT90S2333 معرفیمیکروی AT90S2343 معرفیمیکروی AT90S4414 معرفیمیکروی AT90S4433 معرفیمیکروی AT90S4434 معرفیمیکروی AT90S8515 معرفیمیکروی AT90S8535 معرفیمیکروی ATMEGA8535 معرفیمیکروی ATMEGA8515 معرفیمیکروی ATMEGA8 معرفیمیکروی ATMEGA103 معرفیمیکروی ATMEGA16 معرفیمیکروی ATMEGA163 معرفی

Page 67: آموزش  BASCOM   به زبان ساده

میکروی ATMEGA161 معرفیمیکروی ATMEGA32 معرفیمیکروی ATMEGA323 معرفیمیکروی ATMEGA603 معرفیمیکروی ATMEGA64 معرفیمیکروی ATMEGA128 معرفی

Page 68: آموزش  BASCOM   به زبان ساده

شده استفاده کریستال فرکانس کردن مشخص براینماییم می استفاده زیر دستور از هرتز .برحسب

$CRYSTAL = X

X هرتز حسب بر شده استفاده کریستال فرکانس . است:مثال

$CRYSTAL = 14000000 ’14MHZ external osc

$CRYSTAL = 8000000 ’8MHZ external osc $CRYSTAL = 1000000 ’1MHZ internal osc

Page 69: آموزش  BASCOM   به زبان ساده

در بیشتر اطالعات برای یادداشتهایی است نیاز گاهیشود اضافه . برنامه

REM یا ‘

بوده فعال غیر دستور این از بعد های نوشته و یادداشتهاکامپایل و رود می کار به یادداشت برای برنامه در و

آیند می در سبز رنگ به همچنین و شد . نخواهداز ‘) ‘( و شروع برای عالمت دو از توان می همچنین

نمایید استفاده یادداشتی متن اتمام . برای :مثال

REM END PROGRAM Or

‘ F=14MHZ

Page 70: آموزش  BASCOM   به زبان ساده
Page 71: آموزش  BASCOM   به زبان ساده

دستور END گیرد می قرار برنامه خط دراخرین دستور این

رسد، می خط این به برنامه که هنگامی تمام ونهایت بی حلقه یک و شده فعال غیر ها وقفه

یابد می خاتمه برنامه و . تولید

:مثالLCD "QWER"

END ‘ end program execution and disable all interrupt

Page 72: آموزش  BASCOM   به زبان ساده

به بسکام محیط در برنامه یک بدنه کل دراست زیر :صورت

شود معرفی میکرو باید ابتدا .درشود معرفی هرتز برحسب کریستال باید .بعد

را سپس امکانات شو هباید امکاناتی ) ناندازی دقبیل )…وADC ,LCD ازرسد پس می امکانات از استفاده به نوبت ان !از

برنامه پایان نهایت در . و

Page 73: آموزش  BASCOM   به زبان ساده

زیر مثال :مانند$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

Page 74: آموزش  BASCOM   به زبان ساده

بسکام 2 - در ها متغییر و : اعداد

می . دستور این با میدهد نشان را متغیر یک بعد زیر دستورتعریف شوند می برده کار به برنامه در که متغیرهایی توانید

. کنید

DIM X AS data type

X برده بکار برنامه در که متغیری داده Data type .نام نوعموارد طبق تواند می که است

یاSTRING ,WORD ,LONG ,INTEGER ,BYTE, BITزیرSINGLE باشد .

Page 75: آموزش  BASCOM   به زبان ساده

متغیر از استفاده صورت طول ، STRING در بیشترینشود نوشته باید نیز . آن

: BIT باشد یک یا صفر میتواند متغییر . این

: BYTE از میتواند متغییر فقط 255تا 0این و کند تغییرشود می مثبت صحیح اعداد .شامل

: WORD از میتواند متغییر و 65535ا ت 0این کند تغییر

شود می مثبت صحیح اعداد شامل .فقط

: INTEGER - از میتواند متغییر 32767 +تا 32767اینمی منفی و مثبت صحیح اعداد شامل فقط و کند تغییر

.شود

Page 76: آموزش  BASCOM   به زبان ساده

: 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

Page 77: آموزش  BASCOM   به زبان ساده

:مثال $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

Page 78: آموزش  BASCOM   به زبان ساده

بعدش : نکته از بیشتر متغییر یک در که صورتی درمیشوید مواجه خطا با دهید قرار .مقدار

:مثال

DIM A AS BYTE

A=300

از تواند می بایت چون باشد می غلط باال 255تا 0موردو کند است ر بیشت 300مقدار تغییر بایت بعد .از

Page 79: آموزش  BASCOM   به زبان ساده

CONST دستور

شود می استفاده دستور این از ثابت یک تعریف :برای

CONST SYMBOL= NUMCONST CONST SYMBOL= STRINGCONST

CONST SYMBOL= EXPRESSION

SYMBOL و ثابت عددی NUMCONST نام مقداربه یافته رشته SYMBOL , STRINGCONST انتساببه یافته میتواند EXPRESSION و SYMBOL انتساب

به آن نتیجه که باشد یابد SYMBOL عبارتی . انتساب

Page 80: آموزش  BASCOM   به زبان ساده

مثال:

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

Page 81: آموزش  BASCOM   به زبان ساده

دستور INSTR دیگر رشته در را رشته زیر یک موقعیت و دستورمحل این

کند .مشخصمی

Var =Instr )start , String ,Subset ( Var =Instr )String ,Subset (

Var محل کننده مشخص که است در SUBSTR عددیاصلی زمانی STRING رشته و باشد رشته می زیر که

می برگردانده صفر نباشد اصلی رشته در مشخصشدهشروع .START شود مکان که است دلخواه عددی نیز

کند . ىجستجو می مشخص را اصلی رشته در رشته زیرصورتیکه جستجو START در ابتدا از رشته تمام نشود قید

زیر . ولی باشد رشته نوع از باید تنها اصلی رشته شود میباشد ( SUBSTR )رشته هم ثابت وعدد رشته تواند .می

Page 82: آموزش  BASCOM   به زبان ساده

:مثال$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

Page 83: آموزش  BASCOM   به زبان ساده

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

Page 84: آموزش  BASCOM   به زبان ساده

دستور 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

Page 85: آموزش  BASCOM   به زبان ساده

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

Page 86: آموزش  BASCOM   به زبان ساده

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

Page 87: آموزش  BASCOM   به زبان ساده

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

Page 88: آموزش  BASCOM   به زبان ساده

LOW و HIGH دستورات

: LOW دستور یک least significant byte( LSB )اینگرداند برمی را . متغیر

: HIGH دستور یک most significant byte( MSB) اینگرداند برمی را . متغیر

Var = HIGH ) s(

MSB متغیر S در Var گیرد می . قرار

Var = LOW ) s(

LSB متغیر S در Var گیرد می . قرار

Page 89: آموزش  BASCOM   به زبان ساده

:مانند

$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

Page 90: آموزش  BASCOM   به زبان ساده

Locate 1 , 1 Lcd Z

Q = High)i(                                      ' IS 16

Locate 2 , 1 Lcd Q

End

دستور LCASE دستور UCASE و

مورد : LCASE دستور رشته حروف تمام دستور اینکند می کوچک حروف به تبدیل را . نظر

(Target = Lcase )source رشته حروف رشته source تمام در و شده کوچک

target شود می داده . جای

Page 91: آموزش  BASCOM   به زبان ساده

مانند:

$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

Page 92: آموزش  BASCOM   به زبان ساده

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

Page 93: آموزش  BASCOM   به زبان ساده

دستور RIGHT دستور LEFT و

جدا RIGHT : دستور را رشته یک از دستورقسمتی این باکنیم .می

( Var = RIGHT) var1 , n رشته راست سمت کاراکتر var1 از تعداد رشته , nبه

رشته در و شده جدا گیرد var ای می . قرار

یک LEFT : دستور چپ سمت کاراکترهای دستور این باکند می جدا شده تعیین تعداد به را .رشته

( Var = LEFT)var1 , n رشته چپ سمت کاراکتر var1 از تعداد ای , n به رشته

رشته در و شده گیرد var جدا می . قرار

Page 94: آموزش  BASCOM   به زبان ساده

:مانند$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( 

                                       

Page 95: آموزش  BASCOM   به زبان ساده

'           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

Page 96: آموزش  BASCOM   به زبان ساده

دستور LEN :

ب یا طول دستور رشته ه این یک کاراکترهای تعداد عبارتیبرمیگرداند : را

(Var = Len)string

رشته عددی string طول متغیر گیرد . VAR در می قرارتواند string رشته می داشته 255نهایتا طول بایت

خالی . فضای که باشید داشته توجه SPACE )باشدBAR )آید ،خود می حساب به کاراکتر . یک :مانند

$regfile = "m32def.dat". $crystal = 12000000

Config Lcd = 16 * 2

Page 97: آموزش  BASCOM   به زبان ساده

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

Page 98: آموزش  BASCOM   به زبان ساده

دستور 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

Page 99: آموزش  BASCOM   به زبان ساده

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

Page 100: آموزش  BASCOM   به زبان ساده

دستور 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

Page 101: آموزش  BASCOM   به زبان ساده

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

Page 102: آموزش  BASCOM   به زبان ساده

دستور MID :

یا و برداشت را رشته یک از قسمتی توان می دستور این باعوض دیگر رشته یک از قسمتی با را رشته یک از قسمتی

. کرد

VAR=MID)VAR1,ST[,L]( رشته 1- از کاراکتر var1 قسمتی از شروع طول st با و ام

L متغیر در و شده گیرد var برداشته می . قرار

MID)VAR,ST[,L](=VAR1 رشته var1 رشته 2- کاراکتر var در از شروع و St با امگیرد L طول می . قرار

اختیاری گزینه نکردن قید صورت در ,L در طول بیشترینشود می گرفته . نظر

Page 103: آموزش  BASCOM   به زبان ساده

:مانند $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 "

Page 104: آموزش  BASCOM   به زبان ساده

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

Page 105: آموزش  BASCOM   به زبان ساده

دستور 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

Page 106: آموزش  BASCOM   به زبان ساده

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

Page 107: آموزش  BASCOM   به زبان ساده

دستور 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

Page 108: آموزش  BASCOM   به زبان ساده

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

Page 109: آموزش  BASCOM   به زبان ساده

دستور fusing

می استفاده عددی های رشته کردن روند برای دستور این از . شود

target = Fusing )source , “mask”( source در نتایج و دهی شکل برای موردنظر رشته

target گیرد می است .mask قرار دهی شکل عمل . نوعmask # یکی باید حداقل و شود شروع عالمت با باید حتما

یا # عالمات . & از از استفاده با باشد داشته ممیز از بعد رااز# استفاده صورت در و شود می روند روندی & عدد

گیرد نمی !صورت :مانند

$regfile = "m32def.dat" $crystal = 12000000Config Lcd = 16 * 2

Page 110: آموزش  BASCOM   به زبان ساده

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

Page 111: آموزش  BASCOM   به زبان ساده

:نکتهاز باینری فرم به اعداد دادن نشان برای b &برای و

از هگز فرم به اعداد دادن می h &نشان استفاده. شود :مانند

0110010&b &h01ff

ومتغییرها اعداد به مربوط دستورات تمامی اینجا درمیکرو برای بیسیک زبان در شد avr که گفته .است

صورت به دستورات این با بعدی درسهای درشوید می اشنا . کاربردی

Page 112: آموزش  BASCOM   به زبان ساده

پرش 3 - و حلقه ات دستور

اجرا بار چندین برنامه از قسمت یک که است نیاز گاهیخط به خط یک در برنامه اجرای حین در یا شود

و حلقه دستورات از کار این برای شود، رجوع دیگرینوع چندین که میشود هستندپرش …استفاده

jmp دستور

label: l :هبرنام

JMP label

برچسب به توان می دستورات این پرش label بابرچسب . عالمت label کرد با یابد ( : colon )باید پایان

تا تواند می باشد 32و داشته طول . کارکتر

Page 113: آموزش  BASCOM   به زبان ساده

:مانند$regfile = "m16def.dAt"

$crystal = 8000000 Config Porta = Output

Q: Set Porta.0

WAitms 600 Reset Porta.0

Waitms 600 jmp Q

End

Page 114: آموزش  BASCOM   به زبان ساده

دستور goto

دستور همانند دقیقا دستور است jmp این :مانند

$regfile = "m16def.dAt" $crystal = 8000000

Config Porta = Output 10 Set Porta.0

WAitms 600 Reset Porta.0

Waitms 600 Goto 10

End

Page 115: آموزش  BASCOM   به زبان ساده

دستور do-loop

دستورات کلی باشد DO … LOOP فرم می زیر . بصورت

DO برنامه

LOOP

با که است بینهایت حلقه یک حلقه می EXIT DO اینبعد خط در برنامه اجرای و شد خارج حلقه درون از توان

یابد ادامه حلقه .ازرا ان اجرای دفعات تعداد میتوان زیر دستور با همچنین

کرد :معین do

برنامه Loop Until A = x

Page 116: آموزش  BASCOM   به زبان ساده

و 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

Page 117: آموزش  BASCOM   به زبان ساده

دستور FOR-NEXT

دستورات کلی می FOR .. NEXT فرم زیر بصورت . باشد

FOR var = start TO end [STEP VALUE] برنامه

NEXT var

Var که کند می عمل کانتر یک و start بعنوان آن مقداراولیهend عددی ثابت یک توانند می دو هر و است پایانی مقدار

باشند عددی متغیر عددی .Value یا نشان step مقدار راباشد . منفی یا مثبت تواند می که دهد می

نام از var وجود نیست NEXT بعد . الزامی

:مانند

Page 118: آموزش  BASCOM   به زبان ساده

$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

Page 119: آموزش  BASCOM   به زبان ساده

دستور WHILE-WEND

WHILE condition statements

WEND

تکرار While-Wend دستورالعمل حلقه یک را تشکیلکه یابد می ادامه زمانی تا حلقه این تکرار که دهد می

را نتیجه شده بکاربرده مقدار FALSE عبارت یا و کنددستورالعمل . بگیرد حلقه while صفر به ورود بصورتباشد می شرط در While بنابراین , به است ممکن

نشود اجرا اصال . حالتهاییحاصل statement بخش که وقتی یا condition تا صفر

FALSE شد خواهد تکرار است . نشده

Page 120: آموزش  BASCOM   به زبان ساده

مانند:$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

Page 121: آموزش  BASCOM   به زبان ساده

تاخیر 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 توجه اندازه به انجا در برنامه رود کار به

شود می متوقف نظر مورد

Page 122: آموزش  BASCOM   به زبان ساده

$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ثانیه ایجاد تاخیر ثانیه

Page 123: آموزش  BASCOM   به زبان ساده

توابع 5 - فراخوانی و ها برنامه زیر

تابع DECLARE FUNCTION معرفی

استفاده برنامه ابتدای در تابع معرفی برای دستور این ازکنیم . معرفی را تابعی بخواهیم که زمانی شود می

از . استفاده صورت در باشد شده معرفی تابع بایستیشود برگردانده داده یک بایستی می .تابع

DECLARE FUNCTION TEST[) [BYREF/BYVAL]var as type1(] As type2

TEST . بصورت داده انتقال است موردنظر تابع نامBYVAL تابع به متغیر از کپی یک که شود می باعث

نشود . ایجاد تغیری هیچ آن محتوای در و شود فرستاده

Page 124: آموزش  BASCOM   به زبان ساده

حالت در و BYREF ولی ارسال متغیر آدرسدر برگشتی داده و گذارد می اثر آن در تغیراتاولیه مقدار با آن روی بر عملیات انجام صورتاستفاده . عدم صورت در بود نخواهد برابر خود

گزینه پیشفرض ] BYREF/BYVAL [از بصورتبصورت شود BYREF داده می . فرستاده

Type1 و شده ارسال داده داده type2نوع نوعنوع . داده توانند می دو هر که است برگشتی

BYTE , INTEGER, WORD , LONG ,STRING . باشند