خانه / آموزش میکروکنترلرهای AVR / آموزش برنامه نویسی مقدماتی BASIC-دستورات حلقه و پرش و شرطی

آموزش برنامه نویسی مقدماتی BASIC-دستورات حلقه و پرش و شرطی

آموزش برنامه نویسی مقدماتی BASIC-دستورات حلقه و پرش و شرطی

آموزش برنامه نویسی مقدماتی BASIC-دستورات حلقه و پرش و شرطی

دستورات حلقه و پرش و شرطی

:: پرش بی بازگشت

Goto lable

Jmp   lable

پرش به برچسب مورد نظر و بدون بازگشت

Dim a as bit

Start1:

Toggle a

Goto start2

Start2:

Toggle a

Goto start1

:: پرش با بازگشت

Gosub lable

پرش به بر چسب مورد نظر و در صورت نیاز بازگشت

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

Dim a as bit

Toggle a

Gosub start2

Reset a

End

Start 2:

Set a

Return

:: دستور حلقه

Do

Loop [ until    state ]

با این دستور حلقه ای در برنامه بوجود می آید که از loop به do پرش می کند.

نکته : در صورت دلخواه می توان حلقه را شرطی کرد و تا زمانی که حالت state وجود دارد حلقه ادامه خواهد داشت.

:: دستور خروج از حلقه

Exit do

با به کار گیری این دستور می توان از حلقه do و loop خارج شد.

Dim a as byte

Dim b as bit

Do

Incr a

Loop until a < 254

Do

Set a.6

Reset b

Exit do

Loop

Do

Toggle a

Loop

End

:: دستور حلقه با شرط

While condition

.

.

Wend

با این دستور زمانی که شرط برقرار باشد وارد حلقه می شود.

نکته : فرق این دستور با دستور do-loop در این است که در دستور do-loop برای بار اول چه شرط برقرار باشد و چه نباشد یک بار عملیات داخل حلقه اجرا می شود. ولی در این دستور این چنین نیست.

:: دستور خروج از حلقه

Exit while

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

Dim a as byte

Dim b as bit

While a < 230

Incr a

Wend

While a.6 = 0

Set a.6

Reset b

Exit while

Wend

End

:: دستور حلقه با تکرار دلخواه

For var = start 10 end [ step value ]

.

.

Next var

در این دستور یک متغیر var به عنوان شمارش تکرار حلقه در نظر گرفته شده و با هر بار تکرار یک واحد یا به اندازه step تعیین شده به متغیر var اضافه می شود.

Start : عدد شروع در متغیر var قرار می گیرد.

End : مقدار پایانی متغیر ( هر گاه متغیر به این مقدار برسد حلقه پایان می یابد )

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

نکته: نوشتن var بعد از next اختیاری است.

دستور خروج از این حلقه exit for می باشد.

Dim a as byte

Dim b as bit

For a = 0 to 5

Toggle b

Next

For a = 3 to 30 step 10

Set a

Waitms 100

Reset a

Next

:: دستور انجام عملیات شرطی

If expr then

State

End if

Expr : شرط

State : عملیات

نکته : در صورتی که شرط expr برقرار باشد عملیات state صورت می گیرد. در صورت برقرار نبودن به خط بعد از end if جهش می کند.

If expr then

State1

Else

State2

End if

نکته : در برنامه بالا در صورتی که شرط expr برقرار باشد عملیات state1 و در صورتی که شرط برقرار نباشد عملیات state2 صورت می گیرد.

If expr1 then

State1

Elself expr2 then

State2

Else

State3

End if

نکته : در برنامه بالا در صورتی که شرط expr1 برقرار باشد عملیات state1 و در صورتی که شرط دوم expr2 برقرار باشد عملیات state2 اجرا می شود و در صورت برقرار نبودن شروط عملیات state3 صورت می گیرد. دستور elseif قابلیت چندین بار تکرار را دارد.

Dim a as byte

Dim b as bit

If b = 0 then

Set b

End if

If a < 200 then

Set b

Else

Reset b

End if

If a < 255 and a>200 then                          ‘                 هر دو شرط باید برقرار باشد

Wait 1

Set b

Elseif a > 10 or a <100 or a =80 then             ‘یکی از سه شرط برقرار شود کافی ست

Toggle b

Elseif a > = 100 or a < = 200 then

Incr a

End if

If a <> 255 then a = 255                , (*)

End

(*) در صورتی که تنها یک دستورالعمل بخواهید انجام شود دستورالعمل  را در جلوی then نوشته و دیگر نیازی به نوشتن end if نیست.

:: دستور شرطی انشعابی

Select case var

Case  x1 : state1

[ case  x2: state2 ]

[ case else : state3 ]

End select

در صورتی که مقدار متغیر var برابر با x1 باشد دستورالعمل state1 انجام می شود.

در صورتی که مقدار متغیر var برابر با x2 باشد دستورالعمل state2 انجام می شود ( اختیاری )

در صورتی که مقدار متغیر var برابر با هیچ کدام نباشد دستورالعمل state3 انجام می شود. ( اختیاری )

Config porta = input

Dim a as byte

Dim b as bit

Select case pina

Case 1: a=10                ‘ if pina = 1 then  a=10

Case2: a=30

End select

Select case a

Case 10: b=1               ‘ if a = 10 then set b

Case else : reset b

End select

End

:: پرش به بر چسب

On var [ goto /gosub ]      lable1    [ ,lable2,lable3,…]

مقدار var  در صورتی که 0 باشد به برچسب اول [ lable1 ] پرش می کند و در صورتی که متغیر var برابر 1 باشد به برچسب دوم و به همین صورت می تواند ادامه داشته باشد.

نکته : در صورتی که بخواهیم پرش به زیر برنامه داشته باشیم و بعد از انجام عملیات زیر برنامه به خط بعد از پرش برگردیم از gosub استفاده کرده و در آخر خط زیر برنامه از دستور return استفاده کنید.

Config port a = input

Dim a as byte

Dim b as bit

On pina goto ali , hamed1

Ali:

Set b

On a gosub ali2 , hamed2

Hamed 2:

Biwait pin a.5 , set

Toggle b

End

Hamed

Wait 1

If b = 1 then

Incr a

Waitus 200

End if

Return

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

 دسته اصلی : زبان برنامه نویسی BASIC

 نویسنده : electronics98

 تاریخ انتشار :

یک دیدگاه

  1. سلام.تشکر.خدا پدر ومادرت بیامرزه.سایت شما عالی

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطلب پیشنهادی

I2C-AVR

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C پایه های مورد استفاده پروتکل I2C …